回文章列表
Python4 分鐘閱讀2026年4月26日

Python 變數與資料型態入門:從 print() 到 input()

#Python#變數#資料型態#新手

文章目錄

前言

寫下第一支互動程式,通常長這樣:

age = input("請輸入你的年齡:")
print("明年你" + age + 1 + "歲")

執行結果不是你想的溫馨小程式,而是一串紅字:

TypeError: can only concatenate str (not "int") to str

input() 明明讓你打了數字進去,為什麼 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)    # 0

print():不只是把東西印出來

最基本的用法是丟一個值進去:

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...完成!

實務上最好用的是 f-string(Python 3.6+ 都支援),把變數直接寫進字串裡,可讀性最高:

name = "小明"
age = 25
print(f"{name} 今年 {age} 歲")
# 小明 今年 25 歲

height = 175.567
print(f"身高 {height:.1f} 公分")   # 小數點後取 1 位
# 身高 175.6 公分

input():拿到的永遠是字串

input() 會在畫面上顯示提示文字、暫停程式等使用者輸入,按下 Enter 後把使用者打的內容當成字串回傳——就算使用者打的是數字也一樣:

age = input("請輸入你的年齡:")
print(type(age))   # <class 'str'>,不是 int!

這就是文章開頭那個 TypeError 的原因:age 是字串 "25",字串不能直接跟整數 1 相加。要拿 input() 的結果做數學運算,一定要先轉型態——下一篇就來講 int()、float() 這些轉換函式怎麼用,順便把開頭那支程式修好。

相關課程

Python 基礎入門

從零開始學習 Python 程式語言,掌握變數、流程控制、函式與模組化設計,建立扎實的程式設計基礎。

查看課程內容