iT邦幫忙

2023 iThome 鐵人賽

DAY 13
0
自我挑戰組

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

第20天- C和 Python首場PK

  • 分享至 

  • xImage
  •  

前面一系列文章是介紹 C 和 Python 開發工具和環境設定。今天是中秋節,就來點不一樣,開始比較 C 和 Python 的差異。

程式碼區塊

  • C 使用花括號 (curly braces) { }來 定義程式碼區塊 (delimit code blocks)

    // 函式定義,花括號 "{" 表示函式區塊的開始
    void my_function() {
    		...
        // 迴圈定義,花括號 "{" 表示迴圈區塊的開始
        for (int i = 0; i < 5; i++) {
            // 程式碼區塊內容
    				...
        }
    		...
    }
    
  • Python 使用縮排(indentation)來定義程式碼區塊,且還需要在定義這些區塊的開始處使用冒號 : 來表示。

    # 函式定義,冒號 ":" 表示函式區塊的開始
    def my_function():
        # 程式碼區塊內容,這裡使用縮排表示函式的內容
    		...
    		# 迴圈定義,冒號 ":" 表示迴圈區塊的開始
    		for i in range(5):
    		    # 程式碼區塊內容,這裡使用縮排表示迴圈的內容
    				...
    

    縮排與冒號 : 是 Python 語言中一起使用的重要元素,確保程式碼有著明確的區塊定義。

變數 (Variable)

  • 在 C 語言中,在使用任何變數之前,必須先宣告變數,就是指定變數的名稱和資料型態。
    例如:int x;

    也可以同時宣告變數和設定初始值,
    例如: int x = 10, y = 20;

  • 在 Python 中,不需要事先宣告變數的類型。當第一次使用變數並設定值時,Python 會自動推斷出變數的類型,
    例如: x = 5

    此外,在 Python 中,變數的類型可以在執行時改變

    x = 5
    print(type(x)) # <class 'int'>  是整數
    
    # 變數的類型可以在運行時改變
    x = "hello"
    print(type(x)) # <class 'str'>   是字串
    
    # 在 Python 中,可以使用一行程式碼來宣告和初始化多個變數
    name, height, city = "John", 170, "New York"
    a, b, c = 1, 2, 3  
    
  • 在 C 語言中,通常會在函式或區塊的開頭宣告變數。
    這樣做的好處是可以讓程式碼更加清晰,並且方便管理變數。

  • 然而,在 Python 中,變數通常是在整個程式中根據需要進行宣告和初始化,而不是在函式或區塊的開頭。
    這樣做的好處是可以讓程式碼更加靈活,並且可以更好地適應不同的情況。

命名慣例

  • C 沒有比較一致的命名慣例。比較常見有

    • 大駝峰(upper camel case):開頭變成大寫,又稱為 Pascal Case,例如:FirstName
    • 小駝峰(lower camel case):開頭是小寫,例如:firstName

    如有想進一步了解 C 命名慣例,可以參考以下建議和討論:
    🌐 C語言命名規範 - CodingNote.cc
    🌐 What are the most common naming conventions in C? - Stack Overflow

  • Python 有一致的命名慣例:

    • 變數命名和函數命名,習慣用蛇形命名 ( Snake Case ),也就是所有字母都用小寫,並且以半形底線 _做區隔來連接單字。
      例如: snake_case
    • 類別 (class) 命名是習慣用大駝峰式命名(Upper Case Camel)。大駝峰式是把每個字首大寫、其餘小寫的寫法,例如: UpperCaseCamel。
    • 表達為常數 (具有不變的特性) 的變數,會使用「全部大寫」的蛇形命名。
      例如:client id 會寫成 CLIENT_ID,而 圓周率是 Math.PI
    • 另外,VSCode 會很貼心地把這些類別、函數、變數、常數,塗上不同的顏色。

上一篇
第19天 - Python 程式碼的靜態分析
下一篇
第21天 - C 和 Python的較量 (一)
系列文
玩程式新手村 – C和Python30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言