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

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

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

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

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

    你学到了什么

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

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

    • 缩进和代码块。

    • 使用 and 和 or 结合测试。

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

    测试题

    1. 运行这个程序会得到什么输出:
    my_number = 7
    if my_number < 20:
    print 'Under 20'
    else:
    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)?

    输出应该像这样:

    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 升的缓冲区,以防油表不准。

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

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