每天开心一点

python字符串使用format格式化

2020-08-27 11:11:00    六月    488    来源: https://www.cnblogs.com/songdanlee/p/11105807.html

format常用格式化

1)str1 = "i am {}, age {}, {}".format("seven", 18, 'alex')   

2)str2 = "i am {}, age {}, {}".format(*["seven", 18, 'alex'])

3)str3 = "i am {0}, age {1}, really {0}".format("seven", 18)

4)str4 = "i am {0}, age {1}, really {0}".format(*["seven", 18])

5)str5 = "i am {name}, age {age}, really {name}".format(name="seven", age=18)    

6)str6 = "i am {name}, age {age}, really {name}".format(**{"name": "seven", "age": 18})

7)str7 = "i am {0[0]}, age {0[1]}, really {0[2]}".format([1, 2, 3], [11, 22, 33])

8)str8 = "i am {:s}, age {:d}, money {:f}".format("seven", 18, 88888.1)

9)str9 = "i am {:s}, age {:d}".format(*["seven", 18])

10)str10 = "i am {name:s}, age {age:d}".format(name="seven", age=18)

11)str11 = "i am {name:s}, age {age:d}".format(**{"name": "seven", "age": 18})

print(str1)

print(str2)

print(str3)

print(str4)

print(str5)

print(str6)

print(str7)

print(str8)

print(str9)

print(str10)

print(str11)

我们可以使用使用大括号 {} 来转义大括号,将大括号打印出来,如下实例:

print ("{} 对应的位置是 {{0}}".format("runoob"))

输出结果为:'runoob 对应的位置是 {0}'

再看一个例子:

"{{1}}".format("不打印", "打印")

输出结果:{1}

这里使用了两个大括号实现了转义,并没有设置指定位置。

1、a = "%(name)s---%(age)d "%{'name':'xx','age':20}

print(a)

输出结果:xx---20

2、'{0}{1:.2f}'.format('Pi = ', 3.1415)

输出结果:'Pi = 3.14'

3、"{0} love {b}.{c}".format("I", b="FishC", c="com") 

输出结果:'I love FishC.com'

如果将位置参数和关键字参数综合在一起使用,那么位置参数必须在关键字参数之前,否则就会出错

"{a} love {b}.{0}".format(a="I", b="FishC", "com")

SyntaxError: non-keyword arg after keyword arg

-----------------------------------------------------------

错误信息归纳:

1、"{0}{:+.2f}".format('Pi = ', 3.1415)  ValueError: cannot switch from manual field specification to automatic field numbering  

                              意思为:值错误:无法从手动字段规范切换到自动字段编号需要将{:+.2f}改为{1:+.2f}或者{0}改为{}

2、"{:.2f}".format('3.1415926')      ValueError: Unknown format code 'f' for object of type 'str'

3、"{0}{1:+.2f}".format(3.1415)     IndexError: tuple index out of range

参考: https://www.runoob.com/python/att-string-format.html

https://www.cnblogs.com/songdanlee/p/11105807.html

http://blog.chinaunix.net/uid-30212356-id-5110357.html

https://www.jianshu.com/p/e9b8240a9109