python格式化输出居中对齐_python格式化输出对齐补充填充(%,format,函数三种方式)…

python格式化输出对齐补充填充

文章目录

1、%占位符格式化字符串输出

2、使用format函数格式化字符串输出

3、使用str相关方法格式化字符串

1、%占位符格式化字符串输出

age=18

name='SuperBoy'

height=1.75

# 格式化整数

print('My age is %d'%age)

# 也可以格式化时进行转换

print('My age is %s'%age)

# 使用多个占位符

print('name:%s,age:%d'%(name,age))

# 对齐输出:name右对齐,站位20个字符,不足的补充空格。age 使用左对齐占位6个字符,不足的补充0

print('name:%20s,age:%06d'%(name,age))

# 对齐输出:name左对齐,站位20个字符,不足的补充空格。age 使用左对齐占位6个字符,不足的补充空格

print('name:%-20s,age:%6d'%(name,age))

# 格式化输出浮点数,保留1位小数,最少占位3个

print('my height is %3.1f'%height)

结果:

My age is 18

My age is 18

name:SuperBoy,age:18

name:????????SuperBoy,age:000018

name:SuperBoy????????,age: 18

my height is 1.8

2、使用format函数格式化字符串输出

str1='1st_format'

str2='2nd_string'

width=30

s_tuple=(str1,str2)

s_list=[str1,str2]

s_dict=dict(str1='1st_format',str2='2nd string')

#30表示总长度30,*表示用*填充不足的部分

print('1.{:*^30}'.format(str1)) #居中对齐

print('2.{:*>30}'.format(str1)) #右对齐

print('3.{:*<30}'.format(str1)) #左对齐

# 按顺序读取各个参数

print('4.str1:{:>30},str2:{}'.format(str1,str2))

# 按位置读取各个参数

print('5.str2:{1:>30},str1:{0}'.format(str1,str2))

# 占位宽度以变量形式根据参数位置加入

print('6.str2:{2:>{1}},str1:{0}'.format(str1,width,str2))

# 占位宽度以变量按顺序加入

print('7.str1:{:>{}},str2:{}'.format(str1,width,str2))

# 支持元组和列表

print('8.str2:{1:>30},str1:{0}'.format(*s_tuple))

print('9.str2:{1:>30},str1:{0}'.format(*s_list))

# 通过字典关键字

print('10.str2:{str2:>30},str1:{str1}'.format(**s_dict))

# 直接format元组

print('11.str1,str2:{}'.format(s_tuple))

# 直接format字典

print('12.s_dict:{}'.format(s_dict))

#在Python3.6中加入了 f-strings 新特性 :

print(f'13.str1:{str1},str2:{str2}')

结果:

1.**********1st_format**********

2.********************1st_format

3.1st_format********************

4.str1: ?????????1st_format,str2:2nd_string

5.str2:?????????2nd_string,str1:1st_format

6.str2:?????????2nd_string,str1:1st_format

7.str1:?????????1st_format,str2:2nd_string

8.str2:?????????2nd_string,str1:1st_format

9.str2:?????????2nd_string,str1:1st_format

10.str2:?????????2nd string,str1:1st_format

11.str1,str2:(‘1st_format’, ‘2nd_string’)

12.s_dict:{‘str1’: ‘1st_format’, ‘str2’: ‘2nd string’}

13.str1:1st_format,str2:2nd_string

3、使用str相关方法格式化字符串

主要用到str.zfill(),str.ljust(),str.rjust(),str.center()方法

str1 = 'format'

width = 30

# 字符串左侧对齐, 右侧补*:

print(str1.ljust(width, '*'))

# 字符串右侧对齐, 左侧补*:

print(str1.rjust(width, '*'))

# 字符串居中对齐, 两侧侧补*:

print(str1.center(width, '*'))

# 字符串右侧对齐, 左侧补0:

print(str1.zfill(width))

# 当len(str1)>width时,输全部字符串

结果:

format************************

************************format

************format************

000000000000000000000000format

PS:csdn的makdown编辑器的原因,需要使用转义字符来输出*号和空格,所以三个结果是示意性的结果,和实际结果有差别。