前言
寫下第一支互動程式,通常長這樣:
age = input("請輸入你的年齡:")
print("明年你" + age + 1 + "歲")執行結果不是你想的溫馨小程式,而是一串紅字:
TypeError: can only concatenate str (not "int") to strinput() 明明讓你打了數字進去,為什麼 Python 說它是字串?這篇先把變數、資料型態,還有 print() / input() 的用法講清楚,下一篇再回頭解決這個 TypeError。
變數:不用宣告型態,但型態一直都在
Python 的變數不用像 C# 那樣先寫 int age = 25;,直接賦值就好:
name = "小明"
age = 25
height = 175.5
is_student = True雖然不用宣告,但每個變數在賦值的當下,Python 已經幫它決定了型態。想知道某個變數目前是什麼型態,用內建的 type():
print(type(name)) # <class 'str'>
print(type(age)) # <class 'int'>
print(type(height)) # <class 'float'>
print(type(is_student)) # <class 'bool'>四種基本資料型態
| 型態 | 說明 | 範例 |
|---|---|---|
int | 整數,正負皆可,Python 3 沒有位數上限 | age = 25 |
float | 帶小數點的數字(含科學記號寫法) | height = 175.5 |
str | 字串,用單引號或雙引號都可以 | name = "小明" |
bool | 布林值,只有 True / False 兩種 | is_student = True |
有個容易忽略的細節:bool 其實是 int 的子類別,True 在數字運算裡等於 1,False 等於 0:
print(True + True) # 2
print(False * 10) # 0print():不只是把東西印出來
最基本的用法是丟一個值進去:
print("Hello, Python!")但 print() 其實可以一次丟多個值,預設會自動用空白隔開:
name = "小明"
age = 25
print("姓名:", name, "年齡:", age)
# 姓名: 小明 年齡: 25如果不想要空白,或想換成別的分隔符號,用 sep 參數;不想在結尾自動換行,用 end 參數:
print("2026", "07", "08", sep="-") # 2026-07-08
print("Loading", end="...")
print("完成!")
# Loading...完成!input():拿到的永遠是字串
input() 會在畫面上顯示提示文字、暫停程式等使用者輸入,按下 Enter 後把使用者打的內容當成字串回傳——就算使用者打的是數字也一樣:
age = input("請輸入你的年齡:")
print(type(age)) # <class 'str'>,不是 int!這就是文章開頭那個 TypeError 的原因:age 是字串 "25",字串不能直接跟整數 1 相加。要拿 input() 的結果做數學運算,一定要先轉型態——下一篇就來講 int()、float() 這些轉換函式怎麼用,順便把開頭那支程式修好。