python笔记-格式化输出(%和format的用法)

2018-06-26 146次浏览 发表评论

常见的占位符

占位符 替换内容
%d 整数
%f 浮点数
%s 字符串,可以把任何数据类型转换为字符串
%x 十六进制整数
%? 有几个占位符

其中,格式化整数和浮点数还可以指定是否补0和整数与小数的位数:

print('Hi, %s, you have $%d.' % ('Michael', 1000000))
Hi, Michael, you have $1000000.

print('%d-%02d' % (3, 1))
3-01

print('%.2f' % 3.1415926)
3.14

format()

另一种格式化字符串的方法是使用字符串的format()方法,它会用传入的参数依次替换字符串内的占位符{0}{1}......

基本用法

  1. 不带编号,即{}
  2. 带数字编号,可调换顺序,即{1}{2}
  3. 带关键字,即{a}{tom}
# 不带字段
print('{} {}'.format('hello', 'world'))
hello world

# 带数字编号
print('{0} {1}'.format('hello', 'world'))
hello world

# 打乱顺序
print('{0} {1} {0}'.format('hello', 'world'))
hello world hello

print('{1} {1} {0}'.format('hello', 'world'))
world world hello

# 带关键字
print('{a} {tom} {a}'.format(tom='hello', a='world'))
world hello world

进阶用法

  1. <(默认)左对齐、>右对齐、^中间对齐、=(只用于数字)在小数点后进行补齐。
  2. 取位数{:4s}{:.2f}等。
# 默认左对齐
print('{} and {}'.format('hello', 'world'))
hello and world

# 取10位左对齐,取10位右对齐
print('{:10s} and {:>10s}'.format('hello', 'world'))
hello      and      world

# 取10位中间对齐
print('{:^10s} and {:^10s}'.format('hello', 'world'))
hello    and   world   

# 取2位小数
print('{} is {:.2f}'.format(1.123,1.123))
1.123 is 1.12

# 取2位小数,右对齐,取10位
print('{0} is {0:>10.2f}'.format(1.123))
1.123 is       1.12

评论

随便说点,聊聊天~