摘要:起步的成功一個原因是它的可讀性,代碼清晰易懂,更容易被人類所理解,但有時可讀性會產生誤解。的誤解但是如果你嘗試這個判斷不見得管用。用來檢查左側和右側是否是完全相同的對象。每種語言的結構都存在一些出乎意料的使用。
起步
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 非常易讀。每種語言的結構都存在一些“出乎意料”的使用。這并不影響我對 Python 這門語言的喜愛,每個人都應該好好學習,并小心使用選擇的語言。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/43713.html
摘要:行結束符之后的符號有二義性,使得該符號與上條語句能夠無縫對接,不導致語法錯誤。然而在中,有幾種特殊語句是不允許行結束符存在的。如果語句中有行結束符,會優先認為行結束符表示的是語句的結束,這在標準中稱為限制產生式。 showImg(https://segmentfault.com/img/bVmyZB); 什么是 ASI ? 自動分號插入 (automatic semicolon i...
摘要:普通可迭代對象只有魔術方法,而不像迭代器一樣擁有魔術方法,這意味著它無法實現自遍歷過程,同時在經過循環的它遍歷后,也不會破壞原有的結構。這兩個是我創造的概念,詳見進階迭代器與迭代器切片。 showImg(https://segmentfault.com/img/remote/1460000019621809); 本文原創并首發于公眾號【Python貓】,未經授權,請勿轉載。 原文地址:...
摘要:如果你以逗號為分隔符,傳遞額外的參數,這些參數會被傳遞至函數,最終打印時每個參數之間會空一格。從上面的示例代碼中我們就可以看出,使用函數有明顯的好處與使用語句相比,我們現在能夠指定其他的分隔符和結束符。這就是為什么將變成函數的原因。 本文首發于編程派的微信公眾號。 原作者:Brett Cannon 原文鏈接:http://www.snarky.ca/why-print-became-...
摘要:以上原則,是基本原則。比如用指一組賬號,就會被人誤解為是類型的數據,事實上可能是也可能不是。不論如何,要記住一個標準明確賦值語句對于賦值語句,看官已經不陌生了。其實,賦值的樣式不少,核心就是將變量和某對象對應起來。 變量命名 在《初識永遠強大的函數》一文中,有一節專門討論取名字的學問,就是有關變量名稱的問題,本溫故而知新的原則,這里要復習: 名稱格式:(下劃線或者字母)+(任意數目...
摘要:編寫工作首先介紹了一個稱為的內部組件表示,并解釋了變更檢測過程在視圖上運行。本文主要由兩部分組成第一部分探討錯誤產生的原因,第二部分提出可能的修正。它對我意義重大,它能幫助其他人看到這篇文章。 在過去的8個月里,我大部分空閑時間都是reverse-engineering Angular。我最感興趣的話題是變化檢測。我認為它是框架中最重要的部分,因為它負責像DOM更新、輸入綁定和查詢列表...
閱讀 3473·2023-04-25 18:52
閱讀 2485·2021-11-22 15:31
閱讀 1224·2021-10-22 09:54
閱讀 3011·2021-09-29 09:42
閱讀 607·2021-09-26 09:55
閱讀 912·2021-09-13 10:28
閱讀 1103·2019-08-30 15:56
閱讀 2110·2019-08-30 15:55