在Python中,格式化輸出是一種常見的操作,用于將數據以特定的格式展示。以下是Python中格式化輸出的主要方法:
?
### 1. 使用 `%` 操作符
這是Python早期版本中常用的格式化方法,類似于C語言中的`printf`。
?
- **基本語法**:`"格式化字符串" % 值`
- **多個值**:`"格式化字符串" % (值1, 值2, ...)`
?
**常用格式化符號**:
- `%s`:字符串
- `%d`:整數
- `%f`:浮點數
- `%x`:十六進制整數
- `%o`:八進制整數
?
**示例**:
```python
name = "Alice"
age = 25
print("Name: %s, Age: %d" % (name, age))
```
?
### 2. 使用 `str.format()` 方法
`str.format()` 是Python 2.6引入的格式化方法,功能更強大且靈活。
?
- **基本語法**:`"格式化字符串".format(值1, 值2, ...)`
- **位置參數**:`"{} {}".format(value1, value2)`
- **關鍵字參數**:`"{name} {age}".format(name="Alice", age=25)`
- **索引**:`"{0} {1}".format(value1, value2)`
- **格式化符號**:`"{:.2f}".format(3.14159)`(保留兩位小數)
?
**示例**:
```python
name = "Alice"
age = 25
print("Name: {}, Age: {}".format(name, age))
print("Name: {name}, Age: {age}".format(name=name, age=age))
print("Pi: {:.2f}".format(3.14159))
```
?
### 3. 使用 f-string(格式化字符串字面值)
f-string 是Python 3.6引入的格式化方法,簡潔且高效。
?
- **基本語法**:`f"格式化字符串"`
- **表達式**:`f"{表達式}"`
- **格式化符號**:`f"{value:.2f}"`(保留兩位小數)
?
**示例**:
```python
name = "Alice"
age = 25
print(f"Name: {name}, Age: {age}")
print(f"Pi: {3.14159:.2f}")
```
?
### 4. 使用 `string.Template`
`string.Template` 是Python標準庫中的模板字符串類,適合簡單的字符串替換。
?
- **基本語法**:`Template("$變量名").substitute(變量名=值)`
- **安全替換**:`Template("$變量名").safe_substitute(變量名=值)`(避免未定義變量報錯)
?
**示例**:
```python
from string import Template
template = Template("Name: $name, Age: $age")
print(template.substitute(name="Alice", age=25))
```
?
### 5. 格式化輸出的常見操作
- **對齊**:
? - `{:>10}`:右對齊,寬度10
? - `{:<10}`:左對齊,寬度10
? - `{:^10}`:居中對齊,寬度10
?
- **填充字符**:
? - `{:*>10}`:右對齊,寬度10,用`*`填充
?
- **數字格式化**:
? - `{:.2f}`:保留兩位小數
? - `{:,}`:千位分隔符
? - `{:b}`:二進制格式
? - `{:x}`:十六進制格式
?
**示例**:
```python
print(f"{'Alice':>10}") # 右對齊,寬度10
print(f"{3.14159:.2f}") # 保留兩位小數
print(f"{1000000:,}") # 千位分隔符
```
?
### 總結
- **`%` 操作符**:適用于簡單格式化,但功能有限。
- **`str.format()`**:功能強大,支持位置和關鍵字參數。
- **f-string**:簡潔高效,推薦使用。
- **`string.Template`**:適合簡單的模板替換。
?
根據需求選擇合適的格式化方法。