Python从入门到精通(第3版)
上QQ阅读APP看书,第一时间看更新

3.1.4 逻辑运算符

假定某面包店,在每周二的下午7:00~8:00和每周六的下午5:00~6:00时,对生日蛋糕商品进行折扣让利活动,那么想参加折扣活动的顾客,就要在时间上满足“周二并且7:00 PM~8:00 PM”或者“周六并且5:00 PM~6:00 PM”,这里就用到了逻辑关系,Python中也提供了这样的逻辑运算符来进行逻辑运算。

逻辑运算符是对真和假两种布尔值进行运算,运算后的结果仍是一个布尔值,Python中的逻辑运算符主要包括and(逻辑与)、or(逻辑或)、not(逻辑非)。表3.4列出了逻辑运算符的用法和说明。

表3.4 逻辑运算符

使用逻辑运算符进行逻辑运算时,其运算结果如表3.5所示。

表3.5 使用逻辑运算符进行逻辑运算的结果

【例3.3】参加面包店的打折活动。(实例位置:资源包\TM\sl\03\03)

在IDLE中创建一个名称为sale.py的文件,然后在该文件中使用代码实现本节开始描述的场景,代码如下:

     01   print("面包店正在打折,活动进行中……")                              # 输出提示信息
     02   strWeek = input("请输入中文星期(如星期一):")                      # 输入星期,如星期一
     03   intTime = int(input("请输入时间中的小时(范围:0~23):"))           # 输入时间
     04   # 判断是否满足活动参与条件(使用了if条件语句)
     05   if (strWeek == "星期二" and  (intTime >= 19 and intTime <= 20)) or (strWeek == "星期六" and (intTime >= 17 and
     intTime <= 18)):
     06       print("恭喜您,获得了折扣活动参与资格,尽情选购吧!")            # 输出提示信息
     07   else:
     08       print("对不起,您来晚一步,期待下次活动……")                    # 输出提示信息

说明

(1)在第2行代码中,input()方法用于接收用户输入的字符序列。

(2)在第3行代码中,由于input()方法返回的结果为字符串类型,因此需要进行类型转换。

(3)第5行和第7行代码使用了if…else条件判断语句,该语句主要用来判断是否满足某种条件,该语句将在第4章进行详细讲解,这里只需要了解即可。

(4)在第5行代码中,在对条件进行判断时,使用了逻辑运算符and、or和关系运算符==、>=、<=。

按F5键运行上述代码,首先输入星期为“星期一”,然后输入时间为8,将显示如图3.5所示的结果;再次运行程序,输入星期为“星期六”,时间为18,将显示如图3.6所示的结果。

图3.5 不符合条件的运行效果

图3.6 符合条件的运行效果

说明

例3.3未对输入错误信息进行校验,为保证程序的正确性,请输入合法的星期和时间。另外,有兴趣的读者可以自己试着添加校验功能。