1.传参方式


传参方式:{}是format中的占位符

1.1顺序传参

strvar = "{}向{}开了一枪,饮蛋而亡".format("黄乘明", "自己")
print(strvar)
#输出结果: 黄乘明向自己开了一枪,饮蛋而亡

1.2索引传参

#索引和列表的下标一样, 从0开始依次递增
strvar = "{1}向{0}开了一枪,饮蛋而亡".format("黄乘明","明乘黄")
print(strvar)
#运行结果: 明乘黄向黄乘明开了一枪,饮蛋而亡
strvar = "{0}向{1}开了一枪,饮蛋而亡".format("黄乘明","明乘黄")
print(strvar)
#运行结果: 
黄乘明向明乘黄开了一枪,饮蛋而亡
#不加索引会默认按顺序补位,参考顺序传参

1.3关键字传参

strvar1 = "{who1}摸了{who2}一下,回头一巴掌".format(who1="黄乘明", who2="牛子")
strvar2 = "{who1}摸了{who2}一下,回头一巴掌".format(who1="牛子", who2="黄乘明")
print(strvar1)
print(strvar2)
#运行结果: 
黄乘明摸了牛子一下,回头一巴掌
牛子摸了黄乘明一下,回头一巴掌

1.4容器类型数据(列表,元组,字典)传参

#方法一 不推荐
strvar = "{0[0]}摸了{1[1]}一下,嘿嘿一笑,有戏".format(["黄乘明", "明乘黄", "乘黄明"], ("牛子", "七牛云"))
print(strvar)
#运行结果: 
黄乘明摸了七牛云一下,嘿嘿一笑,有戏

#方法二(给容器都定义一个变量名,再通过索引取值) 推荐
strvar = "{group1[0]}摸了{group2[1]}一下,嘿嘿一笑,有戏".format(group1 = ["黄乘明", "明乘黄", "乘黄明"], group2 = ("牛子", "七牛云"))
print(strvar)
#运行结果: 
黄乘明摸了七牛云一下,嘿嘿一笑,有戏


#方法三(字典特供, 当要通过字典的键取值时, 键的两侧不用加上引号了,因为字符串外面有引号) 推荐
同时 在通过下标取值的时候, 不能使用逆向索引(即负数,因为在外面字符串的引号包裹下python无法解析-1)
strvar = "{group1[hcm]}摸了{group2[0]}一下,嘿嘿一笑,有戏".format(group1={"hcm": "黄乘明", "mch": "明乘黄"}, group2 = ("牛子", "七牛云"))
print(strvar)
#运行结果: 
黄乘明摸了牛子一下,嘿嘿一笑,有戏

2.format填充符号的使用( ^ > < )

^ 原字符串居中显示
> 原字符串居右显示
< 原字符串居左显示

example:
{who:*^10}
* : 填充的符号
^ : 原字符串居中显示
10: 填充后的总长度 = 10

strvar = "{who:*^10}去长春长生医药公司,{do:>>10},感觉{feel:!<10}".format(who="黄乘明", do="扎疫苗", feel="血槽被掏空")
print(strvar)

#运行结果
***黄乘明****去长春长生医药公司,>>>>>>>扎疫苗,感觉血槽被掏空!!!!!

3.进制转换等特殊符号的使用( :d :f :s :, )

# :d 整型占位符 (强制要求类型是整型)
strvar = "黄乘明昨天晚上买了{:d}个花露水泡脚".format(9)
print(strvar)
#运行结果: 黄乘明昨天晚上买了9个花露水泡脚

# :3d 占3位,不够三位拿空格来补位(原字符串居右)
strvar = "黄乘明昨天晚上买了{:3d}个花露水泡脚".format(9)
print(strvar)
#运行结果: 黄乘明昨天晚上买了  9个花露水泡脚

strvar = "黄乘明昨天晚上买了{:<3d}个花露水泡脚".format(9)
print(strvar)
#运行结果: 黄乘明昨天晚上买了9  个花露水泡脚

strvar = "黄乘明昨天晚上买了{:^3d}个花露水泡脚".format(9)
print(strvar)
#运行结果: 黄乘明昨天晚上买了 9 个花露水泡脚

# :f 浮点型占位符 (强制要求类型是浮点型) 默认保留小数6位
strvar = "黄乘明毕业之后的薪资是{:f}".format(9.9)
print(strvar)
#运行结果: 黄乘明毕业之后的薪资是9.900000

# :.2f 小数点后保留2位,存在四舍五入
strvar = "黄乘明毕业之后的薪资是{:.2f}".format(9.188888)
print(strvar)
#运行结果: 黄乘明毕业之后的薪资是9.19

# :s 字符串占位符
strvar = "{:s}真帅".format("黄乘明")
print(strvar)
#运行结果: 黄乘明真帅

# :, 金钱占位符
strvar = "黄乘明的工资是{:,}".format(12345678)
print(strvar)
#运行结果: 黄乘明的工资是12,345,678

# 综合案例
strvar = "{:s}开工资{:.2f}元,买了{:d}个兰博基尼".format("黄乘明", 300000.12345, 10)
print(strvar)
黄乘明开工资300000.12元,买了10个兰博基尼