Python 知识量:10 - 41 - 150
基本上,所有的编程语言都使用布尔逻辑来进行决策、区分“是非”,Python也是如此。
布尔逻辑就是操作真值。在Python中,“真”用True来表示,“假”用False来表示。此外,判断真假时需要用到几个逻辑运算符,例如:==、!=、and、or、not。以下是Python的真值表:
p |
q | p==q | p!=q |
p and q |
p or q |
not p |
---|---|---|---|---|---|---|
False | False | True | False | False | False | True |
False | True | False | True | False | True | True |
True | False | False | True | False | True | False |
True | True | True | False | True | True | False |
相等用逻辑运算符“==”来表示,仅当p和q都为True或都为False时,表达式p==q的结果才为True。
>>> True==True True >>> False==False True >>> True==False False >>> False==True False
不相等用逻辑运算符“!=”来表示,仅当p和q不同时,表达式p!=q的结果才为True。
>>> True!=True False >>> False!=False False >>> True!=False True >>> False!=True True
逻辑与用关键字and表示,仅当p和q都为True时,表达式p and q的结果才为True。
>>> True and True True >>> False and False False >>> True and False False >>> False and True False
逻辑或用关键字or来表示,仅当p和q至少有一个为True时,表达式p or q的结果才为True。
>>> True or True True >>> False or False False >>> True or False True >>> False or True True
逻辑非用关键字not来表示,表达式not p与p的真值总是不同的。
>>> not True False >>> not False True
在计算较长(包含2个及以上逻辑运算符)的布尔表达式时需要知道运算符的优先级,来确定先计算哪一部分。Python布尔运算的优先级由高到低依次为:
p==q
p!=q
not q
p and q
p or q
对于表达式not True and False or True来说:
首先计算not True,结果为False,表达式变为 False and False or True。
再计算False and False,结果为False,表达式变为 False or True。
最后计算False or True,结果为True。
>>> not True and False or True True
在逻辑运算中,如果表达式含有圆括号,应当总是先计算圆括号内表达式的值。如果存在多个圆括号嵌套的情况,应当首先计算最内层圆括号所包含的表达式。
对于表达式not (True and (False or True))来说:
首先计算最内层圆括号中False or True的值,结果为True,表达式变为 not(True and True)。
再计算外层圆括号中True and True的值,结果为True,表达式变为 not(True)。
最后计算not(True),结果为False。
>>> not (True and (False or True)) False
在进行布尔逻辑运算时,Python与其他主流编程语言一样,也采用短路求值,这样可以提高计算的速度。
例如:对于False and X来说,不论X是True还是False,整个表达式的计算结果总是False;而对于True or X来说,不论X是True还是Flase,整个表达式的计算结果总是True。对于以上情况,Python不会计算X部分,而是直接给出结果,这就可以提高计算效率。
Copyright © 2017-Now pnotes.cn. All Rights Reserved.
编程学习笔记 保留所有权利
MARK:3.0.0.20240214.P35
From 2017.2.6