Basic Syntax & Data Types
print()print("Hello, World!")
可以 print 任何東西:
print("Hello!") # 字串
print(42) # 數字
print(3.14) # 小數
print("1 + 1 =", 1 + 1) # 同時印多個,中間空格分隔
score = 100
Python 用 = 指定值,不需要事先宣告:
name = "Ian" # 字串
age = 18 # 整數
height = 175.5 # 小數
is_student = True # 布林值
print(name, "今年", age, "歲")
| 型別 | 英文 | 範例 | 說明 |
|---|---|---|---|
int | Integer | 42, -10 | 整數 |
float | Float | 3.14, -0.5 | 小數(浮點數) |
str | String | "Hello", 'Hi' | 字串(文字) |
bool | Boolean | True, False | 布林(真/假) |
x = 42
print(type(x)) # <class 'int'>
y = "Hello"
print(type(y)) # <class 'str'>
用 type(變數) 可以查看變數的型別。
name = "Python"
print(len(name)) # 6 — 字串長度
print(name.upper()) # PYTHON — 全大寫
print(name.lower()) # python — 全小寫
print(name[0]) # P — 第一個字元(索引從 0 開始)
print(name[0:3]) # Pyt — 切片
傳統寫法需要用 + 串接,還要手動轉型:
name = "Alice"
age = 25
# 傳統寫法(較冗長)
print("名字是 " + name + ",年齡是 " + str(age))
# f-string 寫法(推薦)
print(f"名字是 {name},年齡是 {age}")
在字串前加 f,然後用 {} 包住要嵌入的變數,不需要手動 str() 轉型。
↓ 往下看更多 f-string 用法
{} 裡面不只能放變數,還能放任何運算式:
x = 10
y = 5
print(f"x + y 的結果是:{x + y}")
print(f"Alice 的名字長度是:{len('Alice')}")
print(f"比較結果:{x > y}")
算術、函式呼叫、比較運算、甚至方法呼叫都可以寫在 {} 裡面。
用 : 加上格式碼來控制數字顯示方式:
| 需求 | 寫法 | 範例(v = 3.14159) | 結果 |
|---|---|---|---|
| 小數點位數 | :.nf | f"{v:.2f}" | 3.14 |
| 百分比 | :.n% | f"{0.85:.1%}" | 85.0% |
| 千分位逗號 | :, | f"{1000000:,}" | 1,000,000 |
| 補零 | :0nd | f"{5:03d}" | 005 |
price = 49.9
rate = 0.852
print(f"價格:{price:.2f}") # 價格:49.90
print(f"匯率:{rate:.1%}") # 匯率:85.2%
可以用來排版文字,特別是製作表格或對齊輸出時:
| 符號 | 說明 | 範例 | 結果 |
|---|---|---|---|
< | 靠左對齊 | f"|{'Hi':<10}|" | |Hi | |
> | 靠右對齊 | f"|{'Hi':>10}|" | | Hi| |
^ | 置中對齊 | f"|{'Hi':^10}|" | | Hi | |
還可以指定填充字元:
text = "Hi"
# 總寬度 10,靠右對齊,空白處補 *
print(f"|{text:*>10}|") # |********Hi|
# 總寬度 10,置中對齊,空白處補 -
print(f"|{text:-^10}|") # |----Hi----|
從 Python 3.8 開始,f-string 支援 {var=} 寫法,
同時印出「變數名稱」與「變數值」,非常適合 Debug:
score = 95
name = "Tom"
print(f"{score=}") # score=95
print(f"{name=}") # name='Tom'
# 也能搭配運算式
x = 10
y = 3
print(f"{x + y=}") # x + y=13
在 {} 裡的變數後面加上 =,Python 會自動幫你印出變數名稱,省去手動寫 print("score =", score) 的麻煩。
% 運算子)Python 支援類似 C 語言 printf 的格式化寫法:
name = "Ian"
age = 18
score = 95.5
print("我叫 %s,今年 %d 歲" % (name, age))
# 我叫 Ian,今年 18 歲
print("成績:%f 分" % score) # 成績:95.500000 分
print("成績:%.1f 分" % score) # 成績:95.5 分
| 佔位符 | 說明 | 範例 | 結果 |
|---|---|---|---|
%s | 字串 | "Hi %s" % "Ian" | Hi Ian |
%d | 整數 | "年齡 %d" % 18 | 年齡 18 |
%f | 浮點數 | "%.2f" % 3.14159 | 3.14 |
%05d | 補零(5位) | "%05d" % 42 | 00042 |
% 是最舊的寫法,.format() 較新,f-string 最推薦。
但讀別人的程式時常會看到 % 寫法,所以要認得!
.format() 方法用 {} 當佔位符,搭配 .format() 填入值:
name = "Ian"
age = 18
print("我叫 {},今年 {} 歲".format(name, age))
# 我叫 Ian,今年 18 歲
# 可以指定順序
print("{1} 今年 {0} 歲".format(age, name))
# Ian 今年 18 歲
# 可以指定名稱
print("{n} 的成績是 {s} 分".format(n="Amy", s=100))
# Amy 的成績是 100 分
↓ 往下滑看三種格式化總整理
name = "Ian"
age = 18
# ① % 格式化(最舊)
print("我叫 %s,%d 歲" % (name, age))
# ② .format()(較新)
print("我叫 {},{} 歲".format(name, age))
# ③ f-string(最推薦 ✦ Python 3.6+)
print(f"我叫 {name},{age} 歲")
自己寫新程式時用 f-string 就對了!
但讀別人的程式時三種都會遇到,所以都要認得。
print() 的 sep 與 end 參數# sep:改變多個值之間的分隔符(預設是空格)
print("A", "B", "C") # A B C
print("A", "B", "C", sep="-") # A-B-C
print("A", "B", "C", sep="") # ABC
# end:改變結尾字元(預設是換行 \n)
print("Hello", end=" ")
print("World") # Hello World(印在同一行)
# 實用範例:印出倒數計時
for i in range(5, 0, -1):
print(i, end="...")
print("發射!")
# 5...4...3...2...1...發射!
sep 和 end 是 print 的關鍵字參數,後面學函式時會更詳細說明。
name = "Ian"
my_score = 100
score2 = 95
_temp = 0
studentName = "Amy"
2score = 100 # 不能數字開頭
my-name = "Ian" # 不能用減號
class = "A" # 不能用保留字
Python 習慣用底線分隔單字:my_score、first_name、is_logged_in
Python 保留字(不能當變數名):if、else、for、while、def、class、True、False、None…
不同型別之間可以互相轉換:
x = "42"
print(type(x)) # <class 'str'>
y = int(x) # 字串轉整數
print(type(y)) # <class 'int'>
print(y + 1) # 43
z = float("3.14") # 字串轉小數
print(z) # 3.14
s = str(100) # 數字轉字串
print("分數:" + s) # 分數:100
"42" + 1 會出錯!字串和數字不能直接相加,需要先轉型。
input()name = input("你叫什麼名字?")
name = input("請輸入你的名字:")
print(f"你好,{name}!")
age = int(input("請輸入年齡:")) # input 回傳字串,需轉型
print(f"你今年 {age} 歲")
input() 的回傳值永遠是字串,如果要做數學運算,記得用 int() 或 float() 轉型。
建立 intro.py,完成以下程式:
# 請使用者輸入姓名和年齡
name = input("請輸入你的名字:")
age = int(input("請輸入你的年齡:"))
# 計算出生年份(假設今年是 2026)
birth_year = 2026 - age
# 用 f-string 輸出完整介紹
print(f"你好!我叫 {name}")
print(f"我今年 {age} 歲,出生於 {birth_year} 年")
學會了 print、格式化輸出、變數、資料型別與 input。