视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
python格式化字符串的使用方法
2020-11-27 14:25:12 责编:小采
文档


一、格式化字符功能介绍

  应用场景:一般在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.8888e+07测试科学技术法9.8888E+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%纯爷们

下载本文
显示全文
专题