Python小讲04.字符串格式化

117 阅读3分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第26天,点击查看活动详情

Python拼接字符串不好用

  • 变量太多,拼接起来太麻烦
  • 字符串无法和数字或其他类型完成拼接

字符串格式化

可以通过如下语法,完成字符串和变量的快速拼接

name = "白凤倚剑归"  
hhh = "我是%s" % name  
print(hhh)

结果:

image.png 其中的%S

  • % 表示:我要占位
  • S 表示:将变量变成字符串放入占位的地方 连起来:%先占个位置,然后有变量进来,把%变成字符串放到占位的位置

数字的拼接:

year = 2022  
month = 10  
day = 6  
func = "今天是%s年%s月%s日" % (year, month, day)  
print(func)

结果:

image.png 注意:

多个变量占位,变量要用括号括起来,并按照占位的顺序填入

对于数字的拼接,其实有一个默认的操作:把数字转化成字符串

常用的占位符

格式符号转化
%s将内容转换成字符串,放入占位位置
%d将内容转换成整数,放入占位位置
%f将内容转换成浮点型,放入占位位置

数字精度控制

我们可以使用辅助符号“m.n”来控制数据的宽度和精度

  • m,控制宽度,要求是数字(很少使用),设置的宽度小于数字自身,不生效
  • n,控制小数点精度,要求是数字,会进行小数的四舍五入

示例

  • %5d:表示将整数的宽度控制在5位,如数字11,被设置为5d,就会变成【空格】【空格】【空格】11,用上空格补足宽度
  • %5.2f:表示将宽度控制为5,将小数点精度设置为2 小数点和小数部分也算入宽度计算。如,对11.345设置了%7.2f后,结果是:【空格】【空格】11.35.两个补足宽度,小数部分限制2位精度,四舍五入为.35
  • %.2f:表示不限制宽度,只设置小数点精度为2,如11.345设置%.2f后,结果是11.35

测试:

num1 = 66  
num2 = 3.1415926  
print("数字66宽度限制5,结果是:%5d" % num1)  
print("数字66宽度限制1,结果是:%1d" % num1)  
print("数字3.1415926宽度限制7,小数精度2,结果是:%7.2f" % num2)  
print("数字3.1415926不限制,小数精度2,结果是:%.2f" % num2)

结果:

image.png

字符串格式化-快速写法

语法: f"内容{变量}"的格式来快速格式化

注意

此方式:

  • 不理会类型
  • 不做精度控制 适合对精度没有要求的时候快速使用

表达式格式化

表达式是什么?

表达式就是一个具有明确结果的代码语句,如1+1、type("字符串")、3*5等 在变量定义的时候,如age=11+11,等号右侧的就是表达式,也就是有具体的结果,将结果赋值给了等号左侧的变量

如何格式化表达式?

  • f"{表达式}"
  • "%s/%d/%f%(表达式、表达式、表达式)"

PS:这些都是Python最基础的语法~