python初级 2 字符串格式化
一、回顾
上次我们讲解的数据类型,有int,float,str,bool,NoneType五种
前两种和后两种都比较简单,str较为复杂
二、字符串格式化的使用场景:
有一种字符串, xxx 的内容都是根据变量变化的,所以,需要一种简便的格式化字符串的方 式。
例如
1“亲爱的 xxx 你好!你 xx 月的话费是 xx元,余额是 xx元”
具体化后:
”亲爱的林雪峰你好!你12月的话费是85元,余额是15元”
”亲爱的小红你好!你8月的话费是35元,余额是20元”
”亲爱的小明你好!你9月的话费是55元,余额是30元”
用程序表达:
In [64]: print("亲爱的%s你好!你%d月的话费是%d元,余额是%d元" % ("林雪峰", 12, 85, 15))
亲爱的林雪峰你好!你12月的话费是85元,余额是15元
In [65]: print("亲爱的%s你好!你%d月的话费是%d元,余额是%d元" % ("小红", 8, 35, 20))
亲爱的小红你好!你8月的话费是35元,余额是20元
In [66]: print("亲爱的%s你好!你%d月的话费是%d元,余额是%d元" % ("小明", 9, 55, 30))
亲爱的小明你好!你9月的话费是55元,余额是30元
2“本次考试,xxx的xx成绩是xx分”
具体化后:
”本次考试,张宏远的数学成绩是100分”
”本次考试,李华的语文成绩是90分”
用程序表达:
In [67]: print("本次考试,%s的%s成绩是%d分" % ("张宏远", "数学", 100))
本次考试,张宏远的数学成绩是100分
In [68]: print("本次考试,%s的%s成绩是%d分" % ("李华", "语文", 90))
本次考试,李华的语文成绩是90分
三、总结:
%运算符就是用来格式化字符串的。
在字符串内部,%s 表示用字符串替换,
%d 表示用整数替换,有几个%?占位符,后面就跟几个变量或者值,顺序要对应好。
常见的占位符有:
1、%d 整数
2、%f 浮点数
3、%s 字符串
四、整数格式化:
可以指定是否补 0 或是空格
In [70]: print("[%2d-%02d]" % (3, 2))
[ 3-02]
In [71]: print("[%3d-%03d]" % (30, 20))
[ 30-020]
五、小数格式化:
In [72]: print("[%.2f-%.3f]" % (3.1516, 3.1516))
[3.15-3.152]
In [73]: print("[%.1f-%.2f]" % (3.1516, 3.1516))
[3.2-3.15]
六、例外情况
格式化转义:
比如要打印: 100%优秀
In [76]: print("%d%%优秀" % (90))
90%优秀
In [77]: print("%d%%优秀" % (100))
100%优秀
练习
小明的成绩从去年的 72 分提升到了今年的 85 分,请计算小明成绩提升的百分点,并用字符串格式化显示出'xx.x%',只保留小数点后 1 位: