45. %占位符格式化处理
文章目录
- 45. %占位符格式化处理
- 1.课题导入
- 2. %占位符概念
- 3. %d格式化为整数
- 3.1 %d将整数格式化到指定位置
- 3.2 %d将浮点数格式化为整数
- 1. 知识回顾:用int函数将浮点数转换为整数
- 2. 用%将浮点数格式化为整数
- 4. %s格式化为字符串
- 4.1 %s将整数格式化为字符串
- 4.2 %s将浮点数格式化为字符串
- 5. 知识拓展
- 6. 课后练习
- 7. %占位符格式化语法
- 8. 总结
1.课题导入
上一节我们学了for循环的嵌套。
for循环嵌套最典型的实操练习就是编写九九乘法表。
1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
4*1=4 4*2=8 4*3=12 4*4=16
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
怎样才能输出上面的九九乘法表呢?
乍一看,找不到规律,也找不到思路。
别急,我们试着一行一行的来编写。
【目标任务】
原样输出1*1=1
x = 1
y = 1
print(x,'*',y,'=',x*y)
1 * 1 = 1
上面的代码是我们初学者能想到的最快捷的输出方法。
但我们仔细观察,发现:
终端输出是这样的:1 * 1 = 1
题目要求是这样的:1*1=1
看上去终端输出的内容似乎多了一个空格。
但大家看我编写的代码是没有空格的。
那怎样才能输出1*1=1
这样的表达式呢?
我们用Python中的格式化语法就能实现上述要求。
Python格式化语法有很多种。
今天学习最简单快捷的%占位符
格式化语法
2. %占位符概念
学校的学生通常采用书本、水杯去自习室占座。
地铁上的不文明行为:用包占座。
【备注】上述图片来自书籍《看漫画学Python》。
在Python中,我们通常用%
来占位,也就是生活中占座的意思。
因此我将%
称为占位符。
它的作用是先在要输出的内容中占一个位置,最后再告诉程序那个被占了的位置要输出什么内容。
语法通常如下:
(要输出的内容 % 需要格式化的变量或数值)
本节我们先体验代码,最后再来讲解语法。
3. %d格式化为整数
【作用】
官方描述:%d的作用是将整数、浮点数转换成十进制表示,并将其格式化到指定位置。
【温馨提示】
我们日常用的数都是十进制数,初学者不用关注十进制表示
,重点理解语法和格式化到指定位置即可。
我们可以这样理解%d
的作用:
-
%d将整数格式化到指定位置。
-
%d将浮点数格式化为整数,并放到指定位置。
decimal[ˈdesɪml]:十进制的。
d可以理解为是decimal的首字母。
%d的意思就可以理解成格式化为十进制的整数。
3.1 %d将整数格式化到指定位置
【实操练习】
原样输出2*4=8
【语法】
(要输出的内容 % 要格式化的变量或数值)
【代码拆解】
- 先写要输出的内容
2*4=8
print("2*4=8")
- 替换需要格式化的地方,即输出内容的数字部分。这里需要的替换的是参与计算的整数,因此用%d去占位。
2用一个%d取替代。
4用一个%d取替代。
8用一个%d取替代。
print("%d*%d=%d")
- 添加
%
占位符。为了语法美观,我通常在%前后都输入一个空格。
print("%d*%d=%d" % )
- 最后添加要格式化的数值。
print("%d*%d=%d" % (2, 4, 2*4))
2*4=8
要替换的数值有3个,两个数值之间用英文逗号分隔。
最后一个数值2*4
可以直接写8,但为了让计算机自己计算,我写的是2*4
。
- 要格式化的部分也可以是变量。
x = 2
y = 4
print("%d*%d=%d" % (x, y, x*y))
2*4=8
3.2 %d将浮点数格式化为整数
1. 知识回顾:用int函数将浮点数转换为整数
将浮点数3.14和3.9转换成整数。
浮点数转换成整数,直接使用int函数即可。
print(int(3.14))
3
print(int(3.9))
3
注意int转换不会四舍五入,只保留整数部分。
2. 用%将浮点数格式化为整数
x = 3.14
y = 3.9
print('%d' % x)
print('%d' % y)
3
3
格式化也没有四舍五入,只保留整数部分。
4. %s格式化为字符串
【%s的作用】
官方描述:%s的作用是获取传入对象的str方法的返回值,并将其格式化到指定位置。
我们可以这样理解%s
的作用:
s
可以理解为是字符串str的开头首字母。
%s
的作用是将整数格式化为字符串,并放到指定位置。
%s
的作用是将浮点数格式化为字符串,并放到指定位置。
作用相当于函数str( )。
4.1 %s将整数格式化为字符串
【实操练习】
原样输出:我的体重是50公斤。
50是整数,是不能和字符串进行拼接输出的。
我们可以使用str函数将其转换成字符串类型。
或者使用%占位符将其格式化为字符串。
【str方法】
print("我的体重是"+str(50)+"公斤。")
我的体重是50公斤。
【%s占位符方法】
【语法】
(要输出的内容 % 要格式化的变量或数值)
【代码拆解】
- 先写要输出的内容
我的体重是50公斤。
print("我的体重是50公斤。")
- 替换需要格式化的地方,即输出内容的数字部分。这里需要替换的是50,50前后都是中文字符,因此用%s去占位。
用%s
去替换50
print("我的体重是%s公斤。")
- 添加%占位符。为了语法美观,我通常在%前后都输入一个空格。
print("我的体重是%s公斤。" % )
- 最后添加要格式化的数值。
print("我的体重是%s公斤。" % 50 )
我的体重是50公斤。
这里要替换的数值只有1个,因此数值不需要用英文圆括号。
4.2 %s将浮点数格式化为字符串
【实操练习】
原样输出我的身高是1.68米。
【语法】
(要输出的内容 % 要格式化的变量或数值)
【代码拆解】
- 先写要输出的内容
我的身高是1.68米。
print("我的身高是1.68米。")
- 替换需要格式化的地方,即输出内容的数字部分。这里需要替换的是1.68,1.68前后都是字符串,因此需要用%s去占位。
用%s
替换1.68
print("我的身高是%s米。" )
- 添加%占位符。为了语法美观,我通常在%前后都输入一个空格。
print("我的身高是%s米。" % )
- 最后添加要格式化的数值。
print("我的身高是%s米。" % 1.68)
我的身高是1.68米。
5. 知识拓展
%
占位符有很多种用法:
%s
:获取传入对象的str方法的返回值,并将其格式化到指定位置。
%o
:将整数转换成八进制表示,并将其格式化到指定位置。
%x
:将整数转换成十六进制表示,并将其格式化到指定位置。
%d
:将整数、浮点数转换成十进制表示,并将其格式化到指定位置。
%f
:将整数、浮点数转换成浮点数表示,并将其格式化到指定位置(默认保留小数点后6位)。
除了上面这些,还有其他的语法。
因为上述语法不常用,因此这里仅介绍%s
和%d
两种常用格式化语法。
6. 课后练习
计算半径为5米的圆的面积。
原样输出半径为5米的圆的面积为?平方米。
(?的值需要计算机自己计算)
圆的面积计算公式:s = π*r**2
【平方知识点回顾】
3**2表示2的平方。
print(3**2)
9
2**3表示2的3次方。
print(2**3)
8
2**4表示2的4次方。
print(2**4)
16
【语法】
(要输出的内容 % 要格式化的变量或数值)
【代码拆解】
- 先写要输出的内容
半径为5米的圆的面积为?平方米。
print("半径为5米的圆的面积为?平方米。")
半径为5米的圆的面积为?平方米。
- 替换要格式化的地方,即输出内容的数字部分。因为是跟中文字符一起输出,这里需要替换成字符串类型,因此用%s去替换。
用%s
替换5
。
用%s
替换?
。
print("半径为%s米的圆的面积为%s平方米。")
- 添加格式化占位符
%
。为了美观%
前后可以敲一个空格。
print("半径为%s米的圆的面积为%s平方米。" % )
- 最后添加要格式化的变量,注意多个变量要用圆括号括起来。这里一共需要格式化2个变量,一个是半径r,一个是面积s。
print("半径为%s米的圆的面积为%s平方米。" % (r,s))
【完整代码】
# 新建变量存储圆的半径
r = 5
π = 3.14
# 圆的面积
s = π*r**2
print("半径为%s米的圆的面积为%s平方米。" % (r,s))
半径为5米的圆的面积为78.5平方米。
7. %占位符格式化语法
(要输出的内容 % 要格式化的变量或数值)