找回密码
 会员注册
查看: 31|回复: 0

python中的f字符串及其常见用法

[复制链接]

2万

主题

0

回帖

7万

积分

超级版主

积分
71365
发表于 2024-9-6 11:21:03 | 显示全部楼层 |阅读模式
有个小伙伴看到之前写的Faker库相关文章中出现了f'{}'这个东东,他问我是啥意思?实际上,这个是使用到了f-string作为格式化的方法,为此简单罗列了一下f-string及其常见用法,给小伙伴们作为参考。一、f-string是什么?Pythonf-string是执行字符串格式化的最新Python语法。自Python3.6起可用。Pythonf字符串提供了一种更快,更易读,更简明且不易出错的在Python中格式化字符串的方式。f字符串的前缀为f,并使用{}括号评估值。在冒号后指定用于类型,填充或对齐的格式说明符。例如:f'{price:.3f}',其中price是变量名,.3f表明精度(保留三位小数)。二、格式化常见用法Python中常见的格式化方法有三种,分别是:1.%符号+格式指定符2.format()函数3.f-string下面举个例子,结果都是“【张三】今年【18】岁”,但是使用了不同的格式化方法:name="张三"age=18#最原始提供的字符串替换方法,使用了%运算符和经典字符串格式指定,如%s%d等print("【%s】今年【%d】岁"%(name,age))#【张三】今年【18】岁#Python3.0新增了format()函数,可以提供高级的格式化选项print("【{}】今年【{}】岁".format(name,age))#【张三】今年【18】岁#Python3.6f-string出现,使得格式化方法更加灵活,字符串前缀为f,并使用{}评估值print(f"【{name}】今年【{age}】岁")#【张三】今年【18】岁'运行运行三、f-string常见用法汇总下面分别举例说明f-string的一些常见用法1.f-string中接收表达式num=12price=6#f-string中可以接收表达式print(f'【{num}】个苹果,每个【{price}】元,一共要花【{num*price}】元')#【12】个苹果,每个【6】元,一共要花【72】元'运行运行2.f-string可以对字典取值user={"name":"Ace","job":"teacher"}print(f'【{user["name"]}】的工作是【{user["job"]}】')#【Ace】的工作是【teacher】'运行运行3.f-string针对多行数据进行格式化name="李四"age=28job="码农"msg=(f'Name:{name}\n'f'Age:{age}\n'f'Job:{job}')#注意msg使用了()进行包裹print(msg)#Name:李四#Age:28#Job:码农'运行运行4.f-string中调用函数defmy_max(x,y):"""三目运算比较两个数字大小:paramx:intx:paramy:inty:return:x和y中较大的数字"""returnxifx>yelseya=3b=4print(f'【{a}】和【{b}】中较大的是【{my_max(a,b)}】')#【3】和【4】中较大的是【4】'运行运行5.f-string转义用法print(f"Python使用{{}}来计算f-string中的变量")#Python使用{}来计算f-string中的变量print(f'你真的很\'厉害\'')#注意:单引号中想继续使用单引号,那就需要进行转义#你真的很'厉害''运行运行6.f-string格式化浮点数val=11#通过:后跟浮点数标识,可以实现格式化浮点数print(f'{val:.3f}')#11.000print(f'{val:.4f}')#11.0000'运行运行7.f-string格式化宽度foriinrange(1,11):print(f'{i:02}{i*i:3}{i*i*i:4}')#0111#0248#03927#041664#0525125#0636216#0749343#0864512#0981729#101001000'运行运行8.f-string对齐字符串s1='a's2='ab's3='abc's4='abcd'#将输出的宽度设置为十个字符。使用>符号,让输出结果右对齐。print(f'{s1:>10}')print(f'{s2:>10}')print(f'{s3:>10}')print(f'{s4:>10}')#a#ab#abc#abcd#实际上,只要大于最大的字符串长度,就可以实现右对齐,感兴趣可以试下小于最大字符串长度会有什么表现'运行运行9.f-string格式化时间importdatetimenow=datetime.datetime.now()print(f'{now:%Y-%m-%d%H:%M}')#2023-04-0221:07'运行运行10.f-string接收对象,注意:对象必须定义了__str__()或__repr__()函数classUser:def__init__(self,name,job):self.name=nameself.job=jobdef__repr__(self):returnf"{self.name}isa{self.job}"u=User('Ace','teacher')print(f'{u}')#Aceisateacher'运行运行以上就是f-string常见的一些用法,使用f-string格式化数据可以更加灵活,满足多样化的需求,但注意,一定要Python3.6以上的版本才支持!注意:Python3.6以上的版本才支持!注意:Python3.6以上的版本才支持!注意:Python3.6以上的版本才支持!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2025-1-9 20:19 , Processed in 0.889480 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表