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