python格式化字符串的使用方法

一、格式化字符功能介绍

  应用场景:一般在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%纯爷们

以上就是python格式化字符串的使用方法的详细内容,更多请关注 第一php社区 其它相关文章!

Posted in 未分类

发表评论