7.9 使用 not

还可以用 not 把比较倒过来,表示相反的逻辑。

  1. color = raw_input("Enter your favorite color: ")
  2. if color == "red" or color == "blue" or color == "green":
  3. print "You are allowed to play this game."
  4. else:
  5. print "Sorry, you can't play the game."

这行代码

  1. if not (age < 8):

与这行代码:

  1. if age >= 8:

两者的含义是一样的。在这两种情况下,如果年龄是 8 岁或者超过 8 岁就会执行代码块,如果年龄小于 8 就不会执行。

第 4 章中,我们见过诸如 +、-、* 和 / 等数学运算符。在本章中,我们了解了比较操作符 <、>、== 等。andornot 关键字也是操作符。它们被称为逻辑操作符(logical operator)。这些操作符用来修改比较,可以结合两个或多个比较(andor),或者取反(not)。

表 7-1 列出了目前为止我们讨论过的所有操作符。

表 7-1 数学和比较操作符列表

操作符名字作用
数学运算符
=赋值将一个值赋至一个名(变量)
+两个数相加。这个操作符也可以用来连接字符串
-两个数相减
+=自增将一个数增 1
-=自减将一个数减 1
*两个数相乘
/两个数相除。如果两个数都是整数,结果只是整数商而没有余数
%取余得到两个数整除的余数
**求幂将一个数自乘得到幂。这个数以及幂可以是整数或浮点数
比较操作符
==相等检查两个东西是否相等
小于检查第一个数是否小于第二个数
>大于检查第一个数是否大于第二个数
>小于或等于检查第一个数是否小于或等于第二个数
>=大于或等于检查第一个数是否大于或等于第二个数
!=不等于检查两个东西是否不相等(这两个操作符都可以使用)
>

你可能想在这一页上夹个书签,这样下次就能很容易地查阅这个表了。

你学到了什么

在这一章,你学到了以下内容。

  • 比较测试和关系操作符。

  • 缩进和代码块。

  • 使用 andor 结合测试。

  • 使用 not 来进行反向测试。

测试题

  1. 运行这个程序会得到什么输出:
  1. my_number = 7
  2. if my_number < 20:
  3. print 'Under 20'
  4. else:
  5. print '20 or over'
  1. 基于第一个问题中的程序,如果把 my_number 改为 25,输出会是什么?

  2. 要检查一个数是否大于 30 但小于或等于 40,要用哪种 if 语句?

  3. 要检查用户输入的字母“Q”是大写还是小写,要使用哪种 if 语句?

动手试一试

  1. 一家商场在降价促销。如果购买金额低于或等于 10 元,会给 10% 的折扣,如果购买金额大于 10 元,会给 20% 的折扣。编写一个程序,询问购买价格,再显示折扣(10% 或 20%)和最终价格。

  2. 一个足球队在寻找年龄在 10 到 12 岁之间的小女孩加入。编写一个程序,询问用户的年龄和性别(m 表示男性,f 表示女性)。显示一条消息指出这个人是否可以加入球队。

额外提示:要合理地建立程序,如果用户不是女孩就不必询问年龄。

  1. 你在长途旅行,刚到一个加油站,距下一个加油站还有 200 km。编写一个程序确定是不是需要在这里加油,还是可以等到下一个加油站再加油。

这个程序应当问下面几个问题。

  • 你的油箱有多大(单位是升)?

  • 油箱有多满(按百分比,例如,半满就是 50%)?

  • 你的汽车每升油可以走多远(km)?

输出应该像这样:

  1. Size of tank: 60
  2. percent full: 40
  3. km per liter: 10
  4. You can go another 240 km
  5. The next gas station is 200 km away
  6. You can wait for the next station.

  1. Size of tank: 60
  2. percent full: 30
  3. km per liter: 8
  4. You can go another 144 km
  5. The next gas station is 200 km away
  6. Get gas now!

额外提示:程序中包含一个 5 升的缓冲区,以防油表不准。

  1. 建立一个程序,用户必须输入密码才能使用这个程序。你当然知道密码(因为它会写在你的代码中)。不过,你的朋友要得到这个密码就必须问你或者直接猜,也可以学习足够的 Python 知识查看代码来找出密码!

对程序没什么要求,可以是你已经编写的程序,也可以是一个非常简单的程序,只在用户输入正确的口令时显示一条“You're in!”之类的消息。