Python 提供豐富的比較運算子,涵蓋小於、大於、等於和不等於等常見比較,適用於數值和字串。字串比較根據字典順序,大寫字母優先於小寫字母。邏輯運算子 and、or、not 則能組合多個條件,實作更複雜的判斷邏輯,搭配括號提升程式碼可讀性。迴圈控制方面,for 迴圈適用於固定次數的迭代,而 while 迴圈則根據條件判斷是否繼續執行。此外,break 陳述式可在迴圈中滿足特定條件時提前結束迴圈。為了避免程式碼重複,Python 允許定義函式,將特定功能封裝起來,並透過引數控制函式的行為,提升程式碼的彈性和重用性。

比較運算子

在進行數值比較時,我們可以使用多種比較運算子,包括小於(<)、大於(>)、小於或等於(<=)、大於或等於(>=)、相等(==)和不相等(!=)。

運算子列表

  • 小於(<):用於比較兩個數值,判斷前者是否小於後者。
  • 大於(>):用於比較兩個數值,判斷前者是否大於後者。
  • 小於或等於(<=):用於比較兩個數值,判斷前者是否小於或等於後者。
  • 大於或等於(>=):用於比較兩個數值,判斷前者是否大於或等於後者。
  • 相等(==):用於比較兩個數值,判斷兩者是否相等。
  • 不相等(!=):用於比較兩個數值,判斷兩者是否不相等。

示例

# 測試不相等運算子
print(1!= 2)  # True
print(1!= 1)  # False

# 測試大於或等於運算子
print(10 >= 10)  # True
print(10 >= 11)  # False

# 測試相等運算子
print(10 == 10)  # True

常見錯誤

在進行比較時,常見的一個錯誤是使用指定運算子(=)而不是相等運算子(==)。這種錯誤可能很難被發現,因為如果比較的一方是變數,語法是正確的,但結果並不是預期的。

字串比較

除了數值比較外,我們還可以比較字串。字串的比較是根據字典順序進行的,也就是說,按照字母的順序進行比較。

# 測試字串比較
print('aa' < 'ab')  # True
print('aaa' < 'aa')  # False

需要注意的是,字串比較時,大寫字母的ASCII碼值小於小寫字母的ASCII碼值,因此在比較時會優先考慮大寫字母。

圖表翻譯:

  flowchart TD
    A[開始] --> B[選擇運算子]
    B --> C[進行比較]
    C --> D[判斷結果]
    D --> E[輸出結果]

在這個流程圖中,我們首先選擇適合的運算子,然後進行比較,接著判斷結果,並最終輸出結果。

條件判斷與迴圈控制

在 Python 中,當我們需要根據特定條件執行不同的程式碼時,可以使用 if 陳述式。然而,當條件變得複雜,涉及多個邏輯判斷時,如何有效地使用邏輯運算子 (andornot) 來指定複雜的條件,是一個重要的課題。

邏輯運算子的使用

邏輯運算子允許我們根據變數的值進行複雜的判斷。例如,假設我們想要檢查一個變數 x 是否在 10 到 20 之間,可以使用 and 運算子:

x = 17
if x >= 10 and x <= 20:
    print('x is in the middle')

這段程式碼會檢查 x 是否大於或等於 10 且小於或等於 20,如果條件滿足,則印出 'x is in the middle'

結合多個條件

我們可以結合多個 andor 陳述式來建立更複雜的條件。當表示式變得複雜時,使用括號來群組條件可以提高程式碼的可讀性:

if (x >= 10 and x <= 20) or (x >= 30 and x <= 40):
    print('x is in the range')

這裡,我們檢查 x 是否在 10 到 20 之間,或是在 30 到 40 之間。如果任一條件滿足,則印出 'x is in the range'

重複執行指令

在某些情況下,我們可能需要重複執行一段程式碼特定次數。Python 的 for 迴圈提供了一種方便的方式來實作這一點。例如,要重複執行一段程式碼 10 次,可以使用以下方式:

for i in range(10):
    print('重複執行第', i+1, '次')

這段程式碼會印出從 '重複執行第 1 次''重複執行第 10 次' 的訊息。

圖表翻譯:

  flowchart TD
    A[開始] --> B[設定變數 x]
    B --> C[檢查條件 x >= 10 and x <= 20]
    C -->|true| D[印出 'x is in the middle']
    C -->|false| E[結束]
    E --> F[重複執行指令]
    F --> G[設定迴圈次數]
    G --> H[執行迴圈]
    H --> I[結束]

這個流程圖描述瞭如何使用邏輯運算子和迴圈來控制程式的流程,包括設定變數、檢查條件、重複執行指令等步驟。

使用Python的while迴圈重複執行指令

在Python中,當你需要重複執行某段程式碼直到某個條件發生變化時,可以使用while迴圈。while迴圈會不斷重複其巢狀的命令,直到其條件變為False

基本語法

while 條件:
    # 執行的程式碼

範例:重複輸入命令直到使用者輸入’X'

answer = ''
while answer!= 'X':
    answer = input('Enter command:')
    # 在這裡可以新增其他程式碼來處理使用者的輸入
    print(f"您輸入了:{answer}")

在這個範例中,程式會不斷地詢問使用者輸入命令,直到使用者輸入’X’。當使用者輸入’X’時,while迴圈的條件變為`False%,因此迴圈終止。

重點解釋

  • while迴圈的條件是answer!= 'X',這意味著只要answer不等於’X%,迴圈就會繼續執行。
  • input('Enter command:')用於取得使用者的輸入,並將其儲存在answer變數中。
  • print(f"您輸入了:{answer}")顯示使用者剛剛輸入的內容。

實際應用

在實際應用中,你可以根據不同的條件和需求來使用while迴圈。例如,你可以使用它來重複執行某個任務,直到任務完成或某個條件滿足。

圖表翻譯

  flowchart TD
    A[開始] --> B{是否滿足條件}
    B -->|是| C[執行程式碼]
    C --> B
    B -->|否| D[結束]

這個圖表展示了while迴圈的流程:當條件滿足時,執行程式碼;當條件不滿足時,結束迴圈。

迴圈控制:使用break陳述式離開迴圈

在Python中,當您需要在滿足某個條件時離開迴圈時,可以使用break陳述式。這個陳述式可以用於離開whilefor迴圈。

範例:使用break陳述式離開迴圈

以下範例展示瞭如何使用break陳述式離開迴圈:

while True:
    answer = input('Enter command: ')
    if answer == 'X':
        break

在這個範例中,當使用者輸入’X’時,迴圈會離開。

討論

注意,這個範例使用了Python 3中的input函式。如果您使用Python 2,需要將input替換為raw_input

這個範例與Recipe 5.22中的範例行為相同,但使用了break陳述式來離開迴圈。

相關內容

  • 如果您只想重複執行某些命令一定次數,請參考Recipe 5.21。
  • 如果您嘗試對列表或字典中的每個元素重複執行命令,請參考Recipe 6.7或Recipe 6.15。

內容解密:

在上面的範例中,我們使用了while True來建立一個無限迴圈。然後,我們使用input函式來讀取使用者的輸入。如果使用者輸入’X’,我們使用break陳述式來離開迴圈。

圖表翻譯:

  flowchart TD
    A[開始] --> B[讀取使用者輸入]
    B --> C[檢查輸入是否為'X']
    C -->|是| D[離開迴圈]
    C -->|否| B

在這個圖表中,我們展示了迴圈的流程。當使用者輸入’X’時,迴圈會離開。否則,迴圈會繼續執行。

定義Python函式

在Python中,當您想要避免在程式中重複相同的程式碼時,可以使用函式。函式是一個可以被呼叫多次的程式碼塊,能夠幫助您避免程式碼的重複。

定義函式

以下是定義一個Python函式的基本結構:

def 函式名稱(引數):
    # 函式內容

其中,函式名稱是您為函式取的名字,引數是函式接受的引數。

範例:定義一個計數函式

以下是定義一個計數函式的範例:

def count_to_10():
    for i in range(1, 11):
        print(i)

count_to_10()

這個函式會印出1到10的數字。

讓函式更靈活

如果您想要讓函式更靈活,可以在函式定義中加入引數。例如:

def count_to_n(n):
    for i in range(1, n+1):
        print(i)

count_to_n(10)

這個函式現在可以計數到任意的數字,而不僅僅是10。

函式命名規則

在Python中,函式名稱應該以小寫字母開頭,如果名稱包含多個單詞,應該使用底線(_)分隔。例如:count_to_n

從程式碼結構最佳化與可維護性角度來看,善用比較運算子、條件判斷、迴圈控制和函式是 Python 程式設計的根本。本文深入探討了這些核心概念,並佐以清晰的程式碼範例和流程圖,有效闡明瞭它們的實際應用和最佳實務。分析比較運算子的常見錯誤,例如指定運算子(=)與相等運算子(==)的混淆,有助於提升程式碼的正確性。此外,文章也詳細說明瞭邏輯運算子(and、or、not)在建構複雜條件判斷中的關鍵作用,以及如何利用括號提升程式碼可讀性。迴圈控制部分的break陳述式應用,則展現了程式流程控制的精細化技巧,避免了無限迴圈的風險。最後,定義函式的章節強調了程式碼模組化和重複使用性的重要性,並提供了函式命名規範的實務建議。然而,文章未深入探討遞迴函式的應用場景及最佳化策略,這也是未來可以補充的內容。展望未來,隨著程式設計思維的演進,預期會有更多結合這些基本語法的進階應用模式出現,例如結合生成式 AI 的程式碼自動生成與最佳化技術。對於追求程式碼品質的開發者而言,持續精進這些基本功,並探索新的應用方式,將是保持競爭力的關鍵。玄貓認為,掌握這些核心概念,並在實務中靈活運用,才能寫出簡潔、高效且易於維護的 Python 程式碼。