Python f-string字符串格式化详解

2 下载量 93 浏览量 更新于2024-09-02 1 收藏 84KB PDF 举报
f-string在Python中是一种强大的字符串格式化工具,它在Python 3.6版本引入,显著提高了代码的可读性和性能。f-string的核心在于其表达式的灵活性和直接性,允许开发者在字符串中直接嵌入变量和表达式,这些表达式会在运行时被计算。 **基本语法** f-string的基本形式是`f"..."`或`F"..."`,其中`f`或`F`是前缀,双引号内包含要格式化的文本。在文本中,用花括号`{}`包围的表达式会被计算并替换为对应的值。例如: ```python name = 'Alice' age = 25 print(f"My name is {name} and I am {age} years old.") ``` 这段代码会输出:`My name is Alice and I am 25 years old.` **变量插入** 在花括号`{}`中直接写变量名即可将变量的值插入到字符串中,如上面的例子所示。 **表达式支持** f-string不仅支持简单的变量插入,还允许插入更复杂的表达式: ```python x = 10 y = 20 print(f"The sum of x and y is {x + y}.") ``` 这会输出:`The sum of x and y is 30.` **格式化规则** f-string内部的表达式可以使用Python的完整表达式语法,包括函数调用、条件判断等。例如: ```python print(f"The value of pi is approximately {math.pi:.2f}") ``` 这会显示圆周率π的近似值,保留两位小数:`The value of pi is approximately 3.14.` **字段命名和默认值** 在花括号内,可以通过`:`来指定额外的格式化选项,如精度、宽度等。如果需要引用的变量名与表达式中的其他部分冲突,可以使用`{var_name:`的方式明确指定变量名。还可以为表达式提供默认值,以防变量未定义: ```python print(f"{name or 'Guest'} visited the website.") ``` **条件表达式** f-string内可以直接使用条件表达式,例如: ```python score = 85 print(f"Grade: {'A' if score >= 90 else 'B' if score >= 80 else 'C' if score >= 70 else 'D'}") ``` 这将根据分数输出相应的等级。 **格式规范** f-string可以结合传统的`%`风格或`str.format()`风格的规范,如`{:.2f}`用来指定浮点数的精度,`{:<10}`用来指定字段宽度,左对齐等。 **字符串转换** 若需要将非字符串类型的数据格式化为字符串,可以使用`!s`转换器,如`{num:!s}`。 **字典和列表** f-string可以方便地处理字典和列表,通过索引来引用列表元素,通过键来访问字典值: ```python person = {"name": "Bob", "age": 30} print(f"My friend {person['name']} is {person['age']} years old.") ``` 或 ```python fruits = ['apple', 'banana', 'cherry'] print(f"The first fruit is {fruits[0]}.") ``` **总结** Python的f-string提供了一种简洁、高效的方式来格式化字符串,它集成了变量插入、表达式计算、格式化控制等功能,使得在编写代码时能更直观地构造动态字符串。由于其易读性和性能优势,在Python 3.6及更高版本中,f-string成为首选的字符串格式化方法。