Python的格式化输入输出

发布于:2025-06-16 ⋅ 阅读:(14) ⋅ 点赞:(0)
# 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 re

data = "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 json

data = '{"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}")

最佳实践建议

  1. 输出:Python 3.6+ 环境下优先使用 f-strings
  2. 输入:结构化数据优先使用 json 模块
  3. 安全性:避免使用 eval() 处理用户输入
  4. 类型转换:注意字符串到数字的类型转换


网站公告

今日签到

点亮在社区的每一天
去签到