Python | 使用 print() 函数输出


Python print() 函数将消息打印到屏幕或任何其他标准输出设备。

句法:

print(value(s), sep= ' ', end = '\n', file=file, flush=flush)

参数:

  • value(s):任何值,你喜欢多少都行。将在打印前转换为字符串
  • sep='separator' :(可选)指定如何分隔对象,如果有多个对象。默认值:' '
  • end='end':(可选)指定要在末尾打印的内容。默认值:'\n'
  • file :(可选)具有写入方法的对象。默认:sys.stdout
  • flush :(可选)布尔值,指定输出是刷新 (True) 还是缓冲 (False)。默认值:假

返回类型:它将输出返回到屏幕。

虽然没有必要在 print() 函数中传递参数,但它需要在末尾有一个空括号,告诉 python 执行该函数而不是通过名称调用它。现在,让我们探讨可与 print() 函数一起使用的可选参数。

字符串文字

python 的 print 语句中的字符串文字主要用于格式化或设计特定字符串在使用 print() 函数打印时的显示方式。

  • \n :此字符串文字用于在打印语句时添加新的空行。
  • “”:空引号(“”)用于打印空行。

例子:

  • Python3
print("GeeksforGeeks \n is best for DSA Content.")

输出:

GeeksforGeeks 
 is best for DSA Content.

结束=””语句

end 关键字用于指定 print() 函数执行结束时要打印的内容。默认设置为“\n”,导致执行print()语句后换行。

示例:没有换行的 Python print()

  • Python3
# This line will automatically add a new line before the
# next print statement
print ("GeeksForGeeks is the best platform for DSA content")

# This print() function ends with "**" as set in the end argument.
print ("GeeksForGeeks is the best platform for DSA content", end= "**")
print("Welcome to GFG")

输出:

GeeksForGeeks is the best platform for DSA content
GeeksForGeeks is the best platform for DSA content**Welcome to GFG

flush 参数

python 中的 I/O 通常是缓冲的,这意味着它们以块的形式使用。这就是 flush 的用武之地,因为它可以帮助用户决定是否需要缓冲写入的内容。默认情况下,它设置为 false。如果设置为 true,则输出将作为一个接一个的字符序列写入。这个过程很慢,因为分块写比一次写一个字符更容易。为了理解 print() 函数中 flush 参数的用例,让我们举个例子。

例子:

假设您正在构建一个倒数计时器,它每秒将剩余时间附加到同一行。它看起来像下面这样:

3>>>2>>>1>>>Start

初始代码如下所示:

  • Python3
import time

count_seconds = 3
for i in reversed(range(count_seconds + 1)):
    if i > 0:
        print(i, end='>>>')
        time.sleep(1)
    else:
        print('Start')

因此,上面的代码添加了没有尾随换行符的文本,然后在每次添加文本后休眠一秒钟。在倒计时结束时,它打印 Start 并终止该行。如果按原样运行代码,它会等待 3 秒,然后突然立即打印出整个文本。这是由于文本块的缓冲造成的 3 秒浪费,如下所示:

img

尽管缓冲有一定的作用,但它可能会导致如上所示的不良影响。为了解决同样的问题,flush 参数与 print() 函数一起使用。现在,将 flush 参数设置为 true 并再次查看结果。

  • Python3
import time

count_seconds = 3
for i in reversed(range(count_seconds + 1)):
    if i > 0:
        print(i, end='>>>', flush = True)
        time.sleep(1)
    else:
        print('Start')

输出:

视频播放器

00:00

00:10

分隔器

print() 函数可以接受任意数量的位置参数。为了分隔这些位置参数,使用关键字参数“sep”。

注意:由于 sep 、 end 、 flush 、 file 是关键字参数,它们的位置不会改变代码的结果。

例子:

  • Python3
a=12
b=12
c=2022
print(a,b,c,sep="-")

输出:

12-12-2022

例子:

位置参数不能出现在关键字参数之后。在下面的示例中,102030是位置参数,其中sep=' – '是关键字参数。

  • Python3
print(10, 20, sep=' - ', 30)

输出:

File "0b97e8c5-bacf-4e89-9ea3-c5510b916cdb.py", line 1
    print(10, 20, sep=' - ', 30)
                            ^
SyntaxError: positional argument follows keyword argument

文件参数

与流行的看法相反,print() 函数不会将消息转换为屏幕上的文本。这些是由较低级别的代码层完成的,它们可以以字节为单位读取数据(消息)。print() 函数是这些层上的接口,它将实际打印委托给流或类似文件的对象。默认情况下,print() 函数通过文件参数 绑定到sys.stdout 。

示例:Python print() 到文件

  • Python3
import io

# declare a dummy file
dummy_file = io.StringIO()

# add message to the dummy file
print('Hello Geeks!!', file=dummy_file)

# get the value from dummy file
dummy_file.getvalue()

输出:

'Hello Geeks!!\n'

示例:使用 print() 函数将内容直接写入文本文件。

  • Python3
print('Welcome to GeeksforGeeks Python world.!!', file=open('Testfile.txt', 'w'))

输出:

% nano Testfile.txt
-----------------------------------------------------------------------------------------------
  UW PICO 5.09                                            File: Testfile.txt                                               

Welcome to GeeksforGeeks Python world.!!


^G Get Help         ^O WriteOut         ^R Read File        ^Y Prev Pg          ^K Cut Text         ^C Cur Pos          
^X Exit             ^J Justify          ^W Where is         ^V Next Pg          ^U UnCut Text       ^T To Spell

示例:在 Python 中使用 print() 函数

  • Python3
# Python 3.x program showing
# how to print data on
# a screen

# One object is passed
print("GeeksForGeeks")

x = 5
# Two objects are passed
print("x =", x)

# code for disabling the softspace feature
print('G', 'F', 'G', sep='')

# using end argument
print("Python", end='@')
print("GeeksforGeeks")

输出:

GeeksForGeeks
x = 5
GFG
Python@GeeksforGeeks


原文链接:codingdict.net