小甲鱼Python3学习笔记之第四讲(仅记录学习)

第四讲:改进猜数字小游戏

一、知识点:

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”?

扫描二维码关注公众号,回复: 1873373 查看本文章
while 'C':
    print('我爱鱼C')

while语句中,当条件为真的时候,会无限循环下去。可以是同CTRL+C来结束循环。

1.请问以下代码会打印多少次“我爱鱼C”?

>>> i=10
>>> while i:
	print('我爱鱼C!')
	i -= 1
10次。Python中,None、任何数值类型中的0、空字符串“”、空元组()、空列表[]、空字典{}都被当作False,还有自定义类型,如果实现了  __ nonzero __ () 或 __ len __ ()方法且方法返回0False,则其实例也被当作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('游戏结束!')
-------------------------------------------------------------------------------------------------------


猜你喜欢

转载自blog.csdn.net/huashu2017/article/details/80496507