当前位置: 首页 > java >正文

Python的格式化输入输出

# 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}")

最佳实践建议

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

http://www.xdnf.cn/news/14063.html

相关文章:

  • 深入理解 @JsonGetter:精准掌控前端返回数据格式!
  • cpp 绑定方案大比拼
  • SpringBoot实现权限管理系统完整指南(附源码)
  • 【Code】COP FOR THE STRUCTURAL USE OF STEEL 2011 (2023 Edition)
  • SDPA(Scaled Dot-Product Attention)详解
  • CE 标志新门槛:智能门锁 EN 18031 认证合规路径与成本分析
  • 分布式锁模板工具类
  • 2025企业级BI产品评测和推荐
  • 在 WinForms 中制作无边框窗体通过鼠标拖动移动和调整大小,难点是我窗体上被标题栏和状态栏dock之后很难选中
  • 短视频矩阵系统开发实战:PHP实现SaaS独立部署
  • deepimagej-plugin开源程序是用于运行深度学习模型的 ImageJ 插件
  • 【解决方案】Kali 2022.3修复仓库密钥一键安装docker,docker compose
  • 开发环境与生产环境的 yml 文件与配置
  • 1分钟理解FreeRtos中的信号量知识
  • LeetCode - 387. 字符串中的第一个唯一字符
  • 一个简单的torch-cuda demo
  • Acrobat 首选项配置:从注册表到锁定机制
  • 【MPC】模型预测控制笔记 (2):约束MPC
  • C语言预处理命令详解
  • 第9章 表达式和运算符 笔记 待完善
  • 如何运营一个专业的体育比分网站
  • 2025年06月13日Github流行趋势
  • 【Photoshop】使用路径和形状制作印章
  • 基于51单片机的电机控制角度proteus仿真
  • 【IEEE/EI/Scopus检索】2025年第五届机器学习与大数据管理国际会议 (MLBDM 2025)
  • Streamlit 笔记
  • Google Drive·实现共享文件本地访问与编辑
  • sdk添加包,更新文件系统--万象奥科RK3506
  • 基于数字孪生的风光储一体化园区智能化管理解决方案
  • C++进阶—C++中的继承