记得之前有群里的小伙伴讨论过这个话题,今天索性整理一下。以便下次遇到不再手忙脚乱。

目前python格式化字符串有三种方式,大家可以各取所需。官方推荐的方式是f-string,概其性能优越的缘故。

1. %格式化字符串

想必大家都知道这个用法,用的最多的也是这个了。

「举个简单的例子」

  1. print ("我叫 %s 今年 %d 岁!" % ('无敌哥', 18))

字符串格式化 - 图1

下图是字符串格式化的符号,比较常用的我标记出来了。

字符串格式化 - 图2

「举几个例子」

  1. age = 18
  2. name="无敌哥哥"
  3. print("My age is %s" %age)
  4. print("My Name is %s,age is %s" %(name,age))
  5. # 注意下两者的区别
  6. age = 18
  7. print("My age is %d" %age)
  8. print("My age is %06d" %age)
  9. # 注意下两者的区别
  10. age = 18
  11. print("My age is %0.2f" %age)
  12. print("My age is %f" %age)
  13. print("My age is %2f" %age)
  14. print("My age is %20f" %age)22

字符串格式化 - 图3

字符串格式化 - 图4

字符串格式化 - 图5

2.format()

这个使用过python2的同学用的比较多的。现在应该还是有一些企业用这种写法的,毕竟以前的代码都已经成型了,不易乱动。

下面来看几个例子:

「常规写法」

  1. age = 18
  2. name="无敌哥哥"
  3. print("浦东卷王的的名字叫 {},今年{}了".format(name,age))

「通过位置访问」

  1. age = 18
  2. name="无敌哥哥"
  3. print("浦东卷王的的名字叫 {0},今年{1}了".format(name,age))

3.f-string

「f-string」 格式化字符串以 「f」 开头,后面跟着字符串,字符串中的表达式用大括号{} 包起来,它会将变量或表达式计算后的值替换进去。

下面来看个例子:

  1. #九九乘法表
  2. for i in range(1,10):
  3. for j in range(1,i+1):
  4. print(f"{i}*{j}={i*j}",end='\t') # \t是制表符
  5. print('\n') # \n 换行

字符串格式化 - 图6记得之前有群里的小伙伴问到><的用法。百度了一下,竟然是填充用的,瞬间又多涨了点知识。菜鸟教程找到了相关介绍,如图所示:

字符串格式化 - 图7