Python格式化:让数据输出更优雅

Python格式化:让数据输出更优雅

Python的格式化功能能让数据输出瞬间变得优雅又规范。不管是对齐文本、控制数字精度,还是动态填充内容,它都能轻松搞定。

一、基础格式化:从简单拼接开始

1. 百分号(%)格式化

在Python中,百分号格式化是一种传统的字符串格式化方式,通过占位符来指定输出的格式。常用的占位符有%s(字符串)、%d(整数)、%f(浮点数)。

name = "Alice"
age = 25
print("我的名字是%s,今年%d岁。" % (name, age))
#输出:我的名字是 Alice,今年 25 岁。

核心要点

  • 占位符的数量和类型要与后面元组中的变量一一对应。

  • 对于浮点数,可以使用%.nf指定小数位数,例如%.2f表示保留两位小数。

2. format () 方法

format()方法是一种更灵活强大的格式化方式,通过花括号{}作为占位符,可以按位置、关键字或索引来填充内容。

name = "Bob"
age = 30
print("我的名字是{},今年{}岁。".format(name, age))
# 按位置指定
print("{1}比{0}大5岁。".format(name, "Charlie"))
# 按关键字指定
print("我叫{name},今年{age}岁。".format(name="David", age=35))#输出:
我的名字是Bob,今年30岁。
Charlie比Bob大5岁。
我叫David,今年35岁。

3. f-string(格式化字符串字面值)

Python3.6引入的f-string 是最简洁直观的格式化方式,在字符串前加f,直接在花括号内嵌入表达式。

name = "Ella"
age = 28
print(f"我的名字是{name},今年{age}岁。")
# 可以在花括号内进行运算
print(f"明年我就{age + 1}岁了。")
#输出:
我的名字是Ella,今年28岁。
明年我就29岁了。

二、进阶格式化

1. 对齐与填充

在输出表格或固定格式文本时,常常需要对齐数据。通过:<(左对齐)、:>(右对齐)、:^(居中对齐)配合填充字符实现。

# 左对齐,用空格填充
print("{:<10}".format("苹果"))
print("{:10}".format("苹果"))
# 右对齐,用空格填充
print("{:>10}".format("香蕉"))
# 居中对齐,用空格填充
print("{:^10}".format("橙子"))
#输出:
苹果        
苹果        香蕉橙子    

用其他字符填充:

# 左对齐,用 * 填充
print("{:*<10}".format("苹果"))
# 右对齐,用 - 填充
print("{:->10}".format("橙子"))
# 居中对齐,用 # 填充
print("{:#^10}".format("香蕉"))#输出:
苹果********
--------橙子
####香蕉####

2. 数字格式化

对于数字,可以控制小数位数、千位分隔符、进制表示等。

num = 12345.6789
# 保留两位小数
print("{:.2f}".format(num))
# 添加千位分隔符
print("{:,}".format(num))
# 二进制表示
print("{:b}".format(10))
# 八进制表示
print("{:o}".format(10))
# 十六进制表示 小写字母
print("{:x}".format(10))
# 十六进制表示 大写字母
print("{:X}".format(10))#输出:
12345.68
12,345.6789
1010
12
a
A

3. 日期与时间格式化

结合datetime模块,格式化日期和时间字符串。

from datetime import datetime
now = datetime.now()
# 常见日期格式
print(now.strftime("%Y-%m-%d %H:%M:%S"))
# 自定义格式
print(now.strftime("今天是%Y年%m月%d日,星期%a"))#输出:
2025-04-2222:49:14
今天是2025年04月22日,星期Tue

三、实用案例展示

案例 1:制作数据统计表

在数据分析中,格式化可以让结果展示更清晰。

data = {
"产品A": 1234.56,
"产品B": 7890.12,
"产品C": 567.89
}
print("| 产品 | 销售额 |")
print("|------|--------|")
for product, amount in data.items():print(f"| {product} | {amount:,.2f} |")#输出:
| 产品 | 销售额 |
|------|--------|
| 产品A |1,234.56|
| 产品B | 7,890.12 |
| 产品C |567.89|

案例 2:生成个性化邀请函

利用 f-string 快速生成批量邀请函。

guests = ["Frank", "Grace", "Hank"]
for guest in guests:print(f"{guest}先生/女士:\n 诚邀您参加我们的晚会!")#输出:
Frank先生/女士:
诚邀您参加我们的晚会!
Grace先生/女士:
诚邀您参加我们的晚会!
Hank先生/女士:
诚邀您参加我们的晚会!

案例 3:文件命名中的动态格式化

在批量处理文件时,根据时间或序号格式化文件名。

import datetime
now = datetime.datetime.now()
file_name = f"report_{now.strftime('%Y%m%d%H%M%S')}.txt"
print(file_name)
#输出:report_20241231143000.txt

四、闭坑指南

占位符与变量不匹配

  • 错误操作

    :百分号格式化中占位符数量、类型与变量不一致。

# 错误:少一个变量
print("姓名:%s,年龄:%d" % ("Leo"))
  • 解决方法

    :仔细检查占位符和变量的对应关系,使用format()或 f-string 可减少此类错误。

花括号转义问题

  • 错误操作

    :在 f-string中想输出花括号却被解析为占位符。

# 错误:会报错
print(f"这是一个{括号}")
  • 解决方法

    :使用双花括号{{}}进行转义。

print(f"这是一个{{括号}}") # 输出:这是一个{括号}

格式化语法混淆

  • 错误操作

    :混用不同格式化方式的语法。

# 错误:format()方法不能用百分号占位符
print("{}.format("错误示范") % "示例")
  • 解决方法

    :明确每种方式的规则,推荐优先使用 f-string,简洁且不易出错。

五、总结回顾

从基础的字符串拼接,到复杂的数字、日期处理,再到个性化场景应用,掌握这些格式化技巧能让你的程序输出更专业、更美观。下次遇到数据展示问题,不妨试试!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/diannao/86585.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025年渗透测试面试题总结-小鹏[实习]安全工程师(题目+回答)

安全领域各种资源&#xff0c;学习文档&#xff0c;以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具&#xff0c;欢迎关注。 目录 小鹏[实习]安全工程师 1. 自我介绍 2. 有没有挖过src&#xff1f; 3. 平时web渗透怎么学的&#xff0c;有…

VSCode科技风主题设计详细指南

1. 科技风设计的核心特点 科技风设计是一种强调未来感、现代感和高科技感的设计风格,在VSCode主题设计中,可以通过以下几个核心特点来体现: 1.1 色彩特点 冷色调为主:蓝色、紫色、青色等冷色调是科技风设计的主要色彩高对比度:深色背景配合明亮的霓虹色,形成强烈的视觉…

android知识总结

Activity启动模式 standard (标准模式) 每次启动该 Activity&#xff08;例如&#xff0c;通过 startActivity()&#xff09;&#xff0c;系统总会创建一个新的实例&#xff0c;并将其放入调用者&#xff08;启动它的那个 Activity&#xff09;所在的任务栈中。 singleTop (栈…

第3章 MySQL数据类型

MySQL数据类型 1、数字数据类型1.1 整数类型1.2 定点类型1.3 浮点类型1.4位值类型1.5 超出范围和溢出处理1.5.1 超出范围处理1.5.2 溢出处理 2、日期和时间数据类型3、字符串数据类型3.1 char和varchar类型3.2 binary和varbinary类型3.3 blob 和 text类型3.4 enum类型3.4.1 创建…

label-studio的使用教程(导入本地路径)

文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…

mysql为什么一个表中不能同时存在两个字段自增

背景。设置sort自增。会引发错误 通常自增字段都是用于表示数据的唯一性。数据库限制。需要自定义排序字段大小。

牛客round95D

原题链接&#xff1a;D-小红的区间修改&#xff08;一&#xff09;_牛客周赛 Round 95 题目背景&#xff1a; 初始拥有一个长度10^100元素全为0的数组&#xff0c;进行q查询&#xff0c;每次查询如果区间内的元素都为0就将区间变为首项为 1、公差为 1 的等差数列&#xff1b;否…

visual studio 2022更改主题为深色

visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中&#xff0c;选择 环境 -> 常规 &#xff0c;将其中的颜色主题改成深色 点击确定&#xff0c;更改完成

实践篇:利用ragas在自己RAG上实现LLM评估②

文章目录 使用ragas做评估在自己的数据集上评估完整代码代码讲解1. RAG系统构建核心组件初始化文档处理流程 2. 评估数据集构建3. RAGAS评估实现1. 评估数据集创建2. 评估器配置3. 执行评估 本系列阅读&#xff1a; 理论篇&#xff1a;RAG评估指标&#xff0c;检索指标与生成指…

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据 Power Query 具有大量专门帮助您清理和准备数据以供分析的功能。 您将了解如何简化复杂模型、更改数据类型、重命名对象和透视数据。 您还将了解如何分析列&#xff0c;以便知晓哪些列包含有价值的数据&#xff0c;…

PostgreSQL 安装与配置全指南(适用于 Windows、macOS 与主流 Linux 发行版)

PostgreSQL 是一个功能强大、开源、稳定的对象关系数据库系统&#xff0c;广泛用于后端开发、数据处理与分布式架构中。本指南将手把手教你如何在 Windows、macOS 以及主流 Linux 发行版 上安装 PostgreSQL&#xff0c;并附上安装验证命令与基础配置方法。 一、Windows 安装与配…

WordPress博客文章SEO的优化技巧

在数字时代&#xff0c;博客不仅用于表达观点&#xff0c;也能提升品牌影响力并吸引潜在客户。许多服务器提供商&#xff08;如 Hostease&#xff09;支持 WordPress 一键安装功能&#xff0c;方便新手快速完成安装&#xff0c;专注于内容创作和 SEO 优化。然而&#xff0c;写出…

Python:操作 Excel 折叠

💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…

雨季智慧交通:从车辆盲区到客流统计的算法全覆盖

雨季智慧交通中的视觉分析技术应用 一、背景&#xff1a;雨季交通的复杂挑战 雨季是城市交通管理的关键考验期。以济南为例&#xff0c;强对流天气伴随的短时强降水、雷雨大风及冰雹&#xff0c;不仅导致道路积水、能见度骤降&#xff0c;还加剧了大型车辆&#xff08;如渣土…

安全生产管理是什么?安全生产管理系统都有哪些核心功能?

随着法律法规的日益严格和公众对安全意识的提升&#xff0c;企业面临的安全生产压力也越来越大。无论是大型企业还是中小型企业&#xff0c;安全生产管理不仅关系到企业的生存与发展&#xff0c;更直接关系到员工的生命安全和企业的社会形象。因此&#xff0c;理解并实施有效的…

【PyCharm必会基础】正确移除解释器及虚拟环境(以 Poetry 为例 )

#工作记录 【PyCharm使用基础】 当遇到虚拟环境难以修复的场景&#xff0c;我们需要删除当前解释器和虚拟环境然后再重新创建虚拟环境&#xff0c;以下是在PyCharm中正确移除的步骤。 一、进入解释器设置 在 PyCharm 界面右下角&#xff0c;点击Poetry (suna0)&#xff0c;选…

day028-Shell自动化编程-判断进阶

文章目录 1. 特殊变量补充2. 变量扩展-变量子串2.1 获取变量字符的长度2.2 给变量设置默认值 3. 命令3.1 dirname3.2 basename3.3 cut 4. 条件测试命令&#xff1a;[]4.1 逻辑运算符4.2 文件测试4.3 案例&#xff1a;书写脚本-检查文件类型4.4 逻辑运算4.5 案例&#xff1a;书写…

oracle sql 语句 优化方法

1、表尽量使用别名&#xff0c;字段尽量使用别名.字段名&#xff0c;这样子&#xff0c;可以减少oracle数据库解析字段名。而且把 不需要的字段名剔除掉&#xff0c;只保留有用的字段名&#xff0c;不要一直使用 select *。 2、关联查询时&#xff0c;选择好主表 。oracle解析…

【Java】Ajax 技术详解

文章目录 1. Filter 过滤器1.1 Filter 概述1.2 Filter 快速入门开发步骤:1.3 Filter 执行流程1.4 Filter 拦截路径配置1.5 过滤器链2. Listener 监听器2.1 Listener 概述2.2 ServletContextListener3. Ajax 技术3.1 Ajax 概述3.2 Ajax 快速入门服务端实现:客户端实现:4. Axi…

07 APP 自动化- appium+pytest+allure框架封装

文章目录 一、PO二、代码简单实现项目框架预览&#xff1a;base_page.pydir_config.pyget_data.pylogger.pystart_session.pyconfig.yamlkey_code.yamllaunch_page_loc.pylogin_page_loc.pylaunch_page.pylogin_page.pytest_login.pypytest.inirun.py APP 自动化代码总和 一、P…