在编程中我们经常需要对输出的内容进行格式化后再输出,比如经常收到的手机订阅短信内容,“尊敬的***用户,您本月的消费金额是***”,这里的***所代表的内容是动态的根据具体的内容进行输出,就要用到了格式化输出,那么在python中如何进行字符串的格式化输出呢?其实跟其他的编程语言类似,需要用到占位符,就是用具体的占位符来代替上述***的内容,根据上述***的内容的不同,占位符也有所不同,常用的占位符有以下几种:
占位符 替换内容
%s 字符串
%d 整数
%f 浮点数
%x 十六进制整数
%s表示的是用字符串替换占位符内容,%d表示用整数替换,比如%.3f就表示浮点数保留小数点后两位,并切字符串里有几个占位符,%后面就跟几个变量或者值,并且数据类型的顺序要对应好。如果只有一个占位符的话,%后面的括号可以省略。
比如:
#第一个%s表示用字符串替换,对应后面的刘备,%d表示整数占位符,对于括号里面的175865523221,因为占位符有两个所以后
# 面替换的内容需要加括号,并且字符串内容和替换内容中间要加%,这个不能少,不然就是把大括号里面的所有内容当成字符串输出了
#并且不管对于任何内容使用字符串占位符都是可以的,因为前面的内容是字符串
# python里的注释是用#,不同于其他语言的// 或者/**
print('%s,你好,请打电话%d'%('刘备',175865523221))
print('%s,你好,请打电话%s'%('刘备',175865523221))
则输出
#浮点类型的占位符,.3 .2表示的是保留小数点后几位小数,只有一个占位符,则不需要括号
print("%.2f" % 2.568976)
print("%.3f" % 2.568976)
print("%3f" % 2.568976)
print("%.3f %.2f" % (2.568976,2.3698))
结果如下
#整数类型的占位符
print("%.3d " % 3)
print("%03d " % 3)
print("%3d " % 3)
print("%d " % 3)
结果输出:注意标记的地方的不同
十六进制整数
#十六进制整数
print("%x " % 3)
print("%x " % 322)
输出结果
另外还有一种格式化字符串的方法是使用 字符串.format()
方法,是讲传入的参数依次替换字符串内的{0},{1}...... ,,比如:
#format()
print('{0},你好,请打电话{1}'.format('刘备',175865523221))
print('{0},你好,你的消费金额为{1:.3f}'.format('刘备',3.56897))
print('{0},你好,你的消费金额为{1}'.format('刘备',3.56897))
print('{0},你好,请打电话{1:d}'.format('刘备',175865523221))
输出