字符串格式化

一 格式化字符串

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()

posted @ 2020-12-02 19:31  小杜打醋尢买布  阅读(104)  评论(0编辑  收藏  举报