1.传参方式
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个兰博基尼