Python print()的用法(附带实例)
Python print()函数用法
print() 函数的语法格式如下:
print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)
- *objects:要输出的对象,可以是多个,用逗号分隔。
- sep:分隔符,多个对象之间的连接字符,默认是空格。
- end:结束符,输出后的追加字符,默认是换行符 \n。
- file:输出目标,默认是 sys.stdout(标准输出),可以重定向到文件等。
- flush:是否立即刷新输出缓冲区,默认 False。
参数 file 和 flush 是带有默认值的,这意味着使用 print() 函数时可以不为它们手动传递参数(后续会讲解这两个参数的用法)。
sep 参数控制多个对象之间的分隔符,默认是空格,可以改为其他字符,例如逗号、破折号等:
print("apple", "banana", "orange", sep=", ") print("a", "b", "c", sep="-")
运行上述代码,输出结果:
apple, banana, orange a-b-c
end 参数控制输出后的结束字符,默认是换行符 \n
,常用于连续输出和自定义格式。通过修改,可以让输出不换行或添加其他字符:
print("Hello", end=" ") print("World") print("One", end="---") print("Two")
运行上述代码,输出结果:
Hello World One---Two
注意,Python 3.x 要求在使用 print() 函数时必须加上小括号
( )
,但是以前的 Python 2.x 版本可以省略小括号,例如:
print 198 print "Hello World!"; #末尾也可以加上分号 print "Pyhon教程:http://c.biancheng.net/python/"我建议大家加上小括号,这样写比较容易理解,而且兼容性好。
Python print()应用场景
1) 输出单个对象
print() 可以输出任何类型的单个对象,包括字符串、数字或变量:
print("Python") # 输出字符串 print(42) # 输出整数 print(3.14) # 输出浮点数 name = "Alice" print(name) # 输出变量
每调用一次 print()
,默认会在末尾添加换行符 \n
,因此连续调用会分行显示。
2) 输出多个对象
可以用逗号分隔多个对象,它们会依次输出,默认用空格连接:
print("Hello", "World", 2023)
运行上述代码,输出结果:
Hello World 2023
3) 格式化输出
print() 常与字符串格式化结合使用,以更标准地输出内容。Python 提供了多种格式化方法:
① 自 3.6 版本及以上,Python 支持直接在字符串中嵌入变量。例如:
name = "Bob" age = 25 print(f"姓名:{name},年龄:{age}")
注意:要在字符串 ""
之前加 f
。
运行上述代码,并输出结果:
姓名:Bob,年龄:25
② format() 方法通过占位符 {}
插入值:
x = 3.14159 print("圆周率是 {}".format(x))
运行上述代码,输出结果:
圆周率是 3.14159
③ 使用 % 运算符进行格式化:
score = 95 print("得分:%d" % score)
运行上述代码,并输出结果:
得分:95
4) 控制输出精度
对于数字,尤其是浮点数,可以通过格式化控制小数位数。例如,使用在“”
前加 f
或 format():
pi = 3.1415926f print(f"PI = {pi:.2f}") print("PI = {:.3f}".format(pi))
运行上述代码,输出结果:
PI = 3.14 PI = 3.142
5) 使用file参数输出到文件
默认情况下,print() 输出到屏幕(sys.stdout
),可以用 file 参数将输出重定向到文件:
with open("output.txt", "w") as f: print("写入文件", file=f)
运行后,"写入文件" 会被写入 "output.txt" 文件,而不是显示在屏幕上。
6) 使用flush参数强制刷新
flush 参数默认是 False
,表示输出可能被缓冲。如果设为 True
,会立即刷新缓冲区,确保输出即时显示。主要应用于实时进度显示、日志或调试信息。例如:
import time for i in range(3): print(i, end=" ", flush=True) time.sleep(1) # 每秒输出一次
运行上述代码,并输出结果:每隔一秒依次显示 "0"、"1"、"2",而不是一次性输出。这是因为 flush=True 强调每次 print() 调用后立即刷新缓冲区。
总结
在 Python 中使用 print() 函数时,还有以下几点需要注意:-
默认换行:如果不指定
end
,每次print()
都会换行; -
非字符串对象:非字符串对象会被自动转换为字符串(调用其
__str__
方法); -
Python 2 兼容性:Python 2 用
print
语句(如print "hello"
),而 Python 3 必须用函数形式。