基础

在布尔类型上下文中,您几乎可以使用任何表达式。
布尔类型或为真或为假。Python 有两个被巧妙地命名为 TrueFalse 的常量,可用于对布尔类型的直接赋值。表达式也可以计算为布尔类型的值。在某些地方(如 if 语句),Python 所预期的就是一个可计算出布尔类型值的表达式。这些地方称为 布尔类型上下文环境。事实上,可在布尔类型上下文环境中使用任何表达式,而 Python 将试图判断其真值。在布尔类型上下文环境中,不同的数据类型对于何值为真、何值为假有着不同的规则。
size 是整数, 0 是整数,而 < 是数字运算符。size < 0 表达式的结果始终是布尔值。可在 Python 交互式 shell 中自行测试下结果:

  1. >>> size = 1
  2. >>> size < 0
  3. False
  4. >>> size = 0
  5. >>> size < 0
  6. False
  7. >>> size = -1
  8. >>> size < 0
  9. True

由于 Python 2 的一些遗留问题,布尔值可以当做数值对待。True1False 为 0 。

python的not,and,or,xor,相等,蕴含

not(逻辑非 !(python中逻辑非只能使用not))
python not 操作,及truefalse两个值的相互转化,——————真假互异

  • a=True的话, not a=False
  • a=False的话,not a=True
  • a=True的话,not not a=a=True
  • a=False的话,not not a=a=False
    | a(Bool) | not a(bool) | not not a(bool) | | :—-: | :—-: | :—-: | | True | False | True | | False | True | False |

and(逻辑与 && )
python and 操作,及两个都为True时结果为True——————一假必假

  • a=True,b=False的话, a and b =False
  • a=False,b=True的话,a and b =False
  • a=True,b=True的话,a and b =True
  • a=False,b=False的话,a and b =False

python的实现实例代码如下:

  1. # -*- coding:utf-8 -*-
  2. a, b = True, False
  3. print("a={a},b={b}".format(a=a, b=b), end='\t\t')
  4. print("a and b ={c}".format(c=a and b))
  5. a, b = not a, not b
  6. print("a={a},b={b}".format(a=a, b=b), end='\t\t')
  7. print("a and b ={c}".format(c=a and b))
  8. a, b = True, True
  9. print("a={a},b={b}".format(a=a, b=b), end='\t\t')
  10. print("a and b ={c}".format(c=a and b))
  11. a, b = False, False
  12. print("a={a},b={b}".format(a=a, b=b), end='\t\t')
  13. print("a and b ={c}".format(c=a and b))
  14. """
  15. 输出结果为:
  16. a=True,b=False a and b =False
  17. a=False,b=True a and b =False
  18. a=True,b=True a and b =True
  19. a=False,b=False a and b =False
  20. """
a(Bool) b(Bool) a and b (bool)
True True True
False False False
False True False
True False False

or(逻辑或 || )
python or 操作,及两个中有一个为True时结果为True——————一真必真

  • a=True,b=False a or b =True
  • a=False,b=True a or b =True
  • a=True,b=True a or b =True
  • a=False,b=False a or b =False

python的实现实例代码如下:

  1. # -*- coding:utf-8 -*-
  2. a, b = True, False
  3. print("a={a},b={b}".format(a=a, b=b), end='\t\t')
  4. print("a or b ={c}".format(c=a ^ b))
  5. a, b = not a, not b
  6. print("a={a},b={b}".format(a=a, b=b), end='\t\t')
  7. print("a or b ={c}".format(c=a ^ b))
  8. a, b = True, True
  9. print("a={a},b={b}".format(a=a, b=b), end='\t\t')
  10. print("a or b ={c}".format(c=a ^ b))
  11. a, b = False, False
  12. print("a={a},b={b}".format(a=a, b=b), end='\t\t')
  13. print("a or ={c}".format(c=a ^ b))
  14. """
  15. 输出结果为:
  16. a=True,b=False a or b =True
  17. a=False,b=True a or b =True
  18. a=True,b=True a or b =False
  19. a=False,b=False a or =False
  20. """
a(Bool) b(Bool) a or b (bool)
True True True
False False False
False True True
True False True

xor(逻辑异或 ^)
python xor 操作,及两个中一个为True,一个为False时结果为True——————同假异真

  • a=True,b=False a xor b =True
  • a=False,b=True a xor b =True
  • a=True,b=True a xor b =False
  • a=False,b=False a xor b =False

python的实现实例代码如下:

  1. # -*- coding:utf-8 -*-
  2. a, b = True, False
  3. print("a={a},b={b}".format(a=a, b=b), end='\t\t')
  4. print("a xor b ={c}".format(c=a ^ b))
  5. a, b = not a, not b
  6. print("a={a},b={b}".format(a=a, b=b), end='\t\t')
  7. print("a xor b ={c}".format(c=a ^ b))
  8. a, b = True, True
  9. print("a={a},b={b}".format(a=a, b=b), end='\t\t')
  10. print("a xor b ={c}".format(c=a ^ b))
  11. a, b = False, False
  12. print("a={a},b={b}".format(a=a, b=b), end='\t\t')
  13. print("a xor b ={c}".format(c=a ^ b))
  14. """
  15. 输出结果为:
  16. a=True,b=False a xor b =True
  17. a=False,b=True a xor b =True
  18. a=True,b=True a xor b =False
  19. a=False,b=False a xor b =False
  20. """
a(Bool) b(Bool) a xor b (bool)
True True False
False False False
False True True
True False True

相等
python 的 蕴含 操作,当两次的值不想同时(一个为True,一个为False),结果为False——————同真异假

  • a=True,b=False a == b =False
  • a=False,b=True a == b =False
  • a=True,b=True a == b =True
  • a=False,b=False a == b =True

python的实现实例代码如下:

  1. # -*- coding:utf-8 -*-
  2. a, b = True, False
  3. print("a={a},b={b}".format(a=a, b=b), end='\t\t')
  4. print("a == b ={c}".format(c=a == b))
  5. a, b = not a, not b
  6. print("a={a},b={b}".format(a=a, b=b), end='\t\t')
  7. print("a == b ={c}".format(c=a == b))
  8. a, b = True, True
  9. print("a={a},b={b}".format(a=a, b=b), end='\t\t')
  10. print("a == b ={c}".format(c=a == b))
  11. a, b = False, False
  12. print("a={a},b={b}".format(a=a, b=b), end='\t\t')
  13. print("a == b ={c}".format(c=a == b))
  14. """
  15. 输出结果为:
  16. a=True,b=False a == b =False
  17. a=False,b=True a == b =False
  18. a=True,b=True a == b =True
  19. a=False,b=False a == b =True
  20. """
a(Bool) b(Bool) a == b (bool)
True True True
False False True
False True False
True False False

蕴含
python 的 蕴含 操作,及只有第一个为True时,并且第二个为False时,结果为False——————真蕴含假时为假,否则为真
注释:因为python中并没有蕴含的操作,故如果想要去进行蕴含操作的话,你可以去进行自定义函数惊醒操作

  1. def Implies(_BoolNumber1, _BoolNumber2):
  2. return (_BoolNumber1 and _BoolNumber2) or not _BoolNumber1
  3. def test():
  4. """
  5. 输出结果为:
  6. a=True,b=False a => b =False
  7. a=False,b=True a => b =True
  8. a=True,b=True a => b =True
  9. a=False,b=False a => b =True
  10. :return:
  11. """
  12. a, b = True, False
  13. print("a={a},b={b}".format(a=a, b=b), end='\t\t')
  14. print("a => b ={c}".format(c=Implies(a, b)))
  15. a, b = not a, not b
  16. print("a={a},b={b}".format(a=a, b=b), end='\t\t')
  17. print("a => b ={c}".format(c=Implies(a, b)))
  18. a, b = True, True
  19. print("a={a},b={b}".format(a=a, b=b), end='\t\t')
  20. print("a => b ={c}".format(c=Implies(a, b)))
  21. a, b = False, False
  22. print("a={a},b={b}".format(a=a, b=b), end='\t\t')
  23. print("a => b ={c}".format(c=Implies(a, b)))
  24. test()
  • a=True,b=False a => b =False
  • a=False,b=True a => b =True
  • a=True,b=True a => b =True
  • a=False,b=False a => b =True | a(Bool) | b(Bool) | a => b (bool) | | :—-: | :—-: | :—-: | | True | True | True | | False | False | True | | False | True | True | | True | False | False
    |

德-摩根定律

德·摩根定律在数理逻辑的定理推演中,在计算机的逻辑设计中以及数学的集合运算中都起着重要的作用。 他的发现影响了乔治·布尔从事的逻辑问题代数解法的研究。这巩固了德摩根作为该规律的发现者的地位,尽管亚里士多德也曾注意到类似现象,且这也为古希腊与中世纪的逻辑学家熟知。该定律也被称作反演律。
公式一:python的内置数据类型-布尔杂谈 - 图1 python的内置数据类型-布尔杂谈 - 图2
公式二:python的内置数据类型-布尔杂谈 - 图3python的内置数据类型-布尔杂谈 - 图4
python的实现实例代码如下:

  1. # -*- coding:utf-8 -*-
  2. a, b = True, False
  3. print("a={a},b={b}".format(a=a, b=b))
  4. print("not a and not b = {c}\t\tnot a or not b= {d}".format(c=not a and not b, d=not a or not b))
  5. print("not (a or b) = {c}\t\tnot (a and b)= {d}\n".format(c=not (a or b), d=not (a and b)))
  6. a, b = not a, not b
  7. print("a={a},b={b}".format(a=a, b=b))
  8. print("not a and not b = {c}\t\tnot a or not b= {d}".format(c=not a and not b, d=not a or not b))
  9. print("not (a or b) = {c}\t\tnot (a and b)= {d}\n".format(c=not (a or b), d=not (a and b)))
  10. a, b = True, True
  11. print("a={a},b={b}".format(a=a, b=b))
  12. print("not a and not b = {c}\t\tnot a or not b= {d}".format(c=not a and not b, d=not a or not b))
  13. print("not (a or b) = {c}\t\tnot (a and b)= {d}\n".format(c=not (a or b), d=not (a and b)))
  14. a, b = False, False
  15. print("a={a},b={b}".format(a=a, b=b))
  16. print("not a and not b = {c}\t\tnot a or not b= {d}".format(c=not a and not b, d=not a or not b))
  17. print("not (a or b) = {c}\t\tnot (a and b)= {d}".format(c=not (a or b), d=not (a and b)))
  18. """
  19. 输出结果为:
  20. a=True,b=False
  21. not a and not b = False not a or not b= True
  22. not (a or b) = False not (a and b)= True
  23. a=False,b=True
  24. not a and not b = False not a or not b= True
  25. not (a or b) = False not (a and b)= True
  26. a=True,b=True
  27. not a and not b = False not a or not b= False
  28. not (a or b) = False not (a and b)= False
  29. a=False,b=False
  30. not a and not b = True not a or not b= True
  31. not (a or b) = True not (a and b)= True
  32. """