关于Python print()函数的完整指南


关于Python print()函数的完整指南

让我们通过一些例子来详细探讨 Python print() 函数。

你第一次接触 Python 的时候,很可能就包括了 print() ,可能是以 “Hello, World!” 程序的形式。Python print() 函数是一个基本的函数,你可以很快理解并开始使用。

但是它的内容比你看到的更多。在这篇文章中,我们将通过解释所有参数的工作原理和展示一些例子来详细探讨这个函数。

关于 Python print() 函数的工作原理,官方文档中有一个很好的参考。该函数接受几个参数,如下图所示,包括它们的默认值:

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

我们已经在另一篇文章中谈到了 print() 函数。在下面的章节中,我们将逐一介绍参数,并向你展示使用该函数所需的一切知识,以充分发挥其潜力。对于那些刚接触 Python 的人来说,可以看看这个迷你的轨道,其中包括互动的编码挑战来加速你的学习。

*objects

要打印的东西由第一个参数 *objects 表示,基本上可以是任何东西。它通常是一个字符串,但也可以是一个整数、一个浮点数、一个变量、一个列表或一个字典,等等。

由于打印字符串很常见,值得一提的是,字符串可以用单引号('string')或双引号("string")来定义。你的个人偏好和使用情况决定了使用哪一种。为了证明这一点,请考虑以下两个例子:

>>> string = 'She asked "How do you print quotes?"'

>> string = "It's about time to program something"

如果你’有兴趣学习更多关于使用字符串的工作,请查看本课程。我们还有一篇文章告诉你如何索引和切分字符串。

Python print() 函数最基本的用法是简单地打印一个字符串:

>>> print("Hello, World!")

未指定的关键字采用它们的默认值,这些默认值已在上面的介绍中列出。

正常的字符串操作可以在函数中使用。例如,你可以将一个字符串乘以一个整数,如图所示:

>>> print("print this twice " * 2)

在这一点上,我们有必要谈谈字符串的格式化。老式的方法是使用 % 格式;然而,这并不值得推荐,因为它在处理较长的字符串时变得有些麻烦。

更好的方法是使用 str.format(),其中替换字段用大括号表示。让我们定义一些变量并在字符串中打印它们:

>>> name = "Mary"

>> age = 20

>> print("{} is {} years old".format(name, age))Mary is 20 years old

关于更多字符串格式化的例子,官方文档是一个很好的参考。你也可以使用这个方法来打印表格数据–我们已经就这个主题写了一篇单独的文章。

另一种格式化方法被称为f-string格式化。它与上面的例子类似,但它更紧凑一些。使用上述相同的变量,我们可以写道:

>>> print(f"{name} is {age} years old")Mary is 20 years old

如果你想打印像列表或数组这样的可迭代对象,使用带星的表达式有助于解压可迭代对象并很好地打印它:

>>> print(*[1, 2, 3, 4])1 2 3 4

尝试打印不带星的相同列表,看看你得到什么。此外,尝试打印由内置函数range()给出的序列,包括星号和不包括星号。我们将在下一节看到更多带星的表达式的例子。

sep

Python print() 函数的第二个参数定义了分隔符。如果在第一个参数中给出了多个对象,那么 sep 定义了在它们之间放置的分隔符。在前一个例子的基础上,我们将分隔符定义为换行符:

>>> print(*[1, 2, 3, 4], sep="\n")1234

这个参数的另一个用例是很好地打印一些结果。我们可以定义一个变量并在一个人类可读的句子中打印它的值,就像这样:

>>> result = 10

>> print("Result of experiment", result, sep=" is ")Result of experiment is 10

这里,字符串 "Result of experiment "和变量result都是*objects参数,sep的值被打印在它们之间。

end

end关键字允许你定义一些东西,在输出的最后自动打印。它的默认值是换行符 ("\n")。

严格来说,Python print() 函数的参数都不是必需的。如果没有给出参数,就会打印结束关键字,默认是换行符。这是非常直接的,但是为了完整起见,让我们在前面的例子的基础上,在结尾处添加一个感叹号:

>>> print("Result of experiment", result, sep=" is ", end="!")实验结果是 10!file

没有指定这个关键字,在 Python 中默认是写到终端。上面链接的文档说默认值是 sys.stdout,这意味着在 Python 中 “写到标准输出”。这是一个内置的文件对象,它将任何写入它的东西 (用 .write() 方法) 显示到控制台。如果你想在 Python 中写到一个文件,用 file 关键字指定你自己的文件对象。

在期待最后的例子时,让我们定义以下字符串,并将其保存到文件 “flush_demo.py” (别担心 – 这一切很快就会有意义):

open_file = open('flush_demo. py', 'w')

>> string = "import time/nfor num in range(10, 0, -1):\n\tprint(str(num)+' ', end='', flush=True)\n\ttime.sleep(1)\nprint('\nCountdown finished!')"

>> print(string, file=open_file)>> open_file.close()

现在,进入你当前工作目录,你看到我们已经创建的新文件。这个字符串实际上是一个程序,我们很快就会用到它。

需要注意的是,你需要以写模式定义文件对象,然后在最后关闭它。如果你想了解更多关于在 Python 中写入文件的细节,我们有一篇文章涵盖了这一点。

flush

flush 关键字是最近添加到 print() 函数中的。它接受一个布尔值,要么是 True,要么是 False。

通常,输出到文件或控制台的数据是被缓冲的。缓冲区只有在满了或达到换行时才会被 "刷新"(或打印)。将这个关键字设置为 "True",可以在缓冲区满了或遇到换行符之前强行冲刷缓冲区。

为了看到这个动作,我们需要使用我们在前面例子中刚刚创建的文件。要运行这个脚本,请打开终端,导航到正确的目录,并运行:

>>> python flush_demo.py

你看到我们已经创建了一个倒计时钟。在flush=True的情况下,在循环中打印完每个数字后,缓冲区会被刷新,然后程序会睡眠1秒。

致您,来自Python print() 函数

为了总结这篇关于Python print() 函数的文章,这里有一条个性化的感谢信息。只需复制并粘贴到你的控制台:

>>> print(f "Thanks {input('Enter your name: ')}", end=", and Goodbye!")


本文标签

热门标签

会员评论