這裏顯示兩個版本的差異處。
Both sides previous revision 前次修改 下次修改 | 前次修改 | ||
python_study [2024/04/15 10:22] don |
python_study [2024/04/15 10:53] (目前版本) don |
||
---|---|---|---|
行 3: | 行 3: | ||
+ | |||
+ | ==== 直接執行時與被引用的判斷機制 ==== | ||
+ | |||
+ | 你就可以看到 __name__ 的值在檔案被直接執行時與被引用時是不同的。 | ||
+ | 所以回到上面的問題:要怎麼讓檔案在被引用時,不該執行的程式碼不被執行? | ||
+ | 當然就是靠 < | ||
+ | < | ||
+ | # cool.py | ||
+ | |||
+ | defcool_func(): | ||
+ | print(' | ||
+ | |||
+ | if__name__==' | ||
+ | print(' | ||
+ | cool_func() | ||
+ | </ | ||
* 註解符號為 # | * 註解符號為 # | ||
行 37: | 行 53: | ||
print(rand_num()) | print(rand_num()) | ||
print(sqrt_num(9)) | print(sqrt_num(9)) | ||
+ | |||
</ | </ | ||
< | < | ||
- | 程式的最小執行單位為敘句(statement), | + | 程式的最小執行單位為敘句(statement), |
運算式述句~ 算數運算子: | 運算式述句~ 算數運算子: | ||
- | 比較運算子: | + | 比較運算子: |
- | 布林邏輯運算子: | + | 布林邏輯運算子: |
- | 指派述句~ 使用" | + | 指派述句~ 使用" |
- | 輸出: | + | 輸出: |
- | 輸入: input()\\ | + | 輸入: input() |
- | 條件判斷述句~ if , if....else, if...elif....elif...elif...else, | + | 條件判斷述句~ if , if....else, if...elif....elif...elif...else, |
- | 迴圈述句~ for ....in...., while, 使用break , continue 控制迴圈\\ | + | 迴圈述句~ for ....in...., while, 使用break , continue 控制迴圈 |
- | 述句中的物件~整數(integer), | + | 述句中的物件~整數(integer), |
- | </cdoe> | + | </code> |
程式的三種控制結構\\ | 程式的三種控制結構\\ | ||
行 93: | 行 110: | ||
python的二分支結構使用if-else保留字對條件進行判斷,語法格式如下: | python的二分支結構使用if-else保留字對條件進行判斷,語法格式如下: | ||
- | if < | + | if < |
< | < | ||
else: | else: | ||
< | < | ||
+ | | ||
< | < | ||
例如: | 例如: | ||
行 161: | 行 179: | ||
遍歷迴圈可以理解為從遍歷結構中逐一提取元素,放在迴圈變數中,對於每個所提取的元素執行一次語句塊。 | 遍歷迴圈可以理解為從遍歷結構中逐一提取元素,放在迴圈變數中,對於每個所提取的元素執行一次語句塊。 | ||
+ | < | ||
for < | for < | ||
< | < | ||
+ | </ | ||
例如: | 例如: | ||
行 238: | 行 258: | ||
當程式執行到while語句時,判斷條件如果為True,執行迴圈體語句,語句結束後返回再次判斷while語句的條件,當條件為False時,迴圈終止,執行與while同級別縮排的後續語句。 | 當程式執行到while語句時,判斷條件如果為True,執行迴圈體語句,語句結束後返回再次判斷while語句的條件,當條件為False時,迴圈終止,執行與while同級別縮排的後續語句。 | ||
無限迴圈也有一種使用保留字else的擴充套件模式: | 無限迴圈也有一種使用保留字else的擴充套件模式: | ||
+ | < | ||
while < | while < | ||
< | < | ||
else: | else: | ||
< | < | ||
+ | </ | ||
迴圈控制有兩個輔助迴圈控制的保留字:break和continue | 迴圈控制有兩個輔助迴圈控制的保留字:break和continue | ||
break用來跳出最內層for或while迴圈,脫離該迴圈後程式繼續執行迴圈後續程式碼。 | break用來跳出最內層for或while迴圈,脫離該迴圈後程式繼續執行迴圈後續程式碼。 | ||
行 341: | 行 362: | ||
縮排、縮排、縮排 | 縮排、縮排、縮排 | ||
Python 程式語言的一個最大的特色就是以縮排定義程式結構。不像 C, C++, Java 等語言用括號定義程式區塊 (類別、函式、條件判斷和迴圈等),在 Python 裡,行首的「空白字元個數」 (即縮排) 就定義了區塊結構。許多會寫像 | Python 程式語言的一個最大的特色就是以縮排定義程式結構。不像 C, C++, Java 等語言用括號定義程式區塊 (類別、函式、條件判斷和迴圈等),在 Python 裡,行首的「空白字元個數」 (即縮排) 就定義了區塊結構。許多會寫像 | ||
- | int main(){ | + | < |
- | int i; | + | int main() |
+ | { | ||
+ | int i; | ||
double d; | double d; | ||
- | | + | |
- | i = 2; | + | i = 2; |
} | } | ||
+ | </ | ||
這種程式的人一開始會非常不習慣這種作法;但所有程式設計的書都會告訴你程式碼應該要排整齊,亂排只會增加往後維護的困難度而已。Python 強迫程式員把程式寫得漂亮,這不單簡化了往後的維護工作,更去掉了程式裡那些擾人的括號,對減少程式碼長度來說效果良好。 | 這種程式的人一開始會非常不習慣這種作法;但所有程式設計的書都會告訴你程式碼應該要排整齊,亂排只會增加往後維護的困難度而已。Python 強迫程式員把程式寫得漂亮,這不單簡化了往後的維護工作,更去掉了程式裡那些擾人的括號,對減少程式碼長度來說效果良好。 | ||
註記 | 註記 | ||
適當地縮短程式碼的行數絕對是好事。一個函式能在一頁裡列完,就能比兩三頁長的函式更易讀易懂,也更不容易寫錯。 | 適當地縮短程式碼的行數絕對是好事。一個函式能在一頁裡列完,就能比兩三頁長的函式更易讀易懂,也更不容易寫錯。 | ||
+ | < | ||
在 Python 裡, | 在 Python 裡, | ||
print " | print " | ||
行 364: | 行 389: | ||
print "1 == 1, of course" | print "1 == 1, of course" | ||
這樣才對。 | 這樣才對。 | ||
+ | </ | ||
至於一次縮排要縮多少個字元,Python 並沒有進行限制,甚至不同的段落空白不一樣長也可以;\\ | 至於一次縮排要縮多少個字元,Python 並沒有進行限制,甚至不同的段落空白不一樣長也可以;\\ | ||
只要同一個區塊的行首空白數相同即可。然而經驗告訴我們,\\ | 只要同一個區塊的行首空白數相同即可。然而經驗告訴我們,\\ |