f-string,一个非常强大的Python字符串格式化工具

源:DeepHub IMBA

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


加入知识星球【我们谈论数据科学】

提供100节专属Pandas数据分析视频教程

600+小伙伴一起学习!



相关推荐

  • GitHub iOS 团队如何利用 Apple-Silicon Actions Runner 减少测试时间
  • Kong AI Gateway 正式 GA
  • 扔掉小红书,国外自由行:Pokémon Go 和 Google Gemini 帮助打造最强旅游 Copilot
  • 远离硅谷、不靠风投!18人团队逆势搞出超人气数据库,CTO 一人5年多写了15万行代码
  • 父亲节的诗:爱的表达
  • 5 个超强大的 3D地球 开发框架!!!
  • 推荐 3 个前端最火的开源框架 !
  • 手把手教你如何用AIGC大模型写一首歌
  • 阿里,2两年多少了5万人。
  • 大模型理解复杂表格,字节&中科大出手了
  • 突发!Sam Altman与OpenAI股东正式提出公司转型,成为营利性公司!!
  • [开源]一个集成多个消息渠道可实时和定时推送的消息推送平台
  • 开源框架中的责任链模式实践
  • 带您认识Modbus ASCII协议
  • 6.3K Star很强!一键同步,跨设备书签管理神器
  • 别惹程序员——印度IT工程师被解雇后删了前东家180台服务器、造成几百万损失
  • 全球开源技术峰会GOTC 2024开启报名通道
  • 投稿 SCI,审稿意见居然是抄的?作者一路闹到 Nature:惹到我你算是踢到钢板了
  • 软科中国大学人工智能专业排名出炉!清华第一!北大爆冷!仅排第13名。。。
  • 重磅!软件架构大师Chris Richardson、​MIT计算机与AI实验室Daniel Jackson将出席软件研发技术大会