Python 7天快速入门完整视频教程:https://www.bilibili.com/video/BV1o84y1Z7J1
Python字符串格式化
我们前面学到字符串拼接,如果简单的2,3个字符串拼接那还算好,如果大于3个变量的拼接,就比较麻烦。还有一点,就是字符串无法和和其他类型直接拼接,需要进行类型转换,也麻烦。这时候,Python提供了“%”对各种类型的数据进行格式化输出。
简单案例:
name = "小锋"
print("我的姓名是 %s" % name)
输出结果:
我的姓名是 小锋
这里 %s 是占位符,第二个 % 是分隔符,name就是变量了。这个很好理解。
我们再看一个实例:
name = "小锋"
age = 18
print("我的姓名是 %s,我今年%s岁了" % (name, age))
输出结果:
我的姓名是 小锋,我今年18岁了
这里多了一个int类型的age变量。我们输出的时候,用两个%s,中间依然用%间隔,第三块,括号里两个参数。注意参数的顺序不能乱。
除了%s,还有很多占位符,如下表。我们现在掌握最基础常用的%s,%d,%f,分别把参数或者表达式转换成字符串,整型,浮点型。
看下面实例:
name = "小锋"
age = 18
height = 181.2
print("我的姓名是 %s,我今年%s岁了" % (name, age))
print("我的姓名是 %s,我今年%d岁了" % (name, age))
print("我的姓名是 %s,我今年%d岁了,身高%f" % (name, age, height))
运行输出:
我的姓名是 小锋,我今年18岁了
我的姓名是 小锋,我今年18岁了
我的姓名是 小锋,我今年18岁了,身高181.200000
作业:定义五个变量,分别是姓名,性别,语文成绩,数学成绩,英语成绩,并且赋值,最终打印出类似 我是某某,男,语文成绩:99.2,数学成绩:100,英语88.5。要求格式化输出。
刚才我们打印身高,这个打印结果,后面多了五个0。这里就涉及到一个格式化精度控制。
我们可以使用辅助符号"m,n"来控制数据的宽度和精度;
-
m,控制宽度(包括小数点),注意,如果设置的宽度小于数字本身,则不生效。
-
n,控制小数点精度,注意,如果设置的宽度大于小数位数,则进行四舍五入。
我们先把前面的身高,加下小数精度 %.1f 这样输出结果就没有0了。
我们再看一下实例:
money1 = 99.99
money2 = 111.66
money3 = 10000
print("张三钱包余额:%10.2f元" % money1)
print("李四钱包余额:%10.1f元" % money2)
print("王五钱包余额:%10.2f元" % money3)
输出结果:
张三钱包余额: 99.99元
李四钱包余额: 111.7元
王五钱包余额: 10000.00元
作业:变量money4=1000.36 通过精度控制,保留一位小数字,数字宽度设置成8位。打印输出结果。
其实我们发现上面的字符串格式化方式,虽然功能强大,但是写起来也不是太方便,这边提供一种更加快捷优雅的格式化方式。
语法是:f"内容{变量}内容";
这种方式缺点是无法进行精度控制,以及也不关心类型,原值输出。
看下下面的测试案例:
name = "小锋"
age = 18
height = 181.2
print(f"我的姓名是 {name},我今年{age}岁了,身高{height}")
输入结果:
我的姓名是 小锋,我今年18岁了,身高181.2
作业:定义五个变量,分别是姓名,性别,语文成绩,数学成绩,英语成绩,并且赋值,最终打印出类似 我是某某,男,语文成绩:99.2,数学成绩:100,英语88.5。要求用f快捷格式化方式输出。