社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

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

大侠学Python • 2 月前 • 94 次点击  
源: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


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/171516
 
94 次点击