iT邦幫忙

2023 iThome 鐵人賽

DAY 13
0
自我挑戰組

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

第21天 - C 和 Python的較量 (一)

  • 分享至 

  • xImage
  •  

命名的規則

除了前面文章介紹的命名慣例外,程式語言更有嚴格的命名規則。

  • C 和 Python 變數、函式等名稱的命名規則:
    • 以字母或底線開頭:名稱必須以字母 ( a-z、A-Z ) 或底線(_)開頭。不能以數字開頭。
    • 可以包含字母、數字和底線:在初始字母之後,名稱也可以包含數字(0-9)和底線。
    • 不允許空格或特殊字符 ( 但允許使用底線 ):名稱不能包含空格特殊字符,如!、@、#、$、%等
    • 名稱不能是關鍵字
    • 名稱區分大小寫

這裡就舉例說明 Python 命名的規則和慣例

my_variable = 10
My_Variable = 20  # 名稱區分大小寫,但這名稱不符合Python命名慣例


def my_function():
    pass


class MyClass:
		class_variable = 0

    def __init__(self, value):
        self.instance_variable = value

    def _private_method(self):
        pass

    def my_method(self):
        pass

    @classmethod
    def class_method(cls):
        cls.class_variable += 1

Python 的類別 (class) 命名特例:

  • 方法 (method) 或變數 (variable) 名稱以單個底線開頭 ( 例如: _private_method、_private_variable),這是命名慣例,表示該方法或變數僅供在類別或模塊內部使用。
  • 加上兩個底線(__)在方法 (method) 前後,表示這是一個特殊方法 ( 例如: __init__ )。這不是命名慣例,而是一個特殊方法的命名模式。
  • 前面有介紹 Python 的類別 (class) 命名慣例是用大駝峰式 ( Upper Case Camel ),中間沒有底線。
    但Python 的內建類別 (class) 命名是用小寫字母,例如:intstrlistdict
  • Exception 類別名稱的結尾要加上 “Error”,例如:ValueErrorTypeError

甚麼是關鍵字 (keywords)?

前面有談到名稱不可以使用關鍵字。
在程式語言中,「關鍵字」(Keywords)指的是被保留,具有特殊意義的單字。

  • C 的關鍵字 可以在網路文章查詢,例如: 🌐 C 關鍵字 | Microsoft Learn

  • Python 的關鍵字

    可以用以下方式查詢:

    help("keywords")

    或是使用 keyword 模組

    import keyword
    
    keywords_list = keyword.kwlist  # Python keywords list
    num_keywords = len(keywords_list)  # keywords number
    
    print(f"{num_keywords}個 Python 關鍵字 (keywords): ")
    print(keywords_list)
    

字串的輸入和輸出

學習程式語言,最開始是教導如何輸出 “Hello World!”
我們就從字串的輸入和輸出,來開始比較 C 和 Python 語法的差異。

  • C:
char name[100];

printf("輸入名字: ");
scanf("%s", name);
printf("Hello, %s!\n", name);

printf("輸入單一字元: ");
char c = getchar();
printf("輸入是: %c\n", c);
  • Python:
name = input("輸入名字: ")
print(f"Hello, {name}!")

c = input("輸入單一字元: ")
print(f"輸入是: {c}")

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

尚未有邦友留言

立即登入留言