第四讲:改进猜数字小游戏
一、知识点:
1.while循环,语法为:
while 判断条件:
执行语句
定义为在某条件下,循环执行某段程序,以处理需要重复处理的相同任务。
执行语句可以是单个语句或语句块。判断条件可以是任何表达式,任何非0或非空的值均为true。
2.其他:操作符、if……else语句、and的使用
3.模块的引用,语法为:
import module1[, module2[,... moduleN]
4.猜数字游戏2.0代码:
print('--------猜数字游戏2.0--------')
import random
secret = random.randint(1,10)
temp = input('请输入现在的数字:')
guess = int(temp)
while guess != secret:
temp = input('对不起,猜错了,请重新输入:')
guess = int(temp)
if guess == secret:
print('恭喜,猜对了!')
else:
if guess > secret:
print('大了,大了!')
else:
print('小了,小了!')
print('游戏结束!')
-------------------------------------------------------------------------------------------------------
二、课后作业:
0.请问以下代码会打印多少次“我爱鱼C”?
while 'C':
print('我爱鱼C')
while语句中,当条件为真的时候,会无限循环下去。可以是同CTRL+C来结束循环。
1.请问以下代码会打印多少次“我爱鱼C”?
>>> i=10
>>> while i:
print('我爱鱼C!')
i -= 1
10次。在Python中,None、任何数值类型中的0、空字符串“”、空元组()、空列表[]、空字典{}都被当作False,还有自定义类型,如果实现了 __ nonzero __ () 或 __ len __ ()方法且方法返回0或False,则其实例也被当作False,其他对象均为True。2.请写出与10<cost<50等价的表达式。
(10<cost)and(cost<50)
3.python3中一行可以写多个语句吗?
可以,使用“;”隔开。
print('a');print('b')
4.python3中一个语句可以分为多行书写吗?
可以。使用反斜杠‘\’或者使用括号分解成几行
print('a + b \
c')
或
>>> (4>3 and
5>4)
5.什么是短路逻辑?
布尔运算符有个有趣的特性:只有在需要求值时才进行求值。举例来说,表达式x and y需要两个变量都为真时才为真,所以如果x为假,表达式就会立刻返回false,而不管y的值(事实上各个语言都有这个特性)。实际上,如果x为假,表达式会返回x得值----否则它就返回y的值。这种行为被称为短路逻辑(short-circuit logic)或惰性求值(lazy evaluaion):布尔运算符通常被称为逻辑运算符,就像你看到的那样第2个值有时“被短路了”。这种行为对于or来说也同样适用。在表达式x or y中,x为真时,它直接返回x的值,否则返回y值。注意,这意味着在布尔运算符之后的所有代码都不会执行。
逻辑运算符and或or一旦不止一个,其运算规则的核心思想就是短路逻辑。
- 表达式从左至右计算,若or的左侧逻辑值为True,则短路or后所有的表达式(不管是and还是or,直接输出or左侧表达式)。
- 表达式从左至右计算,若and的左侧逻辑值为False,则短路其后所有and表达式,直到有or出现,输出and左侧表达式到or的左侧,参与接下来的逻辑运算。
- 若or的左侧为False,或者and的左侧为True,则不能使用短路逻辑。
动动手:
0.完善第二个改进要求(为用户提供三次机会尝试,机会用完或者用户猜中答案均退出循环)并改进视频中小甲鱼的代码。
print('--------猜数字游戏3.0--------')
import random
secret = random.randint(1,10)
count = 3
print('请输入现在的数字:',end='')
guess = 0
while guess != secret and count>0:
temp = input()
guess = int(temp)
count -= 1
if guess == secret:
print('恭喜,猜对了!')
else:
if guess > secret:
print('大了,大了!')
else:
print('小了,小了!')
if count > 0:
print('重新输入一遍吧:',end='')
else:
print('机会用完了!')
print('游戏结束!')
-------------------------------------------------------------------------------------------------------