通过f-string编写简洁高效的Python格式化输出代码

本文涉及的产品
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
实时数仓Hologres,5000CU*H 100GB 3个月
实时计算 Flink 版,1000CU*H 3个月
简介: Python 3.6中引入的f-string是Python中最常用的特征之一,它可以让我们编写更干净、更高效和更易于维护的代码,我们今天就由浅入深来详细介绍使用它的一些技巧。

Python 3.6中引入的f-string是Python中最常用的特征之一,它可以让我们编写更干净、更高效和更易于维护的代码,我们今天就由浅入深来详细介绍使用它的一些技巧。

对齐文本

在格式化输出时,对齐对可读性至关重要。无论是生成报告、记录数据还是创建用户界面,对齐的文本看起来都更干净,更易于阅读。

 variable = "some text"
 print(f"|{variable:>30}|")
 print(f"|{variable:<30}|")
 print(f"|{variable:^30}|")

也可以用选择的其他的字符填充空格,例如:

 variable = "some text"
 print(f"|{variable:*^30}|")

这些选项提供了一种通用的方式来格式化文本输出,使其更具可读性和视觉吸引力。

日期和时间格式

处理日期和时间是编程中的一项常见任务。Python的datetime模块为此提供了一组丰富的工具,f-strings可以更容易按照自己的喜好格式化日期和时间。

 from datetime import datetime
 now = datetime.now()
 print(f"Date: {now:%d-%m-%Y}")
 print(f"Time: {now:%H:%M:%S}")
 print(f"Locale's Date and Time: {now:%c}")
 print(f"Time in AM/PM format: {now:%I:%M %p}")

自定义日期和时间信息的输出,可以轻松地以人类可读的格式显示时间戳。

带分隔符的数字

在代码中处理数字可能会很麻烦,尤其是在可读性很重要的时候。f-string中直接使用几千分隔符来格式化大的数字:

 n = 1000000000
 print(f"{n:_}")  # Outputs: 1_000_000_000
 print(f"{n:,}")  # Outputs: 1,000,000,000

在f-string中使用下划线(_)或逗号(,)作为分隔符可以使数字更具可读性。这种做法在处理财务数据、大型数据集或任何清晰度至关重要的应用程序时特别有用。

控制十进制精度

在处理浮点数时,小数位数的表示通常是至关重要的。f字符串提供了一种简单的方法来实现这种精度。

 num = 13.234
 print(f"{num:.2f}")  # Result: 13.23

将数字四舍五入以仅显示小数点后两位。也可以完全删除小数点后十位:

 print(f"{num:.0f}")  # Result: 13

去掉小数点后的数位,就得到一个整数。还可以使用%符号打印百分比。

 value = 0.75321
 print(f"{value:.2%}")  # Output: 75.32%

页可以将它与千位分隔符配对:

 num = 13.234
 print(f"{num:,.2%}")  # Result: 1,323.40%

这种特性的组合在科学研究、金融和任何需要精确控制数字格式的情况下特别有用。

快速调试内联表达式

f-strings可以使调试过程更容易。不需要编写多行来显示变量值,可以直接在f-string中包含表达式进行快速检查,并且可以利用花括号内的等号(=)来同时显示表达式及其结果。

 from dataclasses import dataclass
 @dataclass
 class Person:
     name: str
     age: int

 person1 = Person(name="Alice", age=30)
 person2 = Person(name="Bob", age=25)

 print(f"{person1.name = }, age {person1.age = }, {person2.name = }, age {person2.age = }")

f - string中的条件表达式

也可以直接在f - string中使用条件表达式。这可以方便地创建更动态的输出,而不必编写单独的条件语句。

 score = 85
 print(f"Your score is {score}, which is {'passing' if score >= 50 else 'failing'}.")

这一行代码检查score的值,并在字符串中包含适当的文本。这是在字符串格式中添加条件逻辑的一种简明方法。

总结

f - string是一个非常强大的字符串格式化技术,可以优雅地表达Python字符串。它可以通过一个迷你语法满足我们基本上的所有要求,甚至运行字符串的表达式。这对于我们日常的开发是非常有帮助的。

官方文档:

https://avoid.overfit.cn/post/2fca191e2c0c45c0bdddefd17cd45e37

作者:Tarek

目录
相关文章
|
2月前
|
存储 算法 调度
【复现】【遗传算法】考虑储能和可再生能源消纳责任制的售电公司购售电策略(Python代码实现)
【复现】【遗传算法】考虑储能和可再生能源消纳责任制的售电公司购售电策略(Python代码实现)
176 26
|
1月前
|
测试技术 Python
Python装饰器:为你的代码施展“魔法”
Python装饰器:为你的代码施展“魔法”
232 100
|
1月前
|
开发者 Python
Python列表推导式:一行代码的艺术与力量
Python列表推导式:一行代码的艺术与力量
337 95
|
2月前
|
Python
Python的简洁之道:5个让代码更优雅的技巧
Python的简洁之道:5个让代码更优雅的技巧
229 104
|
2月前
|
开发者 Python
Python神技:用列表推导式让你的代码更优雅
Python神技:用列表推导式让你的代码更优雅
423 99
|
1月前
|
缓存 Python
Python装饰器:为你的代码施展“魔法
Python装饰器:为你的代码施展“魔法
149 88
|
1月前
|
存储 Java 索引
(Python基础)新时代语言!一起学习Python吧!(二):字符编码由来;Python字符串、字符串格式化;list集合和tuple元组区别
字符编码 我们要清楚,计算机最开始的表达都是由二进制而来 我们要想通过二进制来表示我们熟知的字符看看以下的变化 例如: 1 的二进制编码为 0000 0001 我们通过A这个字符,让其在计算机内部存储(现如今,A 字符在地址通常表示为65) 现在拿A举例: 在计算机内部 A字符,它本身表示为 65这个数,在计算机底层会转为二进制码 也意味着A字符在底层表示为 1000001 通过这样的字符表示进行转换,逐步发展为拥有127个字符的编码存储到计算机中,这个编码表也被称为ASCII编码。 但随时代变迁,ASCII编码逐渐暴露短板,全球有上百种语言,光是ASCII编码并不能够满足需求
134 4
|
1月前
|
监控 机器人 编译器
如何将python代码打包成exe文件---PyInstaller打包之神
PyInstaller可将Python程序打包为独立可执行文件,无需用户安装Python环境。它自动分析代码依赖,整合解释器、库及资源,支持一键生成exe,方便分发。使用pip安装后,通过简单命令即可完成打包,适合各类项目部署。
|
2月前
|
设计模式 人工智能 API
AI智能体开发实战:17种核心架构模式详解与Python代码实现
本文系统解析17种智能体架构设计模式,涵盖多智能体协作、思维树、反思优化与工具调用等核心范式,结合LangChain与LangGraph实现代码工作流,并通过真实案例验证效果,助力构建高效AI系统。
407 7
|
2月前
|
存储 大数据 Unix
Python生成器 vs 迭代器:从内存到代码的深度解析
在Python中,处理大数据或无限序列时,迭代器与生成器可避免内存溢出。迭代器通过`__iter__`和`__next__`手动实现,控制灵活;生成器用`yield`自动实现,代码简洁、内存高效。生成器适合大文件读取、惰性计算等场景,是性能优化的关键工具。
227 2

推荐镜像

更多