首页 > 技术文章 > python初级 2 字符串格式化

luhouxiang 2018-01-14 13:33 原文

一、回顾

上次我们讲解的数据类型,有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 位:

推荐阅读