Bootstrap

python格式化输出方法汇总

Python字符串格式化输出,在python编程中,是一个非常重要的知识点,掌握了它,你就可以输出各种格式要求的文本内容,并生成相关要求的文件。下面介绍Python格式化字符串的四种方式,并给出了比较详尽的参数说明和举例,希望能够帮助到大家,以下是详细的内容:

一、%号
这是最早的字符格式化方法。字符串格式化使用与 C语言 中 sprintf 函数一样的语法。如果您没有使用过C语言,也没有关系,看看下面的表格参数的描述和例子也就明白了。

基本语法是:字符串 % ()

python字符串格式化符号:

符 号

描述

%c

格式化字符及其ASCII码

%s

格式化字符串

%d

格式化整数

%u

格式化无符号整型

%o

格式化无符号八进制数

%x

格式化无符号十六进制数

%X

格式化无符号十六进制数(大写)

%f

格式化浮点数字,可指定小数点后的精度

%e

用科学计数法格式化浮点数

%E

作用同%e,用科学计数法格式化浮点数

%g

%f和%e的简写

%G

%f 和 %E 的简写

%p

用十六进制数格式化变量的地址


————————————————

                     

格式化操作符辅助指令:

符号

功能

*

定义宽度或者小数点精度

-

用做左对齐

+

在正数前面显示加号( + )

<sp>

在正数前面显示空格

#

在八进制数前面显示零('0'),在十六进制前面显示'0x'或者'0X'(取决于用的是'x'还是'X')

0

显示的数字前面填充'0'而不是默认的空格

%

'%%'输出一个单一的'%'

(var)

映射变量(字典参数)

m.n.

m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话)

注:默认是右对齐。

————————————————

1、按照顺序格式化字符串
当需格式化的字符串或者数字过多时,位置搞混估计有很大的可能。举例如下:

a = '张三'

b = '李四'

c = 3.1415926

print('%s和%s是兄弟!π=%5.2f' % (a, b , c)) # 张三和李四是兄弟!π= 3.14

print("%s和%s是兄弟!π=%5.2f" % ("张三", '李四', 3.14151926)) # 张三和李四是兄弟!π= 3.14

2、通过字典方式格式化字符串
通过字典方式格式化,打破了位置带来的限制与困扰。

如:%4d格式化数据,输出整数位4位,右对齐数字不足用空格代替。

print("我叫%(name)s,年龄%(age)4d岁" % {"name": '张三', "age": 20}) # 我叫张三, 年龄 20岁

kwargs = {"name": "张三", "age": 18}

print("我叫%(name)s, 年龄%(age)d岁" % kwargs) # 我叫张三, 年龄18岁

二、str.format 函数
format函数,它增强了字符串格式化的功能。str.format的格式化字符串的方式比%在性能和灵活性上要好很多。好处是format 函数可以接受不限个数的参数,而且位置可以不按顺序。

基本语法是通过 {} 和 : 来代替前面的 % 。

1、使用位置参数格式化
按照位置一一对应,这一点和%一样。

print("{}和{}是好朋友!".format('张三', '李四')) # 张三和李四是好朋友!

2、使用数字索引格式化
使用索引取对应位置的值,这是位置可以任意,按照需要排列。

print('{0}{0}{1}{0}'.format('张三', '李四')) # 张三张三李四张三

3、使用关键字参数格式化
通过关键字的方式格式化,打破了位置带来的限制与困扰。这一点也和%类似。

print("我叫{name}, 年龄{age}岁。".format(age=18, name="张三"))

4、使用字典格式化
通过字典方式的方式格式化,也能达到关键字参数的效果。

kwargs = {'name': '张三', "age": 18}

print("我叫{name}, 年龄{age}岁。".format(**kwargs)) # 使用**进行解包操作

注意:**kwargs,使用**进行解包操作,这点非常重要。新手容易不写**,而程序报错

5、字符格式化
先取到值(使用数字索引),然后在冒号后面设定填充格式:[填充字符][对齐方式][宽度]

^, <, > 分别是居中、左对齐、右对齐。后面带宽度, : 号后面带填充的字符,只能是一个字符,不指定则默认是用空格填充。

需要注意的是,每个汉字算一个字符。这一点和C语言不一样的,C语言中,一个汉字计算为2个字符。举例如下:

#*<20: 意思是: 左对齐,总共20个字符,不足部分用*号填充

print("我叫{0:*<20},年龄 {1:*<10}岁!".format("张三", 18)) # 我叫张三******************,年龄 18********岁!

# *>10: 右对齐,总共10个字符,不足部分用*填充

print("我叫{0:*<10}".format("张三")) # 我叫张三********

# *^18: 居中,总共18个字符,不足部分用*填充

print("我叫{0:*^18}".format("张三")) # 我叫********张三********

# ^20: 居中,总共20个字符,不足部分用空白填充

print("我叫{0:^20}".format("张三")) # 我叫 张三
————————————————

                     

             

;