首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >你真的了解Python中的f-string吗?别把自己骗了,来看看这篇全网最全的Python的f-string教程,字符串格式化让你的代码更加易读高效

你真的了解Python中的f-string吗?别把自己骗了,来看看这篇全网最全的Python的f-string教程,字符串格式化让你的代码更加易读高效

作者头像
小白的大数据之旅
发布2024-11-20 18:48:59
发布2024-11-20 18:48:59
1.5K00
代码可运行
举报
运行总次数:0
代码可运行

f-string

在Python中,print(f’') 是一种格式化字符串的便捷方式,称为 f-string(格式化字符串字面量)。f-string 是在 Python 3.6 中引入的,它提供了一种非常直观和高效的方法来嵌入表达式到字符串字面量中。

基本语法

f-string 的基本语法非常简单,只需在字符串前加上一个小写的 f 或大写的 F,然后在字符串内部使用花括号 {} 来包含变量或表达式。例如:

代码语言:javascript
代码运行次数:0
运行
复制
name = "Alice"  
age = 30  
print(f"Name: {name}, Age: {age}")
#输出结果:Name: Alice, Age: 30

使用变量

你可以直接在花括号中放入变量名,f-string 会自动将其值转换为字符串并插入到相应的位置。

代码语言:javascript
代码运行次数:0
运行
复制
greeting = "Hello"  
target = "World"  
print(f"{greeting}, {target}!")
#输出结果:Hello, World!

使用表达式

不仅限于变量,你还可以在花括号中放入任何有效的Python表达式,包括算术运算、函数调用等。

算术运算
代码语言:javascript
代码运行次数:0
运行
复制
a = 5  
b = 10  
# 进行算术运算  
print(f"Sum: {a + b}, Difference: {a - b}, Product: {a * b}, Quotient: {a / b}")  
# 运行结果: Sum: 15, Difference: -5, Product: 50, Quotient: 0.5
函数调用
代码语言:javascript
代码运行次数:0
运行
复制
def greet(name):  
    return f"Hello, {name}!"  
  
# 调用函数  
print(f"{greet('Bob')}")  
# 运行结果: Hello, Bob!
条件表达式
代码语言:javascript
代码运行次数:0
运行
复制
score = 85  
# 使用条件表达式  
print(f"Grade: {'A' if score >= 90 else 'B' if score >= 80 else 'C'}")  
# 运行结果: Grade: B
列表推导式
代码语言:javascript
代码运行次数:0
运行
复制
numbers = [1, 2, 3, 4, 5]  
# 使用列表推导式  
print(f"Squares: {[x**2 for x in numbers]}")  
# 运行结果: Squares: [1, 4, 9, 16, 25]
字典推导式
代码语言:javascript
代码运行次数:0
运行
复制
keys = ['a', 'b', 'c']  
values = [1, 2, 3]  
# 使用字典推导式  
print(f"Dictionary: {{k: v for k, v in zip(keys, values)}}")  
# 注意:在f-string中,大括号需要被双写来避免被解释为格式化占位符  
# 运行结果: Dictionary: {'a': 1, 'b': 2, 'c': 3}
集合推导式
代码语言:javascript
代码运行次数:0
运行
复制
numbers = [1, 2, 2, 3, 4, 4, 5]  
# 使用集合推导式  
print(f"Unique numbers: {{{x for x in numbers}}}")  
# 注意:在f-string中,大括号需要被双写  
# 运行结果: Unique numbers: {1, 2, 3, 4, 5}
Lambda 表达式
代码语言:javascript
代码运行次数:0
运行
复制
# 使用lambda表达式  
print(f"Result of lambda: {((lambda x: x * x)(5))}")  
# 运行结果: Result of lambda: 25

使用大括号 {}

如果你想在 f-string 中直接打印大括号,你需要将它们进行转义,即使用两个大括号 {{ 或 }}。

代码语言:javascript
代码运行次数:0
运行
复制
print(f"Braces: {{ }}")
#输出结果:Braces: { }

格式化数字

f-string 还支持使用冒号 : 后跟格式说明符来格式化数字。例如,控制小数点后的位数、填充字符、对齐方式等。

代码语言:javascript
代码运行次数:0
运行
复制
pi = 3.141592653589793  
print(f"Pi: {pi:.2f}")  # 保留两位小数  
print(f"Pi: {pi:10.2f}")  # 总宽度为10,保留两位小数,右对齐  
print(f"Pi: {pi:010.2f}")  # 总宽度为10,保留两位小数,右对齐,用0填充

输出是:

代码语言:javascript
代码运行次数:0
运行
复制
Pi: 3.14  
Pi:      3.14  
Pi: 0000003.14

使用 .format() 方法的对比

在 f-string 之前,Python 使用 .format() 方法来格式化字符串。f-string 提供了更清晰、更简洁的语法,尤其是在需要嵌入多个变量或表达式时。

代码语言:javascript
代码运行次数:0
运行
复制
# 使用 .format()  
name = "Alice"  
age = 30  
print("Name: {}, Age: {}".format(name, age))  
  
# 使用 f-string  
print(f"Name: {name}, Age: {age}")

两者输出相同,但 f-string 更直观易读。

注意事项

  • f-string 只能在 Python 3.6 及以上版本中使用。
  • f-string 提供了比 % 操作符和 .format() 方法更强大、更灵活的字符串格式化功能。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-10-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • f-string
    • 基本语法
    • 使用变量
    • 使用表达式
      • 算术运算
      • 函数调用
      • 条件表达式
      • 列表推导式
      • 字典推导式
      • 集合推导式
      • Lambda 表达式
    • 使用大括号 {}
    • 格式化数字
  • 使用 .format() 方法的对比
  • 注意事项
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档