iT邦幫忙

2023 iThome 鐵人賽

DAY 13
0
自我挑戰組

玩程式新手村 – C和Python系列 第 24

第24天 - C 和 Python的較量 (四)

  • 分享至 

  • xImage
  •  

我們繼續看 C 和 Python 在這「迴圈」控制結構的差異。

迴圈(Loop)

  • 迴圈指的是重複循環執行一些相同的運算

  • 在 C 和 Python 中,for 迴圈和 while 迴圈都是循環控制結構,可以用來重複執行一段程式碼。

  • 用以下 C 程式來舉例說明:

    int i = 1;
    while (i < 6) {
        printf("%d ", i);   // 輸出 1 2 3 4 5
        i++;
    }
    printf("\n");
    
    for (int i = 1; i <= 5; i++) {
    		printf("%d ", i);   // 輸出 1 2 3 4 5
    }
    
  • 這是 C 的 do … while 語法,Python 沒有支援:

    int i = 1;
    do {    // 不論任何條件,至少都會執行一次循環
    		printf("%d ", i);   // 輸出 1 2 3 4 5
    		i++;
    } while (i < 6);   
    printf("\n");
    
  • Python while 循環的語法和 C語言相似。

  • Python  for 循環的語法和 C語言略有不同,且支援可迭代 (iterable)物件,功能較強大。

    用以下 Python 程式來舉例說明:

    i = 1
    while i < 6:
        print(i, end=' ')   # 輸出 1 2 3 4 5
        i += 1
    
    for i in range(1, 6):    # 說明: range(1, 6) 指 1, 2, 3, 4, 5
        print(i, end=' ')    # 輸出 1 2 3 4 5
    

    Python  for 循環的程式碼在每次迭代中,變數會被設為 序列(sequence)中的下一個值,並執行程式碼的 for 區塊。

    這是另一個範例:

    fruits = ['apple', 'banana', 'orange']
    
    for fruit in fruits:  # 語法: for variable in sequence:
        print(fruit)
    

breakcontinue 語句

C 語言和 Python都有breakcontinue語句來控制迴圈的執行流程。

  • break:直接中斷迴圈,強制跳出 ❮整個❯ 迴圈

  • continue:強制跳出 ❮本次❯ 迴圈,繼續進入下一迴圈。

    使用這兩個語句,可以將迴圈if 條件判斷式 整合, 更靈活地控制程式的執行流程。

    這裡以 Python 程式來舉例說明:

    for i in range(5):   # 說明: range(5) 指 0, 1, 2, 3, 4
        if i == 2:
            break
        print(i, end=' ')  # 輸出: 0, 1
    
    print()
    for i in range(5):
        if i == 2:
            continue
        print(i, end=' ')  # 輸出: 0, 1, 3, 4
    

補充說明:

  • 在C 語言break也用在 switch…case 語句。
  • 如果 迴圈 是在一個函式內,實務上也可以用 return 語句中斷迴圈,並結束這一函式。

例外處理 (Exception Handling)

  • 除了使用「條件判斷」與「迴圈」是來控制正常執行流程外,當程式執行過程中發生錯誤或異常情況時,Python 提供了一種稱為「例外處理」(Exception Handling) 的機制,讓我們可以簡潔地處理這些特別情況。

    這裡舉個簡單 Python 例子來說明:

    try:
        x = int(input("請輸入一個整數: "))
        result = 100 / x
        print(f"結果為: {result}")
    except ValueError:      # 例如: 當輸入 ten
        print("輸入的不是數字")
    except ZeroDivisionError:  # 例如: 當輸入 0
        print("除以零的錯誤")
    

上一篇
第23天 - C 和 Python的較量 (三)
下一篇
第25天 - C 和 Python的較量 (五)
系列文
玩程式新手村 – C和Python30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言