python3.x - Python not 運算子的問題
phpcn_u1582
phpcn_u1582 2017-06-22 11:52:39
0
3
1324
>>> a = False + 5
5
>>> a = not(1) + 5
False

如上,將 False 直接進行運算時會作為 0 來計算。
使用邏輯運算子 not 時,not(1) 的值為 False0

但為什麼直接將 not(1) 放進算術運算後再次計算的結果為 False
這和 Python 的演算法邏輯有關麼?

phpcn_u1582
phpcn_u1582

全部回覆(3)
刘奇

因為not不是一個函數, 是一個表達式, 不管你not(1)+5 還是not (1+5), 它的作用也只是將後面的結果取已反而.
例如:

>>> not 1 + 2
False

>>> not (1 + 2)
False

>>> not (1 + 2) + 1
False

>>> (not (1 + 2)) + 1
1
漂亮男人

Python 中 not 運算子的用法Boolean Operations:

not x

if x is false, then True, else False

此外,+運算符的優先權(precedence)高於not運算子,所以not(1) + 5中先計算(1) + 5, 後面的(1)+5 作為not運算符的操作數. 舉例可以看到:

not(-1)      # False
not(-1) + 1  # True
Peter_Zhu

雷雷

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板