# Python 的格式化輸出和格式化輸入## 格式化輸出Python 提供了多種字符串格式化的方法:### 1. % 格式化(舊式格式化)```python
name = "Alice"
age = 25
print("Name: %s, Age: %d" % (name, age))
# 輸出: Name: Alice, Age: 25
常用格式說明符:
%s
- 字符串%d
- 十進制整數%f
- 浮點數%x
- 十六進制整數
2. str.format() 方法(Python 2.6+)
print("Name: {}, Age: {}".format(name, age))
print("Name: {0}, Age: {1}".format(name, age)) # 使用位置索引
print("Name: {n}, Age: {a}".format(n=name, a=age)) # 使用關鍵字參數
格式控制:
pi = 3.1415926
print("Pi: {:.2f}".format(pi)) # 保留兩位小數
# 輸出: Pi: 3.14
3. f-strings(Python 3.6+)
print(f"Name: {name}, Age: {age}")
print(f"Next year you'll be {age + 1} years old")
格式控制:
pi = 3.1415926
print(f"Pi: {pi:.2f}") # 保留兩位小數
格式化輸入
Python 的格式化輸入通常指從字符串中解析數據:
1. 字符串分割
data = "Alice,25,New York"
name, age, city = data.split(',')
age = int(age) # 需要類型轉換
2. 正則表達式
import redata = "Name: Alice, Age: 25, City: New York"
match = re.search(r"Name: (\w+), Age: (\d+), City: (.+)", data)
if match:name, age, city = match.groups()age = int(age)
3. 使用 eval()(?? 不推薦,有安全風險)
data = "{'name': 'Alice', 'age': 25, 'city': 'New York'}"
info = eval(data) # 將字符串轉換為字典
4. 使用 json 模塊(? 推薦)
import jsondata = '{"name": "Alice", "age": 25, "city": "New York"}'
info = json.loads(data) # 將JSON字符串轉換為字典
5. 從標準輸入讀取并格式化
# 讀取一行輸入并分割
user_input = input("Enter name,age,city: ").split(',')
name, age, city = user_input
age = int(age)# 使用格式字符串提示
print(f"Hello {name}, you are {age} years old from {city}")
最佳實踐建議
- 輸出:Python 3.6+ 環境下優先使用
f-strings
- 輸入:結構化數據優先使用
json
模塊 - 安全性:避免使用
eval()
處理用戶輸入 - 類型轉換:注意字符串到數字的類型轉換