您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“Python中is語法的示例分析”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“Python中is語法的示例分析”這篇文章吧。
起步
Python 的成功一個原因是它的可讀性,代碼清晰易懂,更容易被人類所理解,但有時可讀性會產生誤解。
假如要判斷一個變量是不是 17,那可以:
if x is 17:
x 是 17 肯定是比 x == 17 更加口語化的。
is的誤解
但是如果你嘗試:
if name is "weapon":
這個判斷不見得管用。is 用來檢查左側和右側是否是完全相同的對象。如果有兩個不同的字符串對象,每個對象的值是相同的,應該使用 == 來判斷,因為 is 的用法與口語上的區別挺大的:
if 999 + 1 is 1000: # False
正因為這樣的誤解,在 if 判斷條件上容易讓初學者掉坑:
answer = 'yes' if answer is 'y' or 'yes':
你會發現不管變量是什么值,判斷都是為真。因為 is 的優先級高,相當于 if (answer is 'y') or ('yes') 。
正確的方法應該是 if answer == 'y' or answer == 'yes' 或者 if answer in ('y', 'yes') 。
is not 上的混淆
>>> 'something' is not None True >>> 'something' is (not None) False
is not 是一個二元運算符,應該視為一個整體,不要因為中間空格而當成兩個詞。底層上,它們也是一個操作符,CPython 將 s is not None 翻譯成的字節碼為:
6 LOAD_NAME 0 (s) 8 LOAD_CONST 1 (None) 10 COMPARE_OP 9 (is not)
is not 是對 is 相對應的操作符。也可以視為是將 is 判斷的結果再進行取反。
以上是“Python中is語法的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。