print()函数是 Python 内置函数之一,用于输出指定的对象。它可以接受多个参数,用逗号分隔,它们将被依次输出,并且默认情况下它们之间会用空格分隔。在输出完成之后,print()函数会自动在末尾添加一个换行符。

函数语法

print(*objects, sep=' ', end='\n',
    file=sys.stdout, flush=False)

参数:

  • *objects:要输出的对象,可以有多个,用','分隔;
  • sep:输出多个对象时使用的分隔符,默认为一个空格;
  • end:输出完成之后的结束符,默认是一个换行符'\n'
  • file:内容输出到哪个文件,默认为标准输出;
  • flush:布尔值,表示是否强制刷新缓冲区,默认为False

print() 函数示例

基本用法:

print("Hello, World!")
# 多个对象用,分隔
print("Hello", "World")

# 打印变量
name = "Lee"
print("Hello,", name)

# 输出列表
lst = ['a','b','c']
print(lst)
print(*lst)

程序输出

Hello, World!
Hello World
Hello, Lee
['a', 'b', 'c']
a b c

输出多个对象时,指定sep分隔符:

print("A", "B", "C")           # 默认输出: A B C
print("A", "B", "C", sep='')   # 输出: ABC
print("A", "B", "C", sep='-')  # 输出: A-B-C

使用end结束符:

print(1)  # 默认会换行
print(2)
print(3)

print('a',end='|')  # 指定结束符
print('b',end='-')
print('c')

程序输出

1
2
3
a|b-c

将内容输出到文件:

file1 = open('output.txt', 'w')

# 不会显示到终端,而是写入到文件
print("Hello, world!", file=file1)

file1.close()

使用flush强制刷新缓冲区:

缓冲区刷新规则:

  • 终端输出默认使用行缓冲,遇到换行符就刷新
  • 文件输出默认使用全缓冲,缓冲区满或关闭时才刷新
import time

for i in range(5):
    # 替换默认的换行符
    # 使缓冲区不会立即刷新
    # 默认不立即显示
    print(i,end=',')  
    time.sleep(1)
    
print("done!")

for i in range(5):
    # 立即刷新缓冲区
    print(i,end=',',flush=True)  
    time.sleep(1)
    
print("done!")

输出有颜色的内容

对于支持 ANSI 转义序列的终端,都可以为内容设置颜色;

# 基础颜色示例
print("\033[31m红色文字\033[0m")
print("\033[32m绿色文字\033[0m")
print("\033[33m黄色文字\033[0m")
print("\033[34m蓝色文字\033[0m")
print("\033[35m紫色文字\033[0m")
print("\033[36m青色文字\033[0m")
print("\033[37m白色文字\033[0m")
print("\033[90m灰色文字\033[0m")
有颜色的输出
程序运行效果

更多效果请查阅 ANSI 转义序列格式。