Python Print()函数

如果你刚刚开始使用Python, 并且想了解更多信息, 请参加srcmini的Python数据科学入门课程。
你们中的许多人在阅读本教程时可能会认为, 关于简单的Python Print函数并没有发现任何问题, 因为你们所有人都已经开始使用常青的打印Hello, World!示例来学习Python。的确, Python或就任何一种编程语言而言, Print函数都是学习特定语言时最基本, 最简单的步骤。但是, 在学习编程语言时, 有时你会倾向于专注于更高级的主题, 而很多时候却忘记了你可能几乎总是使用的简单功能的复杂性或功能。
今天的教程重点将完全放在Python的Print函数上。你将了解最被低估的功能。
让我们通过打印Hello, World!开始本教程。例。

print("Hello, World!")

Hello, World!

与Python2不需要在括号中加上括号不同, 在Python3中, 括号是必须的, 否则它将引发语法错误, 如下所示。
print "Hello, World!"

File "< ipython-input-6-a1fcabcd869c> ", line 1 print "Hello, World!" ^ SyntaxError: Missing parentheses in call to 'print'. Did you mean print("Hello, World!")?

从上面的输出中, 你可以得出结论, 在Python3中, print()不是语句, 而是函数。
话虽如此, 让我们检查一下print()函数的类型/类。
type(print)

builtin_function_or_method

它返回builtin_function_or_method, 这意味着它是预定义的或内置的Python函数。
现在, 假设你要在下面的两个输出之间添加新行或垂直间隔, 要实现此目的, 你可以简单地调用print()函数而不在其中传递任何参数。
print("Hello, World!"); print("Hello, World!")

Hello, World! Hello, World!

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

Hello, World!Hello, World!

让我们看一下print()函数的语法。 print(value, … , sep =” , end =’ \ n’ , file = sys.stdout, flush = False)到目前为止, 你已经知道, 打印功能会将值打印到流或sys中。默认情况下为标准输出。 sys.stdout或系统标准输出表示打印功能将在屏幕上打印输出, 甚至可以将其更改为stdin或stderr。
可选关键字参数:
  • sep:可以是你想在值之间插入的字符串, 默认为空格。
    让我们将单词列表放到print函数中, 并用新行将它们分开。请记住, 默认情况下;分隔符在每个单词之间添加一个空格。
print('srcmini', 'tutorial', 'on', 'python', 'print', 'function')

srcmini tutorial on python print function

print('srcmini', 'tutorial', 'on', 'python', 'print', 'function', sep='\n') #`\n` will put each word in a new line

srcmini tutorial on python print function

同样, 你可以用逗号分隔它们, 或添加两个\ n, 这将在它们之间添加一个空行, 甚至添加一个加号(+)$。
print('srcmini', 'tutorial', 'on', 'python', 'print', 'function', sep=', ')

srcmini, tutorial, on, python, print, function

print('srcmini', 'tutorial', 'on', 'python', 'print', 'function', sep='\n\n')

srcminitutorialonpythonprintfunction

print('srcmini', 'tutorial', 'on', 'python', 'print', 'function', sep=', +')

srcmini, +tutorial, +on, +python, +print, +function

在跳到下一个参数(即结束)之前, 请记住, 你也可以将变量传递给print函数。为了理解这一点, 让我们举一个例子, 定义一个整数列表并将其传递给print函数。你希望它可以打印整数列表。
int_list = [1, 2, 3, 4, 5, 6] print(int_list)

[1, 2, 3, 4, 5, 6]

  • end:是最后一个值后面附加的字符串, 默认为换行符。它允许程序员为每个打印调用定义一个自定义的结束字符, 而不是默认的换行符或\ n。
    假设你有两个字符串, 并且想要将它们与空格连接在一起, 那么你所要做的就是在第一个字符串的print函数中str1添加带有引号的end参数, 并且你可以期望两个字符串由a来连接空间。
str1 = 'srcmini tutorial on' str2 = 'python print function'

print(str1) print(str2)

srcmini tutorial on python print function

print(str1, end=' ') print(str2)

srcmini tutorial on python print function

让我们再举一个例子, 你有一个函数, 其功能是在同一行上打印列表中的所有值。你可以使用end参数来实现, 如下所示:
def value(items): for item in items: print(item, end=' ')

value([1, 2, 3, 4])

1 2 3 4

  • 文件:类似文件的对象(流);默认为当前sys.stdout。在这里, 你可以提及要在其中写入或附加打印功能输出的文件。
    通过使用file参数, 你可以将print函数的输出以.csv, .txt等各种格式存储到文件中。让我们以通过迭代列表中每个元素的示例为例来了解这一点。它保存在文本文件中。为此, 首先, 你将以附加状态打开文本文件, 在该状态下将保存打印语句的输出。接下来, 你将定义函数, 其输出将附加到文本文件中。
file = open('print.txt', 'a+')

def value(items): for item in items: print(item, file=file) file.close() # close the file ones the function execution completes.

value([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])

上述功能执行完成后, 你应该在当前目录中看到一个名为print.txt的文件。让我们打开它, 看看它的内容。
Python Print()函数

文章图片
从上面的输出中可以明显看出, 你甚至可以将输出保存到文件中, 而不仅仅是在终端或笔记本电脑上打印输出。
  • flush:确定是否强制刷新流。默认情况下, 它设置为False。
    通常, 输出到文件或控制台的内容被缓冲, 至少在输出换行符(源)之前输出文本。缓冲区是指在将输出准备好存储或文件最终关闭之前, 将输出存储在某种类型的寄存器中。刷新的工作是确保正在缓冲的输出安全地到达目标。
import time print('Please enter your email-id : ', end=' ') #print('Please enter your email-id : ', end=' ', flush=True) #run this to see the difference and comment out the above line of code. time.sleep(5)

Please enter your email-id :

如果在终端中运行以上代码行, 则会注意到提示字符串直到睡眠计时器结束并且程序退出(源)时才会显示。但是, 如果在打印功能中添加flush = True, 则会看到提示, 然后必须等待5秒钟才能完成程序。
Jupyter Notebook或Jupyter Lab会以某种方式处理它并在5秒计时器之前显示提示, 因此, 如果要测试此打印功能, 请确保在命令行终端而不是Jupyter Notebook上运行它。
现在, 让我们看看如何利用打印功能在jupyter笔记本中接受用户的输入。为此, 你将使用python的内置函数input()。
tutorial_topic = input() print("The topic of today's tutorial is: ", end='') print(tutorial_topic)

Print FunctionThe topic of today's tutorial is: Print Function

运行上面的单元格后, 你应该会看到如下所示的输出:
Python Print()函数

文章图片
在这里, 你定义了一个之前学习过的可选的命名实参末尾, 它将print语句中的静态语句与用户输入连接在一起。
让我们看看在打印函数中打印变量值的一些更酷的方法。
  • 要显示变量的值以及预定义的字符串, 你所需要做的就是在两者之间添加一个逗号。此处, 预定义字符串和变量的位置无关紧要。
a = 2 b = "srcmini" print(a, "is an integer while", b, "is a string.")

2 is an integer while srcmini is a string.

  • 你可以使用format参数, 其中你可以传递想要打印的变量。在format函数中传递变量时, 需要在预定义的字符串中指定索引号(它们在format参数中的排列顺序)。因此, 此打印功能现在将充当你的模板。
    要记住的另一件事是, 这里的索引号用大括号{}表示占位符。
    让我们用下面的例子来理解它:
a = 2 b = "srcmini" print("{0} is an integer while {1} is a string.".format(a, b))

2 is an integer while srcmini is a string.

如果你按预期将第二个变量的索引号放在两个位置, 它将输出相同的值, 在这种情况下, 两个变量都将输出b变量。
print("{1} is an integer while {1} is a string.".format(a, b))

srcmini is an integer while srcmini is a string.

与将打印功能用作模板的格式参数类似, 你可以使用百分号(%)来打印变量的值。
像format参数一样, 它也具有占位符的概念。但是, 与仅传递索引号的format函数不同, 在这种情况下, 还需要指定占位符应期望的数据类型。
  • %d用作数字或十进制值的占位符。
  • %s用作字符串的占位符。
a = 2 b = "srcmini" print("%d is an integer while %s is a string."%(a, b))

2 is an integer while srcmini is a string.

让我们看看如果为变量a(整数)指定%s会发生什么。
print("%s is an integer while %s is a string."%(a, b))

2 is an integer while srcmini is a string.

从上面的示例中可以看到, 它仍然有效。原因是Print函数隐式执行类型转换, 并将整数转换为字符串。但是, 事实并非如此。它将无法将字符串转换为整数, 并导致TypeError。
让我们找出答案。
print("%d is an integer while %d is a string."%(a, b))

---------------------------------------------------------------------------TypeErrorTraceback (most recent call last)< ipython-input-121-68c55041ecfe> in < module> ----> 1 print("%d is an integer while %d is a string."%(a, b))TypeError: %d format: a number is required, not str

总结 恭喜你完成了本教程。
对于渴望精通Python的初学者来说, 本教程是一个很好的起点。你可能想更多地使用” 打印” 功能, 并探索它可能在本教程中错过的其他功能。
请随时在下面的评论部分中提出与本教程相关的任何问题。
【Python Print()函数】如果你刚刚开始使用Python, 并且想了解更多信息, 请参加srcmini的Python数据科学入门课程。

    推荐阅读