当我们在Python中使用print()
函数输出结果时,经常需要进行格式化输出,让输出的内容更直观,易于理解。本篇攻略将详细讲解有关Python中print格式化输出的问题。
基本格式化方式
Python中使用字符串格式化语法来格式化print()
函数的输出信息。格式化语法使用%
字符作为标记,后面跟着一个或多个格式化字符,用来控制输出信息的样式。
例如,我们可以使用%s
格式化字符来输出字符串变量,使用%d
格式化字符来输出整数变量:
name = "Tom"
age = 20
print("My name is %s, and I'm %d years old." % (name, age))
输出结果为:
My name is Tom, and I'm 20 years old.
在上面的代码中,我们使用了%s
格式化字符来输出字符串变量name
,使用了%d
格式化字符来输出整数变量age
。注意,在%
字符后面,用小括号括起来的部分表示一个元组(tuple),其中的元素按照%
字符后面的顺序依次传递给格式化字符串。
指定输出宽度和对齐方式
我们还可以使用格式化字符来指定输出的宽度和对齐方式。例如,我们可以使用%5s
格式化字符来输出一个宽度为5的字符串,使用%-5s
格式化字符来输出一个左对齐的宽度为5的字符串,使用%5d
格式化字符来输出一个宽度为5的整数,使用%-5d
格式化字符来输出一个左对齐的宽度为5的整数:
score = 90
print("Your score is %5d." % score)
print("Your score is %-5d." % score)
print("Your name is %5s." % name)
print("Your name is %-5s." % name)
输出结果为:
Your score is 90.
Your score is 90 .
Your name is Tom.
Your name is Tom .
在上面的代码中,我们使用了%5d
格式化字符来输出一个宽度为5的整数变量score
,使用了%-5d
格式化字符来输出一个左对齐的宽度为5的整数变量score
,使用%5s
格式化字符来输出一个宽度为5的字符串变量name
,使用%-5s
格式化字符来输出一个左对齐的宽度为5的字符串变量name
。
使用format()方法进行格式化输出
除了使用%
字符进行格式化输出外,我们还可以使用format()
方法进行格式化输出。format()
方法使用花括号{}
作为标记,后面跟着一个或多个格式化字符串,用来控制输出信息的样式。
例如,我们可以使用{}
标记来代替原来的%s
标记,使用{:d}
标记来代替原来的%d
标记,同时还可以使用{:5d}
和{:<5d}
标记来代替原来的%5d
和%-5d
标记:
print("My name is {}, and I'm {:d} years old.".format(name, age))
print("Your score is {:5d}.".format(score))
print("Your score is {:<5d}.".format(score))
print("Your name is {:5s}.".format(name))
print("Your name is {:<5s}.".format(name))
输出结果为:
My name is Tom, and I'm 20 years old.
Your score is 90.
Your score is 90 .
Your name is Tom.
Your name is Tom .
在上面的代码中,我们分别使用{}
和{:d}
标记来代替原来的%s
和%d
标记,使用{:5d}
和{:<5d}
标记来代替原来的%5d
和%-5d
标记。
注意事项
在进行格式化输出时,需要注意以下几点:
- 单个字符串变量时不需要使用元组;
- 元组中的元素数量必须与格式化字符串中的格式化标记一致;
- 使用
{}
标记进行格式化输出时,花括号中的数字标记可以省略。
示例说明
下面给出两个示例,分别是按照指定宽度输出带小数的浮点数,以及按照指定对齐方式输出多个字符串变量:
f1 = 3.1415926
f2 = 2.7182818
print("f1 = {:7.3f}, f2 = {:7.3f}".format(f1, f2))
输出结果为:
f1 = 3.142, f2 = 2.718
在上面的代码中,我们使用{:7.3f}
标记来输出一个宽度为7、小数点后保留3位的浮点数变量。
s1 = "Python"
s2 = "Ruby"
s3 = "Java"
print("{:<10}{:^10}{:>10}".format(s1, s2, s3))
输出结果为:
Python Ruby Java
在上面的代码中,我们使用{:<10}
标记来输出一个左对齐的宽度为10的字符串变量s1
,使用{:^10}
标记来输出一个居中对齐的宽度为10的字符串变量s2
,使用{:>10}
标记来输出一个右对齐的宽度为10的字符串变量s3
。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python中print格式化输出的问题 - Python技术站