在 Python 中,`print` 函数可以使用多种格式化方法来输出字符串。以下是几种常见的格式化方法及其用法:
### 1. 使用 `%` 操作符
这种方法是 Python 中较早的格式化字符串的方法,使用 `%` 操作符。
```python
name = "Alice"
age = 30
print("My name is %s and I am %d years old." % (name, age))
```
### 2. 使用 `str.format()`
`str.format()` 方法提供了更强大的格式化功能。
```python
name = "Alice"
age = 30
print("My name is {} and I am {} years old.".format(name, age))
```
你还可以使用位置参数和关键字参数:
```python
print("My name is {0} and I am {1} years old.".format(name, age))
print("My name is {name} and I am {age} years old.".format(name=name, age=age))
```
### 3. 使用 f-字符串(Python 3.6+)
f-字符串是 Python 3.6 引入的一种格式化字符串的方法,语法简洁且易于阅读。
```python
name = "Alice"
age = 30
print(f"My name is {name} and I am {age} years old.")
```
### 4. 使用格式化选项
无论是使用 `str.format()` 还是 f-字符串,你都可以指定格式选项,例如数字的格式、对齐方式、填充字符等。
#### 4.1 数字格式化
```python
pi = 3.14159
print("Pi is approximately {:.2f}".format(pi)) # 保留两位小数
print(f"Pi is approximately {pi:.2f}") # 使用 f-字符串
```
#### 4.2 对齐和填充
```python
# 使用 str.format()
print("{:<10} | {:>10}".format("left", "right")) # 左对齐和右对齐
print("{:0<10}".format(5)) # 用 0 填充到 10 位
# 使用 f-字符串
print(f"{'left':<10} | {'right':>10}")
print(f"{5:0<10}")
```
### 5. 使用 `print` 的 `sep` 和 `end` 参数
`print` 函数还有两个重要的参数:`sep` 和 `end`。
- `sep`:指定多个参数之间的分隔符。
- `end`:指定输出结束后的字符,默认是换行符 `\n`。
```python
print("Hello", "World", sep=", ") # 输出: Hello, World
print("Hello", end=" ") # 输出: Hello (不换行)
print("World") # 输出: World (在同一行)
```
### 6. 综合示例
以下是一个综合示例,展示了多种格式化方法的结合使用:
```python
name = "Alice"
age = 30
height = 1.75
# 使用 f-字符串
print(f"Name: {name}, Age: {age}, Height: {height:.2f}m")
# 使用 str.format()
print("Name: {}, Age: {}, Height: {:.2f}m".format(name, age, height))
# 使用 % 操作符
print("Name: %s, Age: %d, Height: %.2fm" % (name, age, height))
```
### 总结
- Python 提供了多种格式化字符串的方法,包括 `%` 操作符、`str.format()` 方法和 f-字符串。
- 你可以使用格式选项来控制输出的格式,例如对齐、填充和数字格式。
- `print` 函数的 `sep` 和 `end` 参数可以帮助你定制输出的格式。