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

共 3144字,需浏览 7分钟

 ·

2024-06-15 17:00











来源:DeepHub IMBA









本文约1200字,建议阅读3分钟



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://docs.python.org/3/reference/lexical_analysis.html#f-strings








编辑:黄继彦






浏览 90
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报