从零开始学Python系列课程第08课:Python 中的格式化字符串

格式化字符串,顾名思义就是将字符串进行格式化,更方便的被我们阅读和使用。那么如何将结果进行格式化,就是我们需要探讨、研究的问题。

Python提供了3种格式化的方式,分别是旧式字符串格式化方法、format方法、格式化字符串字面值方法。接下来我们针对每一种方法分别进行探讨、研究。

一、旧式字符串格式化方法

在旧式字符串格式化方法中,我们使用%进行字符串的格式化,形如'string' % values,string中存在多个需要被赋值的%s、%d、%f等占位符,values便是负责给占位符进行赋值的值,通过values前的%传入,传入值时要一一对应,不但传值的顺序、个数要对应,而且%s要对应字符串、%d要对应整型、%f要对应浮点型,同时多个值进行传入时要将values使用小括号**()**括起来。举个例子:

age = 20
str1 = '小明今年%d岁了' % age
print(str1)

name = '小红'
str2 = '%s今年%d岁了' % (name, age)
print(str2)

在这里插入图片描述

上方例子中,我们没有提及%f,这里将%f 单独拿出来讲解:%f除了能代表一个浮点数之外,还可以起到四舍五入保留小数位数的作用。%f默认保留六位小数,如果想自定义小数位数,应该使用%.Nf(注:N为大于等于0的正整数)。

pi = 3.1415

str1 = '圆周率为:%f' % pi

str2 = '圆周率为:%.1f' % pi

str3 = '圆周率为:%.3f' % pi
print(str1, str2, str3)

在这里插入图片描述

二、字符串 format 方法

format方法把旧版的%替换为{}来实现格式化字符串。默认情况下,字符串中有几个位置需要传入数据,你就可以在字符串中写入几个{},同时在format方法中按照顺序传入对应数量的数据即可。

name = '小明'
age = 18
edu = '清华大学'
str1 = '{}岁的{}考上了{}'.format(age, name, edu)

在这里插入图片描述

但是有时候,一个数据可能需要重复传入,为了避免数据重复传入的繁琐,format还提供了一种更高级的写法。

name = '小明'
age = 18
edu = '清华大学'
str2 = '{0}岁的{1}考上了{2},{1}的爸爸妈妈非常高兴'.format(age, name, edu)
print(str2)

在这里插入图片描述

在这种写法中,大家可以看到,我在{}中写入了索引数字(索引数字即每个元素的位置,format 中传入的数据按照索引从0开始数),如果某个数据需要重复传入,我们只需要根据format中传入数据的索引对应着写入{}中即可。

三、格式化字符串字面值(f-字符串)

在字符串前面添加前缀fF,在字符串中将需要修改值的位置使用{}代替,将值或者产生值的表达式放入{}中,即可实现和format同样的效果。

name = '小明'
age = 18
edu = '清华大学'
str1 = f'{age}岁的{name}考上了{edu}{name}的爸爸妈妈非常高兴'
print(str1)

在这里插入图片描述

四、总结

个人觉得f-字符串会比旧式字符串格式化方法和format函数好用一些,当遇到变量比较多、字符串传值比较多的时候,只需要关注变量名是否填写正确,而不用关注顺序和索引,相对来说不容易犯错。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HerrFu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值