iT邦幫忙

2025 iThome 鐵人賽

DAY 2
0
自我挑戰組

從 Python 基礎到 Vibe Coding 遊戲開發:我的奇幻旅程系列 第 2

第二天: Python 變數與資料型態:掌握程式碼的基石

  • 分享至 

  • xImage
  •  

第二天: Python 變數與資料型態:掌握程式碼的基石

大家好!歡迎來到我的從 Python 基礎到 Vibe Coding 遊戲開發:我的奇幻旅程的第二天。在昨天的旅程中,我們成功設定了 Python 的開發環境,並學會了如何用 print() 語法在 PyCharm 中輸出文字訊息。今天,我們將深入探索 Python 程式設計的核心概念:變數與資料型態,這將是您寫出更複雜、更具互動性程式碼的基石。

變數:程式碼中的「可變盒子」
首先,我們來聊聊 「變數」。所謂變數,顧名思義就是它的數值可以產生變化 。您可以將變數想像成一個儲存資料的「盒子」,這個盒子有一個名稱,裡面可以存放不同的數值。
例如,我們可以設定一個變數叫做 temperature(氣溫),一開始是 26 度,但隨時可以將它修改為 22 度。雖然名稱不變,但裡面的數值卻會改變,這就是變數的特性。

範例 1: 變數的定義與數值變化

temperature = 26  # 設定氣溫為 26 度
print(temperature) # 輸出: 26 

temperature = 22  # 將氣溫更改為 22 度
print(temperature) # 輸出: 22 

在命名變數時,Python 有一些規則需要遵守:
• 不能以數字開頭:變數名稱必須是英文字母或底線符號開頭。
• 不能包含空格:如果需要區分多個單字,建議使用底線符號(my_age)或採用駝峰式命名法(myAge,將每個單字的首字母大寫)。
• 區分大小寫:Age 和 age 會被視為兩個不同的變數,它們會產生不同的執行結果。

變數與數學計算
變數不僅能儲存數字,還能進行數學計算。我們可以將變數用於加、減、乘、除等運算。

範例 2: 變數的數學計算

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() 語法來四捨五入取整數。另一種快速取整數的方式是使用雙斜線 // 符號,它會捨去小數點以後的數字,直接得到整數結果。

範例 3: 數字取整數

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 字串):表示一串文字訊息。分辨字串最簡單的方式是它的兩側會有一對雙引號或單引號。

範例 4: 查詢資料型態 (type())

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 混淆字串的範圍。如果需要顯示多行文字,可以在字串的首尾連續輸入三個雙引號或單引號。

範例 5: 字串的引號使用與多行字串

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() 語法。

範例 6: 透過 input() 取得使用者輸入

user_name = input("請輸入您的姓名: ") # 會等待使用者輸入 
print(f"您的姓名是: {user_name}")    # 輸出使用者輸入的內容 

當您使用 input() 請對方輸入資料時,請務必注意,不論使用者輸入的是數字還是文字,input() 語法回傳的資料類型一律都是 str (字串)!這是一個常見的錯誤來源,因為字串是無法直接用來進行數學計算的!

範例 7: input() 回傳的資料型態

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():將資料轉換為字串。

範例 8: 資料類型轉換的重要性

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 中扮演註解的功能,可以用來對程式碼進行筆記,說明其用途,或者暫時停用某行語法,這在查找程式碼錯誤時非常方便。

範例 9: 註解的使用

# 這是一行註解,用來解釋程式碼的功能 
x = 10 # 設定變數 x 的值 
# print(x) # 這行程式碼被註解掉了,不會執行 

恭喜您,今天我們學習了 Python 變數與資料型態的奧秘,這些知識將是您接下來學習更複雜邏輯的基礎。我們下次再見,將深入探討如何讓程式碼學會思考!


上一篇
第一天:為何選擇 Python?以及我的「Vibe Coding」遊戲開發之路
下一篇
第三天: IF 條件判斷式:讓程式碼學會思考
系列文
從 Python 基礎到 Vibe Coding 遊戲開發:我的奇幻旅程5
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言