首页 小组 教程 相册 唠叨 用户 搜索 同城 我的社区

零基础学Python-6. python 字符串格式化表达式

zhao
2019-02-12 15:45:57

6. python 字符串格式化表达式

字符串格式化允许在一个单个的步骤中对一个字符串执行多个特定类型的替换

特别是给用户提示的时候,格式化非常方便

实现方法:

1.格式化表达式,类似于c语言的printf

在表达式中,我们使用%二进制操作符

  >>> print('this is %d %s bird' % (1,'dead'))  
  this is 1 dead bird  

举上面的例子说明(注意我们下面所说的%,都是以字符串和元组中间的那个为准)

在%的左边放置一个字符串,字符串里面放置了一个或者多个使用%开头的嵌入对象

在%的右边放入一个(或多个,嵌入元组当中)对象,这些对象将插入到左边的转换目标位置上

  >>> name='ray'  
  >>> 'my name is %s' % name  
  'my name is ray'  
  >>> '%d %s %d you' % (1,'spam',4)  
  '1 spam 4 you'  
  >>> '%s---%s---%s' % (42,3.14,[1,2,3])  
  '42---3.14---[1, 2, 3]'  
  >>>   

当插入多个对象时,需要把他们放到一个元组里面

2.高级格式化表达式

字符串格式化代码列表

代码意义
s字符串(或者任何对象)
rs,但是用repr,而不是str
c字符
d十进制整数
i整数
u无号整数
o八进制整数
x十六进制整数
Xx,但打印大写
e浮点指数
Ee,但打印大写
f浮点十进制
F浮点十进制
g浮点e或f
G浮点e或f
%常量%

%[(name)][flags][width][.pression]typecode

例子


  >>> x=1234  
  >>> res='integers:...%d...%-6d...%06d' % (x,x,x)  
  >>> res  
  'integers:...1234...1234  ...001234'  
  >>>   

%e,%f,%g对于浮点数的打印是有所区别的

  >>> x=1.23456789  
  >>> x  
  1.23456789  
  >>> '%e|%f|%g' % (x,x,x)  
  '1.234568e+00|1.234568|1.23457'  
  >>>   

3.基于字典的格式化表达式

  >>> 'my name is %(name)s,my age is %(age)d' % {'name':'ray','age':30}  
  'my name is ray,my age is 30'  
  >>>   

说白了就是给每个替换位置命名,这样代码看起来更加明了

用户评论
意见反馈