标题:别再只用%和.format了!解锁Python f-string的三个隐藏技巧
在Python的字符串格式化世界里,f-string(自Python 3.6引入)无疑是一场革命。它简洁、易读、执行效率高,早已成为现代Python开发的首选。你可能已经熟练使用它来嵌入变量,但它的能力远不止于此。今天,我们就来解锁三个让你代码更优雅、更强大的f-string隐藏技巧。
1. 简洁的表达式与微运算
f-string的强大之处在于,它的大括号 {} 内不仅可以放变量名,还可以执行任意的有效Python表达式。这让你能在字符串中直接进行微运算,而无需预先计算。
name = "Alice"
score = 95
# 传统方式需要预先计算或写很长的表达式
print(f"学生:{name}, 得分:{score}, 等级:{'优秀' if score >= 90 else '良好'}")
# 直接进行运算
import math
radius = 5
print(f"半径为{radius}的圆,面积是:{math.pi * radius ** 2:.2f}")
2. 便捷的调试输出 =}
这是一个在Python 3.8中加入的“调试专用语法”。在表达式后加上一个等号 =,f-string会同时输出表达式本身和它的值。这在调试时非常有用,能让你快速检查多个变量的状态。
user_id = 123
items_in_cart = [‘apple’, ‘book’]
print(f"{user_id = }")
print(f"{items_in_cart = }")
print(f"{len(items_in_cart) = }")
# 输出:
# user_id = 123
# items_in_cart = [‘apple’, ‘book’]
# len(items_in_cart) = 2
无需再手动写 f"user_id = {user_id}",一个等号全搞定!
3. 灵活的数字格式化
f-string提供了类似str.format的格式化说明符,但语法更清晰。你可以轻松控制浮点数精度、百分比、千位分隔符等。
number = 1234567.8912
print(f"逗号分隔:{number:,}") # 输出:1,234,567.8912
print(f"保留两位小数:{number:.2f}") # 输出:1234567.89
print(f"科学计数法:{number:.2e}") # 输出:1.23e+06
print(f"百分比:{0.8765:.1%}") # 输出:87.7%
总结
f-string远不止是变量替换的工具。通过内嵌表达式、使用调试符号和强大的格式化功能,你可以写出更简洁、更高效、更易维护的代码。下次当你准备拼接字符串时,不妨想想这些隐藏技巧,让你的Python代码真正“现代”起来。