Python f-string字符串格式化详解
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成为首选的字符串格式化方法。
2020-09-17 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
weixin_38733875
- 粉丝: 7
- 资源: 976
最新资源
- JavaScript实现的高效pomodoro时钟教程
- CMake 3.25.3版本发布:程序员必备构建工具
- 直流无刷电机控制技术项目源码集合
- Ak Kamal电子安全客户端加载器-CRX插件介绍
- 揭露流氓软件:月息背后的秘密
- 京东自动抢购茅台脚本指南:如何设置eid与fp参数
- 动态格式化Matlab轴刻度标签 - ticklabelformat实用教程
- DSTUHack2021后端接口与Go语言实现解析
- CMake 3.25.2版本Linux软件包发布
- Node.js网络数据抓取技术深入解析
- QRSorteios-crx扩展:优化税务文件扫描流程
- 掌握JavaScript中的算法技巧
- Rails+React打造MF员工租房解决方案
- Utsanjan:自学成才的UI/UX设计师与技术博客作者
- CMake 3.25.2版本发布,支持Windows x86_64架构
- AR_RENTAL平台:HTML技术在增强现实领域的应用