你好🖖,我是简讯!一枚野生程序员。热爱编程,但目前的工作与编程毫无关系。
正在尝试各种副业,目前有做:
红包封面商城:如何利用红包封面打造副业
购物平台赚取佣金:利用淘宝京东等平台优惠券赚取佣金
编辑器使用 Neovim 多一点,如果你也喜欢使用 Nvim,我们可以一起交流。 我的 Nvim
配置:https://github.com/alpha87/nvim。
个人公众号经常会分享一些编程相关的文章,还有一些我已经操作过可以实际上手的副业项目。欢迎关注!
公主号:爱生活爱扣钉
print()
函数可以说是我们接触 Python 编程用到的第一个函数,初学 Python,想必我们都写过这样一行代码:
print("Hello, World!")
但是慢慢的,print()
函数大多数情况已经成为我们的“日志打印”工具了。这篇文章将介绍几个 print()
函数不为人知的用法,看看你用过或者了解几个?
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。
一般情况下 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
关键字参数来控制打印内容后面的内容。
输出不只有黑白色,如果我们需要彩色的打印方式,可以尝试用下列代码来实现:
from colorama import Fore
print(Fore.RED + 'apple')
print(Fore.BLUE + 'orange')
print(Fore.GREEN + 'pear')
如果代码报错,需要先用 pip install colorama
安装第三方 colorama Python 库。
如果我们不想使用 colorama 来实现彩色打印,我们可以这样写,不过可能比较麻烦一些,因为你需要了解每种颜色的 ANSI 转义字符。
print('\x1b[31mapple')
print('\x1b[34morange')
print('\x1b[32mpear')
我们打印出来的奇怪东西实际上是 ANSI 转义字符,代表颜色。而 colorama 其实只是将它们存储起来,这样我们就不用经常查找了。只要我们知道正确的 ANSI 转义字符,我们就能打印出彩色的字符串,而 colorama 只是让我们的编码变得更轻松。
如果我们打印一串字符,但是一段时间或者一些条件下,我们想取消打印,该如何操作?
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
清除光标所在的整行,他们相加从而取消打印一整行。
pprint
模块提供了“美化打印”任意 Python 数据结构的功能,这种美化形式可用作对解释器的输入。
下面的图片直观的解释了 print()
和 pprint()
的区别。美化了输出。