首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
第4章 选择易懂的名称
4.1 命名风格
4.2 PEP 8 的命名风格
4.3 适当的名称长度
4.3.1 太短的名称
4.3.2 太长的名称
4.4 起易于搜索的名称
4.5 避免笑话、双关语和需要文化背景才能理解的词汇
4.6 不要覆盖内置名称
4.7 史上最差的变量名
第5章 揪出代码的坏味道
5.1 重复的代码
5.2 魔数
5.3 注释掉的代码和死代码
5.4 打印调试
5.5 带有数字后缀的变量
5.6 本该是函数或者模块的类
5.7 嵌套列表解析式
5.8 空的except块和糟糕的错误信息
5.9 代码坏味道的谬误
5.9.1 谬误:函数应该仅在末尾处有一个return语句
5.9.2 谬误:函数最多只能有一个try语句
5.9.3 谬误:使用flag参数不好
5.9.4 谬误:全局变量不好
5.9.5 谬误:注释是不必要的
第6章 编写Python 风格的代码
6.1 Python 之禅
6.2 学着喜欢强制缩进
6.3 使用timeit模块衡量性能
6.4 常被误用的语法
6.4.1 使用enumerate()而不是range()
6.4.2 使用with 语句代替open()和close()
6.4.3 用is 跟None 做比较而不用==
6.5 格式化字符串
6.5.1 如果字符串有很多反斜杠,请使用原始字符串
6.5.2 使用f-string 格式化字符串
6.6 制作列表的浅副本
6.7 以Python 风格使用字典
6.7.1 在字典中使用get()和setdefault()
6.7.2 使用collections.defaultdict()设置默认值
6.7.3 使用字典代替switch 语句
6.8 条件表达式:Python“丑陋”的三元运算符
6.9 处理变量的值
6.9.1 链式赋值和比较运算符
6.9.2 验证变量是否为多个值中的一个
当前位置:
首页>>
技术小册>>
Python编程轻松进阶(二)
小册名称:Python编程轻松进阶(二)
### 6.5.2 使用f-string 格式化字符串 在Python编程的广阔天地中,字符串格式化是一项基础且强大的功能,它允许开发者以灵活的方式将变量、表达式等嵌入到字符串文本中。随着Python版本的迭代,字符串格式化的方法也在不断演进,从古老的`%`操作符、`str.format()`方法,到现代且备受推崇的f-string(格式化字符串字面量),每一次改进都极大地提升了代码的可读性和编写效率。本章将深入探讨f-string,这一Python 3.6及以上版本中引入的强大特性,帮助读者轻松掌握并高效利用它进行字符串格式化。 #### 6.5.2.1 f-string简介 f-string,全称为“Formatted String Literals”,是一种在字符串中嵌入表达式的方法,通过在字符串前加上`f`或`F`前缀,并在大括号`{}`内写入表达式来实现。Python解释器会在运行时计算这些表达式,并将其结果转换为字符串,然后将其插入到字符串的相应位置。这种方式不仅直观易读,而且执行效率高,是Python字符串格式化的首选方式。 ```python name = "Alice" age = 30 greeting = f"Hello, my name is {name} and I am {age} years old." print(greeting) # 输出: Hello, my name is Alice and I am 30 years old. ``` #### 6.5.2.2 基本用法 ##### 插入变量 f-string最基本的功能就是在字符串中插入变量的值。如上例所示,变量`name`和`age`的值被直接嵌入到了字符串中。 ##### 表达式求值 f-string同样支持在`{}`中直接编写表达式,Python会在运行时计算这些表达式的值,并将其转换为字符串。 ```python x = 10 y = 20 result = f"The sum of {x} and {y} is {x + y}." print(result) # 输出: The sum of 10 and 20 is 30. ``` ##### 调用函数 你还可以在大括号内直接调用函数,并将函数的返回值嵌入到字符串中。 ```python def square(x): return x * x number = 4 message = f"The square of {number} is {square(number)}." print(message) # 输出: The square of 4 is 16. ``` #### 6.5.2.3 进阶用法 ##### 格式化数字 虽然f-string本身不提供像`str.format()`方法那样的详细格式化选项(如`{:0.2f}`用于格式化浮点数),但你可以通过结合表达式和内置函数(如`format()`)来实现类似的效果。 ```python pi = 3.1415926 formatted_pi = f"Pi is approximately {pi:.2f}." print(formatted_pi) # 输出: Pi is approximately 3.14. ``` ##### 多行f-string 虽然f-string本身不支持直接的多行语法,但你可以通过在字符串内使用三引号(`'''`或`"""`)来创建多行字符串,并在其中嵌入f-string表达式。 ```python name = "Alice" bio = f""" Hello, my name is {name}. I am a Python programmer. I love to code and solve problems. """ print(bio) ``` ##### 字典解包 f-string还支持在表达式中使用字典解包(dictionary unpacking),这允许你直接从字典中取出值进行格式化。 ```python person = {"name": "Bob", "age": 25} info = f"Name: {person['name']}, Age: {person['age']}" # 或者使用字典解包 info_with_unpack = f"Name: {person['name']}, Age: {person.get('age', 'Unknown')}" print(info_with_unpack) # 输出: Name: Bob, Age: 25 ``` 注意:直接使用`person['name']`或`person['age']`可能在键不存在时引发`KeyError`,这里展示了使用`get()`方法作为更安全的访问方式。 #### 6.5.2.4 注意事项 - **性能**:f-string在性能上通常优于`str.format()`和`%`操作符,尤其是在处理大量字符串或复杂表达式时。然而,对于简单的字符串拼接,直接使用加号(`+`)可能更直观且性能相当。 - **兼容性**:f-string是Python 3.6及更高版本中的特性,因此在使用前请确保你的Python版本符合要求。 - **可读性**:虽然f-string提高了代码的可读性,但过度使用或嵌套过深的表达式可能会降低可读性。因此,在保持代码清晰和简洁之间找到平衡是很重要的。 #### 6.5.2.5 结论 f-string作为Python中字符串格式化的现代方法,以其简洁、直观和高效的特点赢得了广泛的赞誉。通过本章的学习,你应该已经掌握了f-string的基本用法和进阶技巧,包括如何在字符串中插入变量、执行表达式、调用函数以及处理复杂的数据结构(如字典)。在未来的Python编程实践中,不妨多尝试使用f-string来优化你的代码,享受它带来的便利和效率吧!
上一篇:
6.5.1 如果字符串有很多反斜杠,请使用原始字符串
下一篇:
6.6 制作列表的浅副本
该分类下的相关小册推荐:
Python甚础Django与爬虫
Python机器学习基础教程(下)
Python爬虫入门与实战开发(下)
Python合辑7-集合、列表与元组
Python合辑6-字典专题
Python合辑4-130个字符串操作示例
Python自动化办公实战
Python合辑8-变量和运算符
Python数据分析与挖掘实战(下)
Python编程轻松进阶(三)
Python合辑11-闭包函数
Python与办公-玩转Excel