004,改进我们的小游戏

004,改进我们的小游戏
 python的比较操作符:
>        左边大于右边  
>>> 1 < 3
True
>>> 1 > 3
False
>=    左边大于等于右边
<        左边小于右边
<=    左边小于等于右边
==    左边等于右边
!=     左边不等于右边

条件分支语法:
if条件:
    条件为真(true)执行的操作
else:
    条件为假(false)执行的操作
ps:跟其他语言不同的是,if后面一定要有":"号,条件判断语句一定要“缩进”!(true,false属于布尔类型的值!)

课中练习:
 1、
print('猜字谜')
temp = input ('猜猜我心里想的是什么数字?')
guess = int (temp)
if guess == 8:
    print('wtf,你是我心里的蛔虫吗?')
else:
    if guess > 8:   #注意:缩进
        print('大了大了!!')
    else:
        print('小了小了!!')
print('游戏结束,又被坑了吧!!')
 
运行结果:
 
>>> 
猜字谜
猜猜我心里想的是什么数字?8
wtf,你是我心里的蛔虫吗?
游戏结束,又被坑了吧!!
>>> ================================ RESTART ================================
>>> 
猜字谜
猜猜我心里想的是什么数字?9
大了大了!!
游戏结束,又被坑了吧!!
>>> ================================ RESTART ================================
>>> 
猜字谜
猜猜我心里想的是什么数字?6
小了小了!!
游戏结束,又被坑了吧!!
>>> ================================ RESTART ================================
 
思考:做这个练习的时候没注意第二条件“if guess > 8”,是属于else:范围里面,必须缩进,不然会导致错误语法报错。琢磨了一下加入缩进,问题解决。
 
2、重复运行。
while循环
while条件:
    条件为真(true)执行的操作
 
print('猜字谜')
temp = input ('猜猜我心里想的是什么数字?')#guess变量赋值,需放在while前面。
guess = int (temp)
while guess != 8:
#注意缩进!!
    temp = input ('错了错了错了!!')
    guess = int (temp)
    if guess == 8:
        print('wtf,你是我心里的蛔虫吗?')
    else:
        if guess > 8:
            print('大了大了!!')
        else:
            print('小了小了!!')
print('游戏结束,又被坑了吧!!')
 运行结果:
 
>>> 
猜字谜
猜猜我心里想的是什么数字?5
错了错了错了!!4
小了小了!!
错了错了错了!!6
小了小了!!
错了错了错了!!9
大了大了!!
错了错了错了!!7
小了小了!!
错了错了错了!!8
wtf,你是我心里的蛔虫吗?
游戏结束,又被坑了吧!!
>>> 
 
 3、random模块
randint(),会返回一个随机的整数。
利用这个函数来改造我们的游戏
 
import random #必须在程序的最前面,导入random模块
secret = random.randint (1,10)#加多一个secret变量,生成一个1-10的随机整数
print('猜字谜')
temp = input ('猜猜我心里想的是什么数字?')#guess变量赋值,需放在while前面。
guess = int (temp)
while guess != secret: #把之前的8改成secret
#注意缩进!!
    temp = input ('错了错了错了!!')
    guess = int (temp)
    if guess == secret: #把之前的8改成secret
        print('wtf,你是我心里的蛔虫吗?')
    else:
        if guess > secret: #把之前的8改成secret
            print('大了大了!!')
        else:
            print('小了小了!!')
print('游戏结束,又被坑了吧!!')
 运行结果:
 >>> 
猜字谜
猜猜我心里想的是什么数字?5
错了错了错了!!6
大了大了!!
错了错了错了!!5
大了大了!!
错了错了错了!!4
大了大了!!
错了错了错了!!3
大了大了!!
错了错了错了!!2
大了大了!!
错了错了错了!!1
wtf,你是我心里的蛔虫吗?
游戏结束,又被坑了吧!!
>>> 
 ps:程序缺陷:第一次的数字没有提示大了或者小了。
 
课后练习: 
测试题:

0. 请问以下代码会打印多少次“我爱C”  
while 'C':
    print('我爱C')
 答:无数次循环
1. 请问以下代码会打印多少次“我爱鱼C!” 
i = 10
while i:
    print ('我爱鱼C!')
    i = i - 1
 答:10次
2. 请写出与 10 < cost < 50 等价的表达式
(10 < cost) and (cost < 50)
3. Python3 中,一行可以书写多个语句吗?
答:可以,用分号隔开,如:>>> print('I love you');print('very much!') 
4. Python3 中,一个语句可以分成多行书写吗?
答:可以,用反斜杠\,或者括号分解成几行。如:
 >>> 3>4 and \
    1<2
False
>>> (4>3 and
 5>4)
True
>>>  
 6. 听说过“短路逻辑(short-circuit logic)”吗?
 答:逻辑操作符有个有趣的特性:在不需要求值的时候不进行操作。这么说可能比较“高深”,举个例子,表达式 x and y,需要 x 和 y 两个变量同时为真(True)的时候,结果才为真。因此,如果当 x 变量得知是假(False)的时候,表达式就会立刻返回 False,而不用去管 y 变量的值。这种行为被称为短路逻辑(short-circuit logic)或者惰性求值(lazy evaluation),这种行为同样也应用与 or 操作符。

操作:
0. 完善第二个改进要求(为用户提供三次机会尝试,机会用完或者用户猜中答案均退出循环)并改进视频中的代码。 
 
import random
times = 3
secret = random.randint (1,10)#随机函数
print('猜字谜')
#先给出guess赋值(赋一个绝对不等于secret的值)
guess = 0
#print()默认是打印完字符串会自动添加一个换行符,end=" "参数告诉print()用空格代替换行
print ('猜猜我心里想的是什么数字?', end = ' ')#注意逗号用英文标点
while (guess != secret) and (times > 0):
    temp = input ()
    guess = int (temp)
    times = times - 1#每输入一次,可用机会就-1
    if guess == secret:
        print('wtf,你是我心里的蛔虫吗?')
    else:
        if guess > secret:
            print('大了大了!!')
        else:
            print('小了小了!!')
        if times > 0:
            print ('再试一次吧:', end = ' ')
        else:
            print('机会用完了,退下吧。')
print('游戏结束,又被坑了吧!!')
 运行结果: 
 >>> 
猜字谜
猜猜我心里想的是什么数字? 5
小了小了!!
再试一次吧: 6
小了小了!!
再试一次吧: 9
小了小了!!
机会用完了,退下吧。
游戏结束,又被坑了吧!!
>>> 
 
2,
 
temp = input ('请输入一个整数:')
num = int (temp)
i = 1
while num:
    print(i)
    i = i + 1
    num = num - 1
 运行效果:(未理解其中用法) 
>>> 
请输入一个整数:10
1
2
3
4
5
6
7
8
9
10
>>> 
 
 3,
 
temp = input ('请输入一个整数:')
num = int (temp)
while num:#循环输入的数字次数,如输入8则执行8次
    i = num - 1#变量i赋值
    while i:#循环i次
        print('  ',end = ' ')#打印结果中的*号前面的空格。
        i = i - 1
    j = num
    while j:
        print('*',end = ' ')#打印结果中的*号
        j = j - 1
    print()#打印完自动添加换行符
    num = num - 1
 运行效果 
>>> 
请输入一个整数:8
                     * * * * * * * * 
                  * * * * * * * 
               * * * * * * 
            * * * * * 
         * * * * 
      * * * 
   * * 

>>> 
 做下改动, 
temp = input ('请输入一个整数:')
num = int (temp)
while num:#循环输入的数字次数,如输入8则执行8次
    i = num - 1#变量i赋值
    while i:#循环i次
        print('  ',end = ' ')#打印结果中的*号前面的空格。
        i = i - 1
    j = num
    while j:
        print('*',end = ' ')#打印结果中的*号
        j = j - 1
    k = num
    while k:
        print('$',end = ' ')
        k = k - 1
    print()#打印完自动添加换行符
    num = num - 1
 加多一个变量k,然后做循环,看看效果如下: 
>>> 
请输入一个整数:8
                     * * * * * * * * $ $ $ $ $ $ $ $ 
                  * * * * * * * $ $ $ $ $ $ $ 
               * * * * * * $ $ $ $ $ $ 
            * * * * * $ $ $ $ $ 
         * * * * $ $ $ $ 
      * * * $ $ $ 
   * * $ $ 
* $ 
>>>
 
 课时小结:
 1、while循环语句及其应用(需加深理解)
2、 了解输入随机数:import random 和 random.randint ()的含义
3、and的使用

 

posted @ 2014-02-28 10:05  小丑戌  阅读(1860)  评论(0编辑  收藏  举报