🍕Python 中的 print 用法有哪些?🍖

print() 函数可以说是我们接触 Python 编程用到的第一个函数,初学 Python,想必我们都写过这样一行代码:

print("Hello, World!")

但是慢慢的,print() 函数大多数情况已经成为我们的“日志打印”工具了。这篇文章将介绍几个 print() 函数不为人知的用法,看看你用过或者了解几个?

sep

print(1, 2, 3)
# 1 2 3

print(1, 2, 3, sep='-')
# 1-2-3

print(1, 2, 3, sep='|||')
# 1|||2|||3

我们可以使用 sep 关键字参数来控制 print() 中要打印的内容之间用什么字符或者字符串分隔。

使用 print() 写入文件

with open('test.txt', 'a') as f:
  print('apple', file=f)

在这里,我们的 print() 函数不会将苹果输出到终端,而是写入文本文件 test.txt。

end

一般情况下 print() 函数打印结果是这样的:

print('apple')
print('orange')
print('pear')

# apple
# orange
# pear

但是如果在结尾添加了 end 参数,那么输出结果就会大不相同:

print('apple', end=' ')
print('orange', end=' ')
print('pear', end=' ')

# apple orange pear

print('apple', end='---')
print('orange', end='---')
print('pear', end='---')

# apple---orange---pear---

在 print()中,默认使用换行符来结尾,我们可以使用 end 关键字参数来控制打印内容后面的内容。

使用 Colorama 进行彩色输出

输出不只有黑白色,如果我们需要彩色的打印方式,可以尝试用下列代码来实现:

from colorama import Fore

print(Fore.RED + 'apple')
print(Fore.BLUE + 'orange')
print(Fore.GREEN + 'pear')

取消打印内容

import time

CURSOR_UP = '\033[1A'
CLEAR = '\x1b[2K'

print('apple')
print('orange')
print('pear')

time.sleep(3)

print((CURSOR_UP + CLEAR), end='')
print('pineapple')

# apple
# orange
# pineapple

可以自己创建文件尝试一下这种写法,一开始会打印 apple,orange 和 pear,但是 3 秒之后,pear 不见了,继续打印 pineapple。CURSOR_UP 将光标上移一行,CLEAR 清除光标所在的整行,他们相加从而取消打印一整行。

总结

print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
 
Prints the values to a stream, or to sys.stdout by default.
Optional keyword arguments:
file:  a file-like object (stream); defaults to the current sys.stdout.
sep:   string inserted between values, default a space.
end:   string appended after the last value, default a newline.
flush: whether to forcibly flush the stream.