字符串格式化
一 格式化字符串
print(i,"*",j,"=",i*j,) # 2*3= 6 写法不方便
1 % 形式
不足:在定义模板是需要指定传入的数据类型
格式 | 描述 |
---|---|
%% | 百分号标记 |
%s | 字符串 |
%d | 有符号整数(十进制) |
%f | 浮点数字(用小数点符号) |
# 九九乘法表模板
m = "%d*%d=%d"
# print(m)
# print(m%(2,3,6))
# print(m%(3,3,9))
# 练习:自我介绍,姓名小米,年龄 18, 身高1.75米,体重70kg,目前的学习进度为80%。使用字符串格式化将内容输出到控制台
name = "小米"
age = 18
height = 1.75
weight = 70
print("我叫%s,我今年%d,身高是%f,体重是%d,目前学习进度是%d%%"%(name,age,height,weight,80))
2 使用{}作为占位符
# format形式:不需要提前指定类型
# 九九乘法表模板
# m = "{}*{}={}"
# print(m.format(2,5,10))
# 1 编号:实际是format中索引值
# m2 = "{100}*{1}={0}"
# print(m2.format(2,5,10)) # IndexError: tuple index out of range
# 注意:要么不编号,要么都要编号,不能有编号和无编号混合
# m3 = "{0}*{1}={0}" # ValueError
# print(m3.format(2,5,10))
# 2 给占位符起名字
# m4 = "{num1}*{num2}={value}" # ValueError
# print(m4.format(num2=5,num1=2,value=10))
"""
3 填充与格式化
格式: :[填充字符][对齐方式 <^>][宽度]
< 表示向左对齐, ^表示居中对齐, >表示向右对齐
"""
m = "{:$>10}*{}={}"
print(m.format(5,2,10))
# 4 精度控制
# 字符串长度为10位,居中对齐,不够用# 填充,小数点后保留两位
print("{:#^10.2f}".format(2.34246546))
3 f-string(版本>=3.6)
# m = f"{2}*{3}={6}"
# 打印九九乘法表对比
for i in range(1,10):
for j in range(1,i+1):
# print(j,"*",i,"=",i*j,end='\t') # 不使用格式化
# print("%d*%d=%d"%(j,i,i*j),end='\t') # 使用%方式
# print("{}*{}={}".format(j,i,i*j),end='\t') # 使用format形式
print(f"{j}*{i}={i*j}",end='\t') # 使用f-string形式
print()