您的位置:

Python print 格式化

一、格式化输出基础

Python中print函数是我们最常用的之一,它可以直接输出文本信息。而Python的print函数还可以通过格式化方式输出更为复杂的信息。Python格式化输出的基本语法为:

print("...{}...{}...".format(var1,var2))

其中,“{}”是占位符,可以用变量或常量来替换,如上述代码中的var1和var2。

基本上所有类型的数据都可以用这种方式来格式化输出。

举个例子,比如我们定义两个变量:

name = "Tom"
age = 18 

那么我们可以使用占位符来打印出这两个变量的值:

print("My name is {}, I'm {} years old.".format(name,age))

输出结果为:

My name is Tom, I'm 18 years old.

二、常用的格式化类型

除了基本的格式化输出方式,Python的print函数还支持多种格式化类型,其中包括常用的字符串、整数、浮点数、十六进制、二进制等类型。

1.字符串类型

Python中可以使用“%s”或“%r”作为字符串类型的占位符,其中“%s”表示用字符串来替换,而“%r”表示用字符串的repr表示来替换。

例如我们有一个字符串:

str1 = "hello, world!"

那么我们可以使用下面的方式输出:

print("str1 is %s, repr(str1) is %r" % (str1, str1))

输出结果为:

str1 is hello, world!, repr(str1) is 'hello, world!'

2.整数类型

Python中可以使用“%d”或“%x”或“%X”作为整数类型的占位符,其中“%d”表示用十进制数来替换,“%x”表示用十六进制数(小写)来替换,“%X”表示用十六进制数(大写)来替换。

例如我们有一个整数:

num1 = 123

那么我们可以使用下面的方式输出:

print("num1 is %d, num1 in hex is %x, num1 in HEX is %X." % (num1,num1,num1))

输出结果为:

num1 is 123, num1 in hex is 7b, num1 in HEX is 7B.

3.浮点数类型

Python中可以使用“%f”或“%e”或“%E”作为浮点数类型的占位符,其中“%f”表示用浮点数来替换,“%e”表示用科学计数法(小写)来替换,“%E”表示用科学计数法(大写)来替换。

例如我们有一个浮点数:

num2 = 123.456789

那么我们可以使用下面的方式输出:

print("num2 is %f, num2 in scientific notation is %e, num2 in SCIENTIFIC notation is %E." % (num2,num2,num2))

输出结果为:

num2 is 123.456789, num2 in scientific notation is 1.234568e+02, num2 in SCIENTIFIC notation is 1.234568E+02.

4.其它类型

Python还支持其他类型格式化输出,比如二进制和八进制。

使用“%b”表示二进制,使用“%o”表示八进制,例如:

num3 = 98765
print("num3 is %b in binary, num3 is %o in octal." % (num3,num3))

输出结果为:

num3 is 10011001001100101 in binary, num3 is 227155 in octal.

三、格式化输出进阶

1.宽度对齐

Python的print函数还支持宽度对齐,即通过占位符来规定输出的宽度。

宽度对齐的格式为“%[填充字符][宽度]类型”,其中方括号表示可选项,填充字符可以是任意字符,比如“%5d”表示输出一个5位宽的整数,不足的部分使用空格来填充。

例如我们有一个整数:

num4 = 12345

那么我们可以使用下面的方式输出:

print("num4 is %8d" % (num4))

输出结果为:

num4 is    12345

使用“%0[宽度]类型”表示用0来填充不足的部分,例如:

print("num4 is %08d" % (num4))

输出结果为:

num4 is 00012345

2.精度限制

除了宽度对齐,Python的print函数还支持精度限制,即规定输出的小数位数。

精度限制的格式为“%.[精度]类型”,其中类型同上文所述。

例如我们有一个浮点数:

num5 = 3.14159265358979323846

那么我们可以使用下面的方式输出:

print("num5 is %.2f" % (num5))

输出结果为:

num5 is 3.14

3.名称占位符

如果我们有多个变量要传递,可以使用“{name}”的形式来表示占位符,其中name为关键字参数名。

例如我们有两个变量:

name = "Tom"
age = 20

那么我们可以使用下面的方式输出:

print("My name is {name}, I'm {age} years old.".format(name=name, age=age))

输出结果为:

My name is Tom, I'm 20 years old.

四、总结

Python的print函数提供了多种格式化输出的方式,可以让我们更加灵活地输出信息。在实际开发中,我们可以根据具体情况选择不同的占位符来进行格式化输出,同时也可以通过精度限制和宽度对齐来控制输出格式。