格式化输出
方式一:(%s)
我们经常会输出类似'亲爱的xxx你好!你xx月的话费是xx,余额是xx'之类的字符串‘,而xxx的内容都是根据变量变化的,所以,需要一种简便的格式化字符串的方式。
在Python中,%运算符就是用来格式化字符串的。在字符串内部,%s表示用字符串替换,%d表示用整数替换,有几个%?占位符,后面就跟几个变量或者值,顺序要对应好。
如果只有一个%?,括号可以省略。Python中的 %s 方法传递的时候,也可以是看作是shell中的函数参数。
name = input('请输入名字:') age = input('请输入年龄:') job = input('请输入职业:') hobbie = input('请输入爱好:') msg = '''------------ info of %s ----------- Name : %s Age : %d job : %s Hobbie: %s ------------- end ----------------- ''' % (name, name, int(age), job, hobbie) print(msg)
有些时候,字符串里面的%是一个普通字符怎么办?这个时候就需要转义,用%%来表示一个%
print('我叫%s,今年%d,学习进度2%%' % ('李起光', 10000))
如果你不太确定应该用什么,%s永远起作用,它会把任何数据类型转换为字符串:
name = input('请输入名字:') age = input('请输入年龄:') job = input('请输入职业:') hobbie = input('请输入爱好:') msg = '''------------ info of %s ----------- Name : %s Age : %s job : %s Hobbie: %s ------------- end ----------------- ''' % (name, name, int(age), job, hobbie) print(msg)
方式二:(format函数)
format函数也是通过替换的方式实现格式化输出,它有三种用法如下:
用法一:
与上面讲到的 %s类似,不同的之处是将%s换成了’{ }‘大括号,调用时依然需要按照顺序对应。
s = "我叫{},今年{},爱好{}" s1= s.format('抠脚大汉', '25', '女')
用法二:
通过{n}方式来指定接收参数的位置,将调用时传入的参数按照位置进行传入。相比%s可以减少参数的个数,实现了参数的复用。
s= "我叫{0},今年{1},爱好{2},我依然叫{0}" s1= s.format('抠脚大汉', '25', '女')
用法三:
通过{str}方式来指定名字,调用时使用str='xxx',确定参数传入。
s = "我叫{name},今年{age},爱好{hobby}" s1= s.format(age=25,hobby='girl',name='抠脚大汉')