国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

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

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

瀏覽:123日期: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 編程
相關文章:
主站蜘蛛池模板: 南部县| 山阳县| 靖远县| 台江县| 环江| 张家港市| 馆陶县| 涞水县| 新乡市| 大石桥市| 方山县| 诸城市| 万山特区| 钟山县| 定远县| 庆城县| 曲阳县| 广州市| 唐河县| 长岛县| 化德县| 明水县| 肇东市| 金坛市| 东辽县| 筠连县| 阳谷县| 美姑县| 柘荣县| 留坝县| 平利县| 沙田区| 哈巴河县| 鱼台县| 镇平县| 青田县| 宁城县| 那坡县| 宽甸| 綦江县| 阿克陶县|