零基础入门学习Python(第2版)
上QQ阅读APP看书,第一时间看更新

3.7 初识循环

第一个改进要求实现了,可是用户还是不高兴,他们会抱怨道:“为什么我要不停地重新运行这个程序呢?难道不能每次运行多给几次输入的机会吗?”

我们这个程序还好,几次尝试就可以成功了,但如果范围扩大为1~100,那么尝试的次数就要随之增加,总让用户不断地重新打开程序,这种程序的体验未免就太差了。

第二个改进要求:程序应该提供多次机会给用户猜测,专业点儿来讲就是程序需要重复运行某些代码。

下面介绍Python的while循环语法。

非常简单,对吧?Python向来如此,让我们一起来修改代码吧:

分析:先接收一次用户的输入,把值转换成整数后赋值给guess变量,然后判断该值是否为正确答案(8),如果是就不会执行循环体的内容(因为while循环执行的条件是guess不等于8);否则进入循环体,依次判断用户输入的数是大于8还是小于8,并分别给出提示信息。最后,要求用户再一次尝试。

聪明的读者可能已经发现了,这样改的话,程序的逻辑变成了“只有用户输入正确的数字,循环才能够结束”。这就与第二个改进要求有点不同了,所以大家不妨边思考边动手,看怎么改才能真正满足要求。

这里给一点提示:可以使用and逻辑操作符。

Python的逻辑操作符可以将任意表达式连接在一起,并得到一个布尔类型的值。布尔类型只有两个值:True和False,就是真与假。

来看例子:

     >>> (3 > 2) and (1 < 2)
     True
     >>> (3 > 2) and (1 > 2)
     False

很明显1 > 2客观上是不存在的,所以这个条件是个伪命题,因此and的结果为False。使用and逻辑操作符将左右两个条件串起来的时候,只有当两者同时成立,结果才能是True;否则均为False。大家可以自己多做几次实验来证明。