第3章 成为高手前必须知道的一些基础知识-下
原文再续,书接上一回
3.6 条件分支
改进一:当用户猜错的时候程序应该给点提示,比如告诉用户输入的值比答案是大了还是小了。
程序修改后(假设答案是8):
- 如果用户输入3,程序应该提示比答案小了
- 如果用户输入9,程序应该提示比答案大了
那怎样才能做到这一点呢?自己可以想一下,应该是要用到判断和比较的,不然怎么知道是大了还是小了
我们还没有学习比较运算符,比较运算符神马来的,大家都认识大于号(>)、小于号(<)、等于号(==),记得一个等号表示赋值,两个等号表示等于号,下面就来看一下是什么东东?
Python的比较操作符:
运算符 | 描述 | 示例 |
---|---|---|
> | 检查左操作数的值是否大于右操作数的值,如果是,则条件成立。 | 如a=7,b=3则(a > b) 为 true. |
< | 检查左操作数的值是否小于右操作数的值,如果是,则条件成立。 | 如a=7,b=3则(a < b) 为 false. |
>= |
检查左操作数的值是否大于或等于右操作数的值,如果是,则条件成立。 | 如a=3,b=3则(a >= b) 为 true. |
<= | 检查左操作数的值是否小于或等于右操作数的值,如果是,则条件成立。 | 如a=3,b=3则(a <= b) 为 true. |
== | 检查两个操作数的值是否相等,如果是则条件变为真。 | 如a=3,b=3则(a == b) 为 true. |
!= | 检查两个操作数的值是否相等,如果值不相等,则条件变为真。 | 如a=1,b=3则(a != b) 为 true. |
<> | 检查两个操作数的值是否相等,如果值不相等,则条件变为真。 | 如a=1,b=3则(a <> b) 为 true。这个类似于 != 运算符 |
下面在IDLE中输入两个数以及进行比较操作符,Python返回比较后的的结果:
>>> 1 < 3
True
>>> 1 > 3
False
>>> 1 == 3
False
>>> 1 != 3
True
为什么要在小于号左右两边分别留一个空格?目的其实就是为了好看美观,同时方便别人阅读你的代码
再说一下程序仅仅是一个命令清单的话,那么它就是一条路走到黑,为了把程序设计得更聪明点,可以根据不同的条件执行不同的任务,这就实现了条件分支
if 条件:
条件为真(True)执行的操作
else:
条件为假(False)执行的操作
下面是实现第一个改进
temp = input("不妨猜一下小甲鱼现在心里想的是哪个数字:")
guess = int(temp)
if guess == 8:
print("你是小甲鱼心里的蛔虫吗?!")
print("牛逼,猜中了也没有奖励!")
else:
if guess > 8:
print("哥,大了大了~~~")
else:
print("嘿,小了小了~~~")
print("游戏结束,不玩啦☺")
游戏结果:
不妨猜一下小甲鱼现在心里想的是哪个数字:6
嘿,小了小了~~~
游戏结束,不玩啦☺
3.7 while循环
第1个要求实现了,用户不满意,为什么要不停的运行你的程序,才能够去猜,你就不能给多几次机会给我吗?(我们这个程序还好,几次尝试就成功了,但是如果范围扩大到1~100,那么尝试的次数要随之增加,总让用户不断地重新打开程序,这种程序的体验未免就太差了哈!)
第2次改进要求,程序应该提供多次机会给用户猜测,简单来说就是程序需要重复运行某些代码。
Python的while循环的语法:
while 条件:
条件为真(True)执行的操作
下面就修改一下代码吧,第1次尝试,失败,弄了一个死循环出来,如果电脑性能不好的话,可能会卡死,所以请谨慎操作,当我输入不等于8的数字的时候,就会进入死循环,ctrl+c货值直接点击那个×。
出现死循环,请及时退出,就好像身体得了病,记得要吃药
temp = input("不妨猜一下小甲鱼现在心里想的是哪个数字")
guess = int(temp)
while guess != 8:
if guess == 8:
print(