应用场景:一般在print的时候提供占位符;python中提供两种格式化字符串方式:第一种是古老的利用百分号的方式,第二种是增强的格式化字符串、format 函数。
1、常见用法
常见占位符:%s -------------字符串占位符
%d -------------数字占位符
%f -------------浮点型数字占位符
例如:输入用户的信息,并打印出来
name= raw_input('input your name: ') age= raw_input ('input your age: ') job = raw_input ('input your job: ') msg=''' #定义变量msg,字符串中提供占位符 Information of user %s: ------------------------------- Name: %s Age: %s #特别注意这里,像age这种通过raw_input方式定义的变量,python默认都为字符串,因此这里不用%d,而是用%s #如果非要用%d的话,那么可以在定义age的时候用函数转换 age= int(raw_input ('input your age: ')) Job: %s --------------End-------------- '''%(name,name,age,job) #把3个用户定义的变量依次赋给msg字符串中的各个占位符,实现替换,注意4个要按顺序一一对应 print msg 结果: Information of user Mr.Mangood: ------------------------------- Name: Mr.Mangood Age: 27 Job: Engineer --------------End--------------
2、更多高级用法
占位符结构: %[(name)][flags][width].[precision]typecode
其中:
(name) 可选,用于选择指定的key
>>> info = '''联系人%(name)s的年龄是%(age)d'''%{'name':'Mr.Mangood','age':23} # 这里可以用字典{'name':'Mr.Mangood','age':23}来对占位符传值 >>> print info 联系人Mr.Mangood的年龄是23
[flags] 可选,当占位符设定了宽度的时候比如设定20个字符,但我们传值的时候只写了4个字符,这时对齐的概念就出现了,一般我们会配合着[width]来说
+ 右对齐
- 左对齐
空格 右对齐
0 右对齐
[width] 可选,定义占位符宽度
>>> info = '''联系人%(name)20s的年龄是%(age)d'''%{'name':'Mr.Mangood','age':23} # 这里的20就是宽度[width],不写[flags]默认右对齐 >>> print info 联系人 Mr.Mangood的年龄是23 >>> info = '''联系人%(name)+20s的年龄是%(age)d'''%{'name':'Mr.Mangood','age':25} # 这里的+20就是右对齐 >>> print info 联系人 Mr.Mangood的年龄是25 >>> info = '''联系人%(name)-20s的年龄是%(age)d'''%{'name':'Mr.Mangood','age':23} # 这里的-20就是代表左对齐 >>> print info 联系人Mr.Mangood 的年龄是23
.precision 小数点后保留的位数
>>> info = '''学生%(name)s的年龄是%(age)d平均成绩为%(avgscore).2f'''%{'name':'Mr.Mangood','age':25,'avgscore':85.2479} #这里的.2就代表%f这个浮点型占位符保留两位小数 >>> print info 学生Mr.Mangood的年龄是25平均成绩为85.25
typecode 必选
c %c将传进来的整数数字转换成其unicode对应的值
o 将整数转换成八进制表示
x 将整数转换成十六进制表示
>>> s = '''测试ASCII码转换%c测试八进制转换%o测试16进制转换%x'''%(65,9,15) >>> print s 测试ASCII码转换A测试八进制转换11测试16进制转换f
e 将整数、浮点数转换成科学计数法(科学计数法中的e为小写的e)
E 将整数、浮点数转换成科学计数法(科学计数法中的E为大写的E)
>>> test = '''测试科学技术法%e测试科学技术法%E'''%(98888888,98888888) >>> print test 测试科学技术法9.888889e+07测试科学技术法9.888889E+07
g 自动识别数字大小是否需要转换成科学计数法(如果超过6位数,就用科学计数法来表示),科学计数法中的e为小写
G 自动识别数字大小是否需要转换成科学计数法(如果超过6位数,就用科学计数法来表示),科学计数法中的G为大写
>>> test = '''测试科学技术法%e测试科学技术法%g'''%(123456,123456) >>> print test 测试科学技术法1.234560e+05测试科学技术法123456
% 当字符串中出现了格式化标志时,需要用%%表示一个%
>>> zhenli = '''%s是%d%%纯爷们'''%('Mr.Mangood',100) >>> print zhenli Mr.Mangood是100%纯爷们
Atas ialah kandungan terperinci python格式化字符串的使用方法. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!