我們把「Hello World」升級成真正會動起來的小程式。
你會用變數裝起資料、用數學運算讓程式「會算」、用字串連接把輸出變得更有表達力,最後再用 input()
跟使用者互動。
過程中也會刻意踩幾個常見地雷(例如把字串跟數字硬湊在一起的 TypeError
、被 0 除的 ZeroDivisionError
),學會看懂並修正錯誤。

計算:電腦的專長
電腦非常擅長執行計算。Python使用+、-、*和/執行加法、減法、乘法和除法的算術運算。
# 輸出 "500"
print(573 - 74 + 1)
# 輸出 "50"
print(25 * 2)
# 輸出 "2.0"
print(10 / 5)
請注意,當我們執行除法時,結果有小數點。這是因為Python在執行除法之前將所有整數轉換為浮點數。嘗試除以0會引發特殊錯誤:ZeroDivisionError。
指數與餘數運算
指數運算 (**)
Python可以執行指數運算。在書面數學中,指數可能顯示為上標數字,但在現代鍵盤上輸入上標數字並不總是容易的。由於這個運算與乘法相關,我們使用**符號。
# 2的10次方,或1024
print(2 ** 10)
# 8平方,或64
print(8 ** 2)
# 9 * 9 * 9,9的3次方,或729
print(9 ** 3)
# 我們甚至可以執行分數指數
# 4的0.5次方,或2
print(4 ** 0.5)
餘數運算 (%)
Python提供了除法運算符的輔助運算符,稱為模運算符。模運算符由%表示,給出除法計算的餘數。
# 輸出4,因為29 / 5是5餘4
print(29 % 5)
# 輸出2,因為32 / 3是10餘2
print(32 % 3)
# 被2取模返回偶數為0,奇數為1
# 輸出0
print(44 % 2)
變更數字:運算與更新
分配數值的變數可以與數字本身相同對待。兩個變數可以相加、除以2並乘以第三個變數,Python不會區分變數和字面量(如本例中的數字2)。
初始值
coffee_price = 1.50
number_of_coffees = 4
# 輸出 "6.0"
print(coffee_price * number_of_coffees)
# 輸出 "1.5"
print(coffee_price)
# 輸出 "4"
print(number_of_coffees)
更新後
# 更新價格
coffee_price = 2.00
# 輸出 "8.0"
print(coffee_price * number_of_coffees)
# 輸出 "2.0"
print(coffee_price)
# 輸出 "4"
print(number_of_coffees)
對變數執行算術運算不會改變變數本身 — 只能使用=符號更新變數。

字串連接:組合文本
+運算符不僅可以加兩個數字,還可以”加”兩個字串!將兩個字串組合的過程稱為字串連接。執行字串連接會創建一個全新的字串,由第一個字串的內容後跟第二個字串的內容組成(中間沒有添加空格)。
基本連接
greeting_text = "嗨!"
question_text = "你好嗎?"
full_text = greeting_text + question_text
# 輸出 "嗨!你好嗎?"
print(full_text)
添加空格
greeting_text = "嗨!"
question_text = "你好嗎?"
full_text = greeting_text + " " + question_text
# 輸出 "嗨! 你好嗎?"
print(full_text)
如果要將字串與數字連接,需要先使用str()函數將數字轉換為字串。
字串與數字連接
birthday_string = "我今年"
age = 10
birthday_string_2 = "歲了!"
# 將整數與字串連接,需要先將整數轉換為字串
full_birthday_string = birthday_string + str(age) + birthday_string_2
# 輸出 "我今年10歲了!"
print(full_birthday_string)
# 如果只是想輸出整數
# 我們可以將變數作為參數傳遞給print()
# 無論它是否為字串。
# 這也輸出 "我今年10歲了!"
print(birthday_string, age, birthday_string_2)
使用str()我們可以將非字串變數轉換為字串,然後連接它們。但對於print語句的參數,不需要將數字轉換為字串。
快速更新變數:+=運算符
Python為更新變數提供了一種簡便方法。當您有一個保存在變數中的數字,並且想要添加到該變數的當前值時,可以使用+=(加等於)運算符。
初始狀態
# 首先我們有一個保存數字的變數
number_of_miles_hiked = 12
更新變數
# 然後我們需要更新該變數
# 假設我們今天又徒步了兩英里
number_of_miles_hiked += 2
檢查結果
# 新值是舊值
# 加上加等號後面的數字
print(number_of_miles_hiked) # 輸出14
加等於運算符也可用於字串連接:caption = “美麗的風景!” caption += ” #無濾鏡” caption += ” #感恩”
多行字串:處理長文本
Python字串非常靈活,但如果我們嘗試創建占據多行的字串,我們會遇到語法錯誤。Python提供了解決方案:多行字串。通過使用三引號(”””或”’)而不是一個,我們告訴程式字串直到下一個三引號才結束。
leaves_of_grass = """
詩人來了!演說家、歌手、音樂家來了!
今天不是為了證明我和回答我是什麼,
而是你們,一個新的種族,本土的、強健的、大陸的,
比以前所知的更偉大,
覺醒吧!因為你們必須證明我。
"""
print(leaves_of_grass)
在上面的例子中,我們將一位著名詩人的話分配給一個變數。即使引用包含多個換行符,代碼也能工作!如果多行字串未分配給變數或在表達式中使用,它將被視為註解。
使用者輸入:互動式程式設計
到目前為止,我們已經介紹了如何在Python文件中直接為變數賦值。然而,我們通常希望程式的使用者能夠輸入新信息。
我們如何做到這一點?事實證明,為變數賦值的另一種方法是通過使用者輸入。
likes_snakes = input("你喜歡蛇嗎?")
# 程式會為使用者輸出 "你喜歡蛇嗎?"
# 使用者會輸入答案(例如,"是的!我有七條蟒蛇作為寵物!")並按Enter
# 變數likes_snakes會被賦予使用者答案的值
input()不僅可以用於收集使用者的各種不同信息,一旦你將該信息存儲為變數,你就可以使用它來模擬互動。
