Python_字符串格式化输出

Posted shz-blog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python_字符串格式化输出相关的知识,希望对你有一定的参考价值。

 1. %

(1)通用格式:%[(name)][flags][width][.precision]typecode

  • (name)放置字典的键;flags有‘+‘(显示正负号),‘-‘(左对齐),‘0‘(补零);width表示整体宽度;precision表示小数点后位数
  • 可以用*来指定width和precision

(2)格式符

格式符(typecode) 意义
s 字符串(或任何对象)
r s,但使用repr(输出带引号),而不是str
c ASCII码对应的字符
e 浮点指数(E,打印大写)
f,F 浮点十进制
g 浮点e或f(G,打印大写)
d 十进制(整数)
u 无符号(整数)
o,i,x 八进制,十进制,十六进制整数(X,打印大写)
% 转义,常量%

 

 

 

 

 

 

 

 

 

 

 

 

  

 

(3)例子

1 >>> "I‘m %(name)s.I‘m %(age)d years old." % {name‘:Bunny‘, age‘:20}
2 "I‘m Bunny.I‘m 20 years old."
3 >>> %s--%r‘ % (Hello‘,Hello)
4 "Hello--‘Hello‘"
5 >>> x = 1.23456
6 >>> %+e...%-10.3E...%0*.*f‘ %(x, x, 8, 2, x)
7 +1.234560e+00...1.235E+00 ...00001.23

 

2. format

 (1)通用格式:{fieldname|conversionflag:[[fill]align][sign][#][0][width][.precision][typecode]}

  • fieldname可以是键或索引;conversionflag可以是r、s或a(repr, str, ascii)
  • fill是填充的字符,默认是空格;align有‘<‘(左对齐),‘>‘(右对齐),‘^‘(居中对齐),‘=‘(只应用于数字,可用‘>‘代替)
  • sign有‘+‘(显示正负号),‘-‘(与不加‘-‘一致),空格(正数前面留空格);加#,会使输出带进制前缀
  • width和.precision之间可以加‘,‘,作为千位分隔符,表示金额

(2)格式符:与%格式化中的类似,区别在于多了‘b‘(二进制整数)和‘%‘(百分比),另外使用唯一的‘d‘表示十进制整数(而不是‘i‘或‘u‘)

(3)例子

1 >>> "I‘m {name}.I‘m {info[age]} years old.".format(name=Bunny, info=dict(age=20))
2 "I‘m Bunny.I‘m 20 years old."
3 {0:+<+8}...{0:>-08}...{0:0^ 8}...{1:=#8x}...{1:12,.2%}.format(3.14, 100)
4 +3.14+++...00003.14...0 3.1400...0x    64...  10,000.00%

 时间格式化

1 >>> import datetime
2 >>> d = datetime.datetime(2010, 7, 4, 12, 15, 58)
3 >>> {:%Y-%m-%d %H:%M:%S}.format(d)
4 2010-07-04 12:15:58

 

3. format的变形用法

1 >>> salary = 9999.99
2 >>> fMy salary is {salary:.0f}
3 My salary is 10000

 

以上是关于Python_字符串格式化输出的主要内容,如果未能解决你的问题,请参考以下文章

在 Python 格式(f-string)字符串中,!r 是啥意思? [复制]

python格式化输出

python 格式化输出

python_格式化输出%

python3.5中的格式化输出

Python基础 | 字符串操作