第二天: Python 變數與資料型態:掌握程式碼的基石
大家好!歡迎來到我的從 Python 基礎到 Vibe Coding 遊戲開發:我的奇幻旅程的第二天。在昨天的旅程中,我們成功設定了 Python 的開發環境,並學會了如何用 print() 語法在 PyCharm 中輸出文字訊息。今天,我們將深入探索 Python 程式設計的核心概念:變數與資料型態,這將是您寫出更複雜、更具互動性程式碼的基石。
變數:程式碼中的「可變盒子」
首先,我們來聊聊 「變數」。所謂變數,顧名思義就是它的數值可以產生變化 。您可以將變數想像成一個儲存資料的「盒子」,這個盒子有一個名稱,裡面可以存放不同的數值。
例如,我們可以設定一個變數叫做 temperature(氣溫),一開始是 26 度,但隨時可以將它修改為 22 度。雖然名稱不變,但裡面的數值卻會改變,這就是變數的特性。
temperature = 26 # 設定氣溫為 26 度
print(temperature) # 輸出: 26
temperature = 22 # 將氣溫更改為 22 度
print(temperature) # 輸出: 22
在命名變數時,Python 有一些規則需要遵守:
• 不能以數字開頭:變數名稱必須是英文字母或底線符號開頭。
• 不能包含空格:如果需要區分多個單字,建議使用底線符號(my_age)或採用駝峰式命名法(myAge,將每個單字的首字母大寫)。
• 區分大小寫:Age 和 age 會被視為兩個不同的變數,它們會產生不同的執行結果。
變數與數學計算
變數不僅能儲存數字,還能進行數學計算。我們可以將變數用於加、減、乘、除等運算。
lunch_cost = 100
dinner_cost = 150
daily_meal_cost = lunch_cost + dinner_cost # 加法
print(f"小明一天的餐費是: {daily_meal_cost} 元") # 輸出: 小明一天的餐費是: 250 元
weekly_meal_cost = (lunch_cost + dinner_cost) * 7 # 加法與乘法
print(f"小明一週的餐費是: {weekly_meal_cost} 元") # 輸出: 小明一週的餐費是: 1750 元
monthly_living_expense = 16000
daily_average_expense = monthly_living_expense / 30 # 除法,結果可能為小數
print(f"小明一天的平均支出是: {daily_average_expense} 元") # 輸出: 例如 533.3333333333334
在處理數字時,如果遇到帶有小數點的結果,我們可以使用 round() 語法來四捨五入取整數。另一種快速取整數的方式是使用雙斜線 // 符號,它會捨去小數點以後的數字,直接得到整數結果。
monthly_living_expense = 16000
daily_average_expense = monthly_living_expense / 30
# 使用 round() 語法四捨五入
rounded_expense = round(daily_average_expense)
print(f"使用 round() 四捨五入後: {rounded_expense} 元") # 輸出: 533
# 使用 // (整數除法) 捨去小數
floor_divided_expense = monthly_living_expense // 30
print(f"使用 // 捨去小數後: {floor_divided_expense} 元") # 輸出: 533
資料型態:不同數據的「身份」
不同的資料類型,其可執行的工作也會有所不同。要查詢任何資料的類型,我們可以使用 type() 語法。Python 最基本且常用的資料類型包括:
• int (integer 整數):用於儲存整數,主要用途是進行計算。
• float (浮點數):或稱為「小數」,用於儲存帶有小數點的數字。
• str (string 字串):表示一串文字訊息。分辨字串最簡單的方式是它的兩側會有一對雙引號或單引號。
number_int = 123
number_float = 3.14
text_string = "哈囉 Python"
print(f"變數 number_int 的型態是: {type(number_int)}") # 輸出: <class 'int'>
print(f"變數 number_float 的型態是: {type(number_float)}") # 輸出: <class 'float'>
print(f"變數 text_string 的型態是: {type(text_string)}") # 輸出: <class 'str'>
一般情況下,使用單引號或雙引號包覆字串沒有區別。然而,如果句子本身包含單引號,外部就必須使用雙引號來包覆字串,反之亦然,以避免 Python 混淆字串的範圍。如果需要顯示多行文字,可以在字串的首尾連續輸入三個雙引號或單引號。
single_quote_string = '這是一個單引號字串。'
double_quote_string = "這是一個雙引號字串。"
print(single_quote_string)
print(double_quote_string)
# 句子中含有引號時
message1 = "It's a beautiful day!" # 外部雙引號包覆內部單引號
message2 = 'He said, "Hello!"' # 外部單引號包覆內部雙引號
print(message1)
print(message2)
# 多行字串
multiline_text = """這是一段
可以包含多行文字的字串。""" # 使用三個雙引號
print(multiline_text)
程式與使用者互動: 與資料類型轉換
除了我們直接在程式碼中輸入資料外,Python 還能與使用者互動並取得輸入。這需要用到 input() 語法。
user_name = input("請輸入您的姓名: ") # 會等待使用者輸入
print(f"您的姓名是: {user_name}") # 輸出使用者輸入的內容
當您使用 input() 請對方輸入資料時,請務必注意,不論使用者輸入的是數字還是文字,input() 語法回傳的資料類型一律都是 str (字串)!這是一個常見的錯誤來源,因為字串是無法直接用來進行數學計算的!
birth_year_str = input("請輸入您的出生年份: ")
print(f"您輸入的出生年份的型態是: {type(birth_year_str)}") # 輸出: <class 'str'>
# 錯誤示範:字串不能直接進行數學運算
# current_year = 2024
# age = current_year - birth_year_str # 這行會導致錯誤
這就引出了資料類型轉換的重要性。為了能夠對從 input() 語法獲取的數字進行計算,我們需要將其從 str 轉換為數字類型。Python 提供了幾個同名的語法來進行轉換:
• int():將資料轉換為整數。
• float():將資料轉換為小數。
• str():將資料轉換為字串。
current_year = 2024
birth_year_str = input("請輸入您的出生年份: ")
# 將字串轉換為整數,才能進行計算
birth_year_int = int(birth_year_str) # 轉換為整數
age = current_year - birth_year_int
print(f"您的年齡是: {age} 歲。")
# 字串串接與 f-string
# 只有字串類型才能將文字相互連接 (使用 + 號)
print("您的年齡是 " + str(age) + " 歲。") # 將整數年齡轉換為字串再串接
# 更方便的字串格式化方式 (f-string)
print(f"您的年齡是 {age} 歲。") # 在字串前加上 f,然後用大括號 {} 包住變數
程式碼中的筆記:註解
最後,在編寫程式碼時,您可能會看到 # 這個符號。它在 Python 中扮演註解的功能,可以用來對程式碼進行筆記,說明其用途,或者暫時停用某行語法,這在查找程式碼錯誤時非常方便。
# 這是一行註解,用來解釋程式碼的功能
x = 10 # 設定變數 x 的值
# print(x) # 這行程式碼被註解掉了,不會執行
恭喜您,今天我們學習了 Python 變數與資料型態的奧秘,這些知識將是您接下來學習更複雜邏輯的基礎。我們下次再見,將深入探討如何讓程式碼學會思考!