'''
1)字符串格式化format代表格式字符串,格式:format%x,x为被格式化的值,如果需要在格式化字符串中包括百分号,必须使用%%;
'''
format="Hello,%s.%s!"
values=('world','python')
print(format%values)format="Pi with three decimals:%.3f"
from math import pi
print(format % pi)'''
2)模板字符串string模块提供了另外一种格式化值的方法:模板字符串;substitute这个模板方法会用传进来的关键字参数foo替换字符串中的$foo
'''
from string import Template
s=Template('$x,glorious $x!')
print(s.substitute(x='slurm'))#能正确输出
print(s)#不能输出字符串#如果替换字段是单词的部分,则参数需要用括号括括起来,从而准确指明结尾
s=Template("It's ${x}tastic!")
print(s.substitute(x="slum"))#可以使用$$插入美元符号
s=Template("Make $$ selling $x!")
print(s.substitute(x="slum"))#除了上述关键字参数之外,还可以使用字典提供值/名称对
s=Template("A $thing must never $action")
d={}
d['thing']='gentleman'
d['action']='show his socks'
print(s.substitute(d))'''
3)详细应用格式化操作的右操作数可以是任意类型,若是元组或映射,则字符串格式化将会有所不同右操作数为元组时,每个元素会被单独格式化,每个值需要一个转换说明符;元组作为转换表达时的一部分时需要用括号括起来;
'''print("%s plus %s equals %s"%(1,1,2))'''
基本的转换说明符包括以下部分:(1)%字符(2)转换标志:-表示左对齐,+表示在转换前加上正负号,''(空白字符)表示正数之前保留空格0表示转换值若位数不够则用0填充;(3)最小字段宽度:指定宽度,如果为*,则宽度从元组中读出(4)点(.)后跟精度:若转换的是实数,表示小数点后的位数,若为字符串,则表示最大字段宽度,若是*,则精度从元组读出
'''
print("Price of eggs:$%d"%10)
print("%x"%20)
#%x转换为十六进制,%s转换为str()转换的字符串,%r转换为repr()转换的字符串print("%10.2f"%pi)#10为字段宽度,2表示小数位数,f为十进制浮点数
print("%10i"%9)#在宽度和精度之前还可以放置0,-,+或空格标志;
print("%010.2f"%pi)
print("%-10.2f"%pi)
print("%+d"%10+'\n'+"%+d"%-10)
print("% d"%10+'\n'+"% d"%-10)#加空格,结果为在正数前加空格,