让我们通过一些示例详细探索 Python print() 函数。它的功能比你想象的还要多!
您第一次接触 Python 时很有可能会遇到
print()
,可能是“Hello, World!”程序。Python
print()
函数是一种基本函数,您可以很快理解并开始使用。
但它远不止表面上看到的那么简单。在本文中,我们将通过解释所有参数的工作原理并向您展示一些示例来详细探索此功能。
有关 Python
print()
函数如何工作的一个很好的参考资料可以在
官方文档
。该函数接受几个参数及其默认值,如下所示:
print(*objects, sep=' ', end= '\n', file=sys.stdout, flush=False)
另一篇文章
print()
提到过该
函数
。在下面的部分中,我们将逐一介绍参数,并向您展示充分利用该函数所需了解的一切。对于那些刚接触 Python 的人,请查看
这个迷你轨道
,其中包括交互式编码挑战,以加速您的学习。
*对象
要打印的内容由第一个参数表示
*objects
,基本上可以是任何东西。它通常是一个字符串,但可能是整数、浮点数、变量、列表或字典等。该
print()
函数还可以接受多个对象。
由于打印字符串很常见,因此值得一提的是,字符串可以用单引号 ('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 字符串格式化。它与上面的例子类似,但更紧凑一些。使用上面的相同变量,我们可以这样写:
>>> print(f"{name} is {age} years old")
Mary is 20 years old
如果要打印可迭代对象(如列表或数组),使用带星号的表达式有助于解开可迭代对象并很好地打印它:
>>> print(*[1, 2, 3, 4])
1 2 3 4
尝试打印不带星号的相同列表,看看会得到什么。此外,尝试打印内置函数给出的序列,
range()
带星号和不带星号。我们将在下一节中看到更多带有星号表达式的示例。
九月
Python
print()
函数的第二个参数定义分隔符。如果将多个对象作为第一个参数给出,则 sep 定义在它们之间放置什么分隔符。基于上一个示例,我们将分隔符定义为换行符:
>>> print(*[1, 2, 3, 4], sep="\n")
1
2
3
4
此参数的另一个用例是很好地打印一些结果。我们可以定义一个变量并以人类可读的句子打印其值,如下所示:
>>> result = 10
>>> print("Result of experiment ", result, sep=" is ")
Result of experiment is 10
这里,字符串
"Result of experiment"
和变量
result
一起作为参数
*objects
,并且 sep 的值打印在它们之间。
结尾
end 关键字允许您定义在输出结束时自动打印的内容。其默认为换行符 (" ")。
,Python 函数的任何参数都不
print()
是必需的。如果没有给出参数,则会打印 end 关键字,默认情况下为换行符。这非常简单,但为了完整起见,让我们在前面的示例的基础上,在末尾添加一个感叹号:
>>> print("Result of experiment", result, sep=" is ", end="!")
Result of experiment is 10!
文件
如果不指定此关键字,默认情况下会将内容写入 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
是最近添加到
print()
函数中的。它接受布尔值,
True
或者
False
.
通常,输出到文件或控制台都是缓冲的。只有当缓冲区已满或遇到换行符时,才会“刷新”(或打印)缓冲区。将此关键字设置为 True 会在缓冲区已满或遇到换行符之前强制刷新缓冲区。
要查看实际效果,我们需要使用上例中刚刚创建的文件。要运行此脚本,请打开终端,导航到正确的目录,然后运行:
>>> python flush_demo.py
您会看到,我们创建了一个倒计时时钟。使用
flush=True
,在循环中打印每个单独的数字后都会刷新缓冲区,然后程序会休眠 1 秒。使用
flush=False
,程序会休眠 10 秒,并且仅在程序结束时刷新缓冲区,一次性打印所有数字序列。
来自 Python print() 函数
为了结束这篇关于 Python print() 函数的文章,这里有一条个性化的感谢信息。只需将其复制并粘贴到您的控制台中即可:
>>> print(f"Thanks {input('Enter your name: ')}", end=", and Goodbye!")
发表评论 取消回复