7.9 使用 not
还可以用 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 数学和比较操作符列表
| 操作符 | 名字 | 作用 |
|---|---|---|
| 数学运算符 | ||
| = | 赋值 | 将一个值赋至一个名(变量) |
| + | 加 | 两个数相加。这个操作符也可以用来连接字符串 |
| - | 减 | 两个数相减 |
| += | 自增 | 将一个数增 1 |
| -= | 自减 | 将一个数减 1 |
| * | 乘 | 两个数相乘 |
| / | 除 | 两个数相除。如果两个数都是整数,结果只是整数商而没有余数 |
| % | 取余 | 得到两个数整除的余数 |
| ** | 求幂 | 将一个数自乘得到幂。这个数以及幂可以是整数或浮点数 |
| 比较操作符 | ||
| == | 相等 | 检查两个东西是否相等 |
| 小于 | 检查第一个数是否小于第二个数 | |
| > | 大于 | 检查第一个数是否大于第二个数 |
| > | 小于或等于 | 检查第一个数是否小于或等于第二个数 |
| >= | 大于或等于 | 检查第一个数是否大于或等于第二个数 |
| != | 不等于 | 检查两个东西是否不相等(这两个操作符都可以使用) |
| > |
你可能想在这一页上夹个书签,这样下次就能很容易地查阅这个表了。
你学到了什么
在这一章,你学到了以下内容。
比较测试和关系操作符。
缩进和代码块。
使用 and 和 or 结合测试。
使用 not 来进行反向测试。
测试题
- 运行这个程序会得到什么输出:
my_number = 7
if my_number < 20:
print 'Under 20'
else:
print '20 or over'
基于第一个问题中的程序,如果把 my_number 改为 25,输出会是什么?
要检查一个数是否大于 30 但小于或等于 40,要用哪种 if 语句?
要检查用户输入的字母“Q”是大写还是小写,要使用哪种 if 语句?
动手试一试
一家商场在降价促销。如果购买金额低于或等于 10 元,会给 10% 的折扣,如果购买金额大于 10 元,会给 20% 的折扣。编写一个程序,询问购买价格,再显示折扣(10% 或 20%)和最终价格。
一个足球队在寻找年龄在 10 到 12 岁之间的小女孩加入。编写一个程序,询问用户的年龄和性别(m 表示男性,f 表示女性)。显示一条消息指出这个人是否可以加入球队。
额外提示:要合理地建立程序,如果用户不是女孩就不必询问年龄。
- 你在长途旅行,刚到一个加油站,距下一个加油站还有 200 km。编写一个程序确定是不是需要在这里加油,还是可以等到下一个加油站再加油。
这个程序应当问下面几个问题。
你的油箱有多大(单位是升)?
油箱有多满(按百分比,例如,半满就是 50%)?
你的汽车每升油可以走多远(km)?
输出应该像这样:
Size of tank: 60
percent full: 40
km per liter: 10
You can go another 240 km
The next gas station is 200 km away
You can wait for the next station.
或
Size of tank: 60
percent full: 30
km per liter: 8
You can go another 144 km
The next gas station is 200 km away
Get gas now!
额外提示:程序中包含一个 5 升的缓冲区,以防油表不准。
- 建立一个程序,用户必须输入密码才能使用这个程序。你当然知道密码(因为它会写在你的代码中)。不过,你的朋友要得到这个密码就必须问你或者直接猜,也可以学习足够的 Python 知识查看代码来找出密码!
对程序没什么要求,可以是你已经编写的程序,也可以是一个非常简单的程序,只在用户输入正确的口令时显示一条“You're in!”之类的消息。
