久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術文章
文章詳情頁

python3.x - Python not 運算符的問題

瀏覽:137日期:2022-06-27 17:43:20

問題描述

>>> a = False + 55

>>> a = not(1) + 5False

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

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

問題解答

回答1:

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

>>> not 1 + 2False>>> not (1 + 2)False>>> not (1 + 2) + 1False>>> (not (1 + 2)) + 11回答2:

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) # Falsenot(-1) + 1 # True回答3:

正如上面所說,因為 not operator 的優先級小于 + 所以 not(1)+6 會被翻譯為 not (1)+5關于這些情況,你完全可以通過 dis模塊 來查看具體的過程。>>> import dis>>> dis.dis('a = False + 5') 1 0 LOAD_CONST 3 (5) 3 STORE_NAME 0 (a) 6 LOAD_CONST 2 (None) 9 RETURN_VALUE>>> dis.dis('a = not(1) + 5') 1 0 LOAD_CONST 3 (6) 3 UNARY_NOT 4 STORE_NAME 0 (a) 7 LOAD_CONST 2 (None) 10 RETURN_VALUE

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 凤城市| 乐山市| 双辽市| 佛山市| 阜阳市| 日土县| 乌苏市| 晋宁县| 当涂县| 嘉黎县| 湖北省| 准格尔旗| 改则县| 怀柔区| 盐山县| 桦甸市| 泊头市| 弥勒县| 大英县| 依兰县| 天气| 贵定县| 宣恩县| 平塘县| 乌兰察布市| 高碑店市| 南充市| 吴忠市| 红河县| 兴仁县| 长顺县| 双牌县| 肇庆市| 临沧市| 布尔津县| 梧州市| 年辖:市辖区| 锡林郭勒盟| 长兴县| 当涂县| 太保市|