还可以用 not
把比较倒过来,表示相反的逻辑。
color = raw_input(/"Enter your favorite color: /")if color == /"red/" or color == /"blue/" or color == /"green/": print /"You are allowed to play this game./"else: print /"Sorry, you can/'t play the game./"
这行代码
if not (age < 8):
与这行代码:
if age >= 8:
两者的含义是一样的。在这两种情况下,如果年龄是 8 岁或者超过 8 岁就会执行代码块,如果年龄小于 8 就不会执行。
第 4 章中,我们见过诸如 +、-、* 和 / 等数学运算符。在本章中,我们了解了比较操作符 <、>、== 等。and
、or
和 not
关键字也是操作符。它们被称为逻辑操作符(logical operator)。这些操作符用来修改比较,可以结合两个或多个比较(and
和 or
),或者取反(not
)。
表 7-1 列出了目前为止我们讨论过的所有操作符。
表 7-1 数学和比较操作符列表
你可能想在这一页上夹个书签,这样下次就能很容易地查阅这个表了。
你学到了什么
在这一章,你学到了以下内容。
比较测试和关系操作符。
缩进和代码块。
使用
and
和or
结合测试。使用
not
来进行反向测试。
测试题
1. 运行这个程序会得到什么输出:
my_number = 7if my_number < 20: print /'Under 20/'else: print /'20 or over/'
2. 基于第一个问题中的程序,如果把 my_number
改为 25,输出会是什么?
3. 要检查一个数是否大于 30 但小于或等于 40,要用哪种 if
语句?
4. 要检查用户输入的字母“Q”是大写还是小写,要使用哪种 if
语句?
动手试一试
1. 一家商场在降价促销。如果购买金额低于或等于 10 元,会给 10% 的折扣,如果购买金额大于 10 元,会给 20% 的折扣。编写一个程序,询问购买价格,再显示折扣(10% 或 20%)和最终价格。
2. 一个足球队在寻找年龄在 10 到 12 岁之间的小女孩加入。编写一个程序,询问用户的年龄和性别(m 表示男性,f 表示女性)。显示一条消息指出这个人是否可以加入球队。
额外提示:要合理地建立程序,如果用户不是女孩就不必询问年龄。
3. 你在长途旅行,刚到一个加油站,距下一个加油站还有 200 km。编写一个程序确定是不是需要在这里加油,还是可以等到下一个加油站再加油。
这个程序应当问下面几个问题。
你的油箱有多大(单位是升)?
油箱有多满(按百分比,例如,半满就是 50%)?
你的汽车每升油可以走多远(km)?
输出应该像这样:
Size of tank: 60percent full: 40km per liter: 10You can go another 240 kmThe next gas station is 200 km awayYou can wait for the next station.
或
Size of tank: 60percent full: 30km per liter: 8You can go another 144 kmThe next gas station is 200 km awayGet gas now!
额外提示:程序中包含一个 5 升的缓冲区,以防油表不准。
4. 建立一个程序,用户必须输入密码才能使用这个程序。你当然知道密码(因为它会写在你的代码中)。不过,你的朋友要得到这个密码就必须问你或者直接猜,也可以学习足够的 Python 知识查看代码来找出密码!
对程序没什么要求,可以是你已经编写的程序,也可以是一个非常简单的程序,只在用户输入正确的口令时显示一条“You/'re in!”之类的消息。