format格式化输出、字符串对齐

1.按进制格式输出

%o  ---- oct 八进制
%d  ---- dec 十进制
%x  ---- hex  十六进制

示例

print('%o' %  20)    ---- 24
print('%d' % 20)     ---- 20
print('%x' % 20)     ---- 20

2. 浮点数输出

(1) 格式化输出

%f  		----默认保留小数点后面六位有效数字
%.3f		----保留3位小数位

%e  		----默认保留小数点后面六位有效数字,指数形式输出
%.3e	    ----保留3位小数位,使用科学计数法

%g  		----在保证刘伟有效数字的前提下,使用小数方式,否则使用科学计数法
%.3g	    ----保留3位小数位,使用小数或科学计数法

示例

print('%f' % 1.11)  # 默认保留6位小数
>>>1.110000
print('%.1f' % 1.11)  # 取1位小数
>>> 1.1
print('%e' % 1.11)  # 默认6位小数,用科学计数法
>>> 1.110000e+00
print('%.3e' % 1.11)  # 取3位小数,用科学计数法
>>> 1.110e+00
print('%g' % 1111.1111)  # 默认6位有效数字
>>> 1111.11
print('%.7g' % 1111.1111)  # 取7位有效数字
>>> 1111.111
print('%.2g' % 1111.1111)  # 取2位有效数字,自动转换为科学计数法
>>> 1.1e+03

3、字符串输出

%s
%10s——右对齐,占位符10位
%-10s——左对齐,占位符10位
%.2s——截取2位字符串
%10.2s——10位占位符,截取两位字符串

示例

print('%s' % 'hello world')  # 字符串输出
>>> hello world
print('%20s' % 'hello world')  # 右对齐,取20位,不够则补位
>>>          hello world
print('%-20s' % 'hello world')  # 左对齐,取20位,不够则补位
>>> hello world        
print('%.2s' % 'hello world')  # 取2位
>>>he
print('%10.2s' % 'hello world')  # 右对齐,取2位
>>>         he
print('%-10.2s' % 'hello world')  # 左对齐,取2位
>>>  he       

4. format用法

相对基本格式化输出采用‘%’的方法,format()功能更强大,该函数把字符串当成一个模板,通过传入的参数进行格式化,并且使用大括号‘{}’作为特殊字符代替‘%’
位置匹配
  (1)不带编号,即“{}”
  (2)带数字编号,可调换顺序,即“{1}”、“{2}”
  (3)带关键字,即“{a}”、“{tom}”

示例

1. print('{} {}'.format('hello','world'))  # 不带字段
hello world
2. print('{0} {1}'.format('hello','world'))  # 带数字编号
 hello world
3. print('{0} {1} {0}'.format('hello','world'))  # 打乱顺序
 hello world hello
4. print('{1} {1} {0}'.format('hello','world'))
  world world hello
5. print('{a} {tom} {a}'.format(tom='hello',a='world'))  # 带关键字
world hello world

4.1 左中右对齐及位数补全

(1)< (默认)左对齐、> 右对齐、^ 中间对齐、= (只用于数字)在小数点后进行补齐
(2)取位数“{:4s}”、"{:.2f}"等]

示例1

1.print('{} and {}'.format('hello','world'))  # 默认左对齐
hello and world
2.print('{:10s} and {:>10s}'.format('hello','world'))  # 取10位左对齐,取10位右对齐
hello      and      world
3.print('{:^10s} and {:^10s}'.format('hello','world'))  # 取10位中间对齐
  hello    and   world  
4.print('{} is {:.2f}'.format(1.123,1.123))  # 取2位小数
1.123 is 1.12
5. print('{0} is {0:>10.2f}'.format(1.123))  # 取2位小数,右对齐,取10位
1.123 is       1.12

示例2

1.'{:<30}'.format('left aligned')  # 左对齐
'left aligned                  '
2. '{:>30}'.format('right aligned')  # 右对齐
'                 right aligned'
3. '{:^30}'.format('centered')  # 中间对齐
'           centered           '
4. '{:*^30}'.format('centered')  # 使用“*”填充
'***********centered***********'
5.'{:0=30}'.format(11)  # 还有“=”只能应用于数字,这种方法可用“>”代替
'000000000000000000000000000011'

你可能感兴趣的:(python,python,字符串,printf)