#占位符有 %d %f %s 等,和c有很多一样的地方
#单个变量替换
'aa %d' % 12 # ==> 'aa 12'
#多个变量替换
'point(%d,%d)' %(1,2)# ==>'point(1,2)'
#多个变量替换时需要加括号
使用str.format函数,它通过{}和:来代替%,作为占位符。
'{},{}'.format('aaa',18) #==>'aaa,18' 不设置替换标号按传入顺序替换
'{0},{1}'.format('aaa',18) #==>'aaa,18' 设置标号按标号顺序替换
'{1},{0},{1}'.format('aaa',18) #==> 'aaa,18,aaa'
'{name},{age}'.format(age=18,name='aaa') #==>'aaa,18' 设置占位符名称
#通过属性来替换占位符
class Person:
def __init__(self,name,age):
self.name,self.age = name,age
def __str__(self):
return 'This guy is {self.name},is {self.age} old'.format(self=self)
str(Person('aaa',18)) #==>'This guy is aaa,is 18 old'
#通过下标替换占位符
p=['aaa',18]
'{0[0]},{0[1]}'.format(p) #==>'aaa,18' 第一个0代表传入的参数p第二个[0]代表下标0的元素
'{p[0]},{p[1]}'.format(p = p) #==>'aaa,12'
#格式输出
#^、<、>分别是居中、左对齐、右对齐,后面带宽度,:号后面第一位是要填充的字符,只能是一个字符,不指定的话默认是用空格填充
#用法{[name]:[x[^<>]]d}
'{p[0]},{p[1]:^6d}'.format(p = p) #==>'aaa, 12 ' 第二个元素6位宽度居中。
'{p[0]},{p[1]:0>6d}'.format(p = p) #==>'aaa,000012' #第二个元素左对齐,6位宽度,其他位用0填充
#浮点数精度
'{:.2f}'.format(321.33345) #==>'321.33'小数点后两位
#f为浮点数,此外还有:进制,b、d、o、x分别是二进制、十进制、八进制、十六进制
#分隔数字
'{:,}'.format(1234567890) #==>'1,234,567,890'
这里主要介绍Python3.5的print函数,通过使用help(print)
print(...)
print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
Prints the values to a stream, or to sys.stdout by default.
打印values到一个流,默认是标准输出
Optional keyword arguments:
file: 是一个 file-like 对象,可以设置此参数到输出到一个文件,默认是标准输出
sep: 多个values中间的间隔符,默认是空格
end: 结尾符,默认是换行符
flush: 是否强制flush流,默认是false
#在某些情况下我们需要显示进度,不换行显示,只需要设置end='',然后字符串里使用'\r'回车符即可
print('\r当前进度: %d%%' % current, end='')