当前位置:   article > 正文

Python中真假判断(and-or)_本关任务:编写一个能够推断命题真假的 python 程序。 相关知识 为了完成本关任务,

本关任务:编写一个能够推断命题真假的 python 程序。 相关知识 为了完成本关任务,

目录

一、布尔类型

二、Python2与Python3中区别

三、真假判断

一、布尔类型

布尔类型包括的对象仅可能为True或False,这个类型主要用于布尔表达式

python中提供了一系列布尔比较和逻辑运算

布尔运算:

大于,a>100            大于等于,a>=100

小于,a<100           小于等于,a<=100

等于,a==100         不等于,a!=100

逻辑运算:

逻辑非,not a

逻辑与,a and b

逻辑或,a or b

二、Python2与Python3中区别

在 Python2 中是没有布尔型的,它用数字 0 表示 False,用 1 表示 True。

在Python3中把 True 和 False 定义成关键字了,但他们的值还是1和0。bool 是 int 的子类,True 和 False 可以和数字相加, True==1、False==0 会返回 True。

三、真假判断

1、python会把数字0,0.0,空字符串、空值none、空对象(包括空元组、空集合、空列表)当作False,其他当作True。

  1. >>> print(not 0)
  2. True
  3. >>> print(not 0.0)
  4. True
  5. >>> print(not [])
  6. True
  7. >>> print(not None)
  8. True
  9. >>> print(not ())
  10. True
  11. >>> print(not {})
  12. True
  13. >>> print(not '')
  14. True
  15. #######注意对象中不为空的时候
  16. >>> print(not [0])
  17. False
  18. >>> print(not [1])
  19. False

2、逻辑运算and-or

(1)expr1 and expr2     

如果expr1为真,表示会去处理expr2并返回expr2的值;

如果expr1为假,表示会直接返回expr1的值,而不会去处理expr2。

  1. >>> print(True and 0)
  2. 0
  3. >>> print(True and not 0)
  4. True
  5. >>> print(False and not 0)
  6. False

(2)expr1 or expr2

如果expr1为真,表示会直接返回expr1的值,而不会去处理expr2;

如果expr1为假,表示会去处理expr2并返回expr2的值。

  1. >>> print(True or 0)
  2. True
  3. >>> print(False or 0)
  4. 0

(3)多个and:expr1 and expr2 and expr3

and自左向右扫描布尔表达式,如果所有值为真,则返回最后一个为真的表达式,如果为假,则返回第一个为假的表达式。

如果expr1为真,则expr1 and expr2会返回expr2的值,这个时候expr1 and expr2 and expr3可以变换为expr2 and expr3,然后再判断expr2的真假,重复(1)即可;

如果expr1为假,则expr1 and expr2会返回expr1的值,这个时候expr1 and expr2 and expr3可以变换为expr1 and expr3,然后再判断expr1的真假,重复(1)即可;

  1. >>> print(1 and 0 and 1)
  2. 0
  3. >>> print(1 and 1 and 0)
  4. 0
  5. >>> print(0 and 0 and 1)
  6. 0
  7. >>> print(0 and 1 and 1)
  8. 0
  9. >>> print(1 and 1 and 1)
  10. 1

(4)多个or:expr1 or expr2 or expr3

or的使用与and正好相反,自左向右计算整个布尔表达式,如果有为真的值,那么立刻返回第一个为真的值,如果整个表达式为假,则返回最后一个为假的值。

如果expr1为真,则expr1 or expr2会返回expr1的值,这个时候expr1 or expr2 or expr3可以变换为expr1 or expr3,然后再判断expr2的真假,重复(2)即可;

如果expr1为假,则expr1 or expr2会返回expr2的值,这个时候expr1 or expr2 or expr3可以变换为expr2 or expr3,然后再判断expr1的真假,重复(2)即可;

  1. >>> print(1 or 0 or 1)
  2. 1
  3. >>> print(1 or 1 or 0)
  4. 1
  5. >>> print(0 or 0 or 1)
  6. 1
  7. >>> print(0 or 1 or 1)
  8. 1
  9. >>> print(0 or 0 or 0)
  10. 0

(5)and-or并列:expr1 and expr2 or expr3

与前面多个and多个or的思路一样:

若expr1为真,则expr1 and expr2会返回expr2的值,这个时候expr1 and expr2 or expr3可以变换为expr2 or expr3,再重复(2)即可;

若expr1为假,则expr1 and expr2会返回expr1的值,个时候expr1 and expr2 or expr3可以变换为expr1 or expr3,再重复(2)即可;

  1. >>> print(1 and 1 or 0)
  2. 1
  3. >>> print(1 and 0 or 1)
  4. 1
  5. >>> print(0 and 1 or 0)
  6. 0
  7. >>> print(0 and 0 or 1)
  8. 1

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/175854
推荐阅读
相关标签
  

闽ICP备14008679号