Python 超好用的几种 f-string 方式,你都会吗 ?
f-string 是 Python 3.6 版本引入的一种字符串格式化方法,它允许我们将变量、表达式直接插入到字符串中。本文将介绍 f-string 的大部分使用方式,快来检查一下你是否全部都掌握了。
基本用法
f-string 是 Python 中用于字符串格式化的语法,在字符串前加上字母 f 然后使用花括号 {} 在字符串内容插入的变量、表达式。在运行时,这些花括号内的内容将被替换为对应的值。
插入变量
可以直接将变量名放在花括号中,f-string 会自动将其替换为变量的值。
| >>> name = "正心全栈编程" |
| >>> f'{name} 是在 bilibili 发布视频' |
| '正心全栈编程 是在 bilibili 发布视频' |
插入表达式
除了变量,还可以在花括号插入表达式,f-string 会将表达式的结果插入到字符串中。
| >>> name = "正心全栈编程" |
| >>> age = 18 |
| >>> f'{name} 今年 {age} 岁了,再过 2 年他就 { age + 2} 了' |
| '正心全栈编程 今年 18 岁了,再过 2 年他就 20 了' |
插入函数
可以在 f-string 中调用函数,并将函数的返回值插入到字符串中。
| >>> name = "正心全栈编程" |
| >>> age = 18 |
| >>> import datetime |
| >>> def birth_year(age): |
| ... return datetime.datetime.now().year - age |
| ... |
| >>> f'{name} 出生于 { birth_year(age) }' |
| '正心全栈编程 出生于 2005' |
使用对象
f-string 也可以直接使用列表、字典与对象,但是需要注意单双引号。
| >>> name = "正心" |
| >>> fruits = ["苹果", "香蕉", "橘子"] |
| >>> f"正心最喜欢的水果是 {fruits[-1]}。" |
| '正心最喜欢的水果是:橘子。' |
| >>> zx = {"name": "正心", "age": 18} |
| >>> f'{zx["name"]} 今年 {zx["age"]} 岁了' |
| '正心 今年 18 岁了' |
| >>> class Person: |
| ... def __init__(self, name, age): |
| ... self.name = name |
| ... self.age = age |
| ... def introduce(self): |
| ... return f"我的名字叫 {self.name} ,我今年已经 {self.age} 岁了。" |
| ... |
| >>> person = Person("正心", 18) |
| >>> person.introduce() |
| '我的名字叫 正心 ,我今年已经 18 岁了。' |
格式化语法
f-string 支持使用冒号(:)来指定格式化选项,例如保留小数位、填充字符、对齐方式、科学计数等。
保留小数位
| >>> from math import pi |
| >>> pi |
| 3.141592653589793 |
| >>> f'pi 为 {pi:.2f}' |
| 'pi 为 3.14' |
| >>> f'pi 为 {pi:.3f}' |
| 'pi 为 3.142' |
| >>> f'pi 为 {pi:10.3f}' |
| 'pi 为 3.142' |
占位、对齐与填充
| >>> pi = 3.14 |
| >>> f'pi 为 {pi:>5}' |
| 'pi 为 3.14' |
| >>> f'pi 为 {pi:>10}' |
| 'pi 为 3.14' |
| >>> f'pi 为 {pi:<10}' |
| 'pi 为 3.14 ' |
| >>> f'pi 为 {pi:^10}' |
| 'pi 为 3.14 ' |
| >>> f'pi 为 {pi:0^10}' |
| 'pi 为 0003.14000' |
| >>> f'pi 为 {pi:$^10}' |
| 'pi 为 $$$3.14$$$' |
特殊计数
会计计数
| >>> salary = 15000 |
| >>> print(f'你的月薪为 {salary:_}') |
| 你的月薪为 15_000 |
| >>> print(f'你的月薪为 {salary:,}') |
| 你的月薪为 15,000 |
| >>> print(f'你的月薪为 {salary:10,}') |
| 你的月薪为 15,000 |
| >>> print(f'你的月薪为 {salary:10,.2f}') |
| 你的月薪为 15,000.00 |
| >>> print(f'你的月薪为 {salary:0>10,.2f}') |
| 你的月薪为 015,000.00 |
科学计数
| >>> salary = 15000 |
| >>> print(f'你的月薪为 {salary:e}') |
| 你的月薪为 1.500000e+04 |
| >>> print(f'你的月薪为 {salary:5.2e}') |
| 你的月薪为 1.50e+04 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了