使用者工具

網站工具


python_study

差異處

這裏顯示兩個版本的差異處。

連向這個比對檢視

Both sides previous revision 前次修改
下次修改
前次修改
python_study [2024/04/15 10:31]
don
python_study [2024/04/15 10:53] (目前版本)
don
行 3: 行 3:
  
  
 +
 +==== 直接執行時與被引用的判斷機制 ====
 +
 +你就可以看到 __name__ 的值在檔案被直接執行時與被引用時是不同的。
 +所以回到上面的問題:要怎麼讓檔案在被引用時,不該執行的程式碼不被執行?
 +當然就是靠 <code>__name__ == '__main__' </code>做判斷!
 +<code>
 +# cool.py
 +
 +defcool_func():
 +    print('cool_func(): Super Cool!')
 +
 +if__name__=='__main__':
 +    print('Call it locally')
 +    cool_func()
 +</code>
  
 * 註解符號為 # * 註解符號為 #
行 163: 行 179:
 遍歷迴圈可以理解為從遍歷結構中逐一提取元素,放在迴圈變數中,對於每個所提取的元素執行一次語句塊。 遍歷迴圈可以理解為從遍歷結構中逐一提取元素,放在迴圈變數中,對於每個所提取的元素執行一次語句塊。
  
 +<code>
 for <迴圈變數> in <遍歷結構>: for <迴圈變數> in <遍歷結構>:
  <語句塊>  <語句塊>
 +</code>
 例如: 例如:
  
行 344: 行 362:
 縮排、縮排、縮排 縮排、縮排、縮排
 Python 程式語言的一個最大的特色就是以縮排定義程式結構。不像 C, C++, Java 等語言用括號定義程式區塊 (類別、函式、條件判斷和迴圈等),在 Python 裡,行首的「空白字元個數」 (即縮排) 就定義了區塊結構。許多會寫像 Python 程式語言的一個最大的特色就是以縮排定義程式結構。不像 C, C++, Java 等語言用括號定義程式區塊 (類別、函式、條件判斷和迴圈等),在 Python 裡,行首的「空白字元個數」 (即縮排) 就定義了區塊結構。許多會寫像
-int main(){ +<code> 
-    int i;+int main() 
 +
 +  int i;
   double d;   double d;
-      d = 1.d0; +  d = 1.d0; 
-        i = 2;+  i = 2;
 } }
 +</code>
 這種程式的人一開始會非常不習慣這種作法;但所有程式設計的書都會告訴你程式碼應該要排整齊,亂排只會增加往後維護的困難度而已。Python 強迫程式員把程式寫得漂亮,這不單簡化了往後的維護工作,更去掉了程式裡那些擾人的括號,對減少程式碼長度來說效果良好。 這種程式的人一開始會非常不習慣這種作法;但所有程式設計的書都會告訴你程式碼應該要排整齊,亂排只會增加往後維護的困難度而已。Python 強迫程式員把程式寫得漂亮,這不單簡化了往後的維護工作,更去掉了程式裡那些擾人的括號,對減少程式碼長度來說效果良好。
  
 註記 註記
 適當地縮短程式碼的行數絕對是好事。一個函式能在一頁裡列完,就能比兩三頁長的函式更易讀易懂,也更不容易寫錯。 適當地縮短程式碼的行數絕對是好事。一個函式能在一頁裡列完,就能比兩三頁長的函式更易讀易懂,也更不容易寫錯。
 +<code>
 在 Python 裡, 在 Python 裡,
 print "Hi" print "Hi"
行 367: 行 389:
     print "1 == 1, of course"     print "1 == 1, of course"
 這樣才對。 這樣才對。
 +</code>
 至於一次縮排要縮多少個字元,Python 並沒有進行限制,甚至不同的段落空白不一樣長也可以;\\ 至於一次縮排要縮多少個字元,Python 並沒有進行限制,甚至不同的段落空白不一樣長也可以;\\
 只要同一個區塊的行首空白數相同即可。然而經驗告訴我們,\\ 只要同一個區塊的行首空白數相同即可。然而經驗告訴我們,\\
python_study.1713148317.txt.gz · 上一次變更: 2024/04/15 10:31 由 don