Python % 格式化字符串

格式字符串

  • python 使用一个字符串作为模板
  • 模板中含有格式符,为真实值预留位置
  • 使用tuple或者字典来传递值
  • 模板和值之间,用 % 来表示格式化操作

例子:

1) tuple 传值

print("I'm %s,  and I'm %d years old"  %  ('Tony',99) )

2)字典传值

print("I'm %(name)s, and I'm %(age)d years old"  %  {'name':'Tony','age':99})

字典传值时,我们对格式串进行了 命名 。所以可以接收字典的value(相同名字的key)

格式符含义:

%s    字符串 (采用str()的显示)

%r    字符串 (采用repr()的显示)

%c    单个字符

%b    二进制整数

%d    十进制整数

%i    十进制整数

%o    八进制整数

%x    十六进制整数

%e    指数 (基底写为e)

%E    指数 (基底写为E)

%f    浮点数

%F    浮点数,与上相同

%g    指数(e)或浮点数 (根据显示长度)

%G    指数(E)或浮点数 (根据显示长度)

 

%%    字符"%"

注意:

1)%s 与 %r 的区别在于, %s 不带'',  %r 带

print("%s" % 'abc')    #   abc
print("%r" % 'abc')    #   'abc'

2)%% 不懂??   

3)其实除了 命名 外,还有其他选项可以控制字符串。

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

  • 其中flags 有+, -, 0, ' ' 四种。表示字符串前补上这些符号
  • width 表示字符串的output长度,左补
  • precision代表float类型的output精度

 例子:

print("%+10x" % 10)                #        +a
print("%04d" % 5)                  #0005
print("%6.3f" % 2.3)               # 2.300

# width 和precision   也可以动态传递
print("%.4f" % 1.2)                 #1.2000
print("%.*f" % (4,1.2))            #1.2000

 

  

原文地址:https://www.cnblogs.com/skyEva/p/5536992.html