如何在Python中不使用换行符进行打印(附实例)

235 阅读3分钟

如果你熟悉Python,你可能已经注意到,内置的函数print() ,不需要在每一行的末尾有明确的\n 字符。

这意味着下面这段代码的输出结果是

print('freeCodeCamp Curriculum')
print('freeCodeCamp News')
print('freeCodeCamp YouTube Channel')

将会是:

freeCodeCamp Curriculum
freeCodeCamp News
freeCodeCamp YouTube Channel

发生这种情况是因为print() 函数在每个打印行的末尾添加了\n 字符。虽然大多数时候这只是一种方便,但有时你可能想打印出没有\n 字符的行。

在这篇文章中,你将学习如何改变每个打印语句的结尾。而且你还会学到一些其他的方法来修改内置函数的默认行为。

如何在Python中不使用换行符进行打印

根据print() 函数的官方文档,该函数的签名如下:

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

正如你所看到的,该函数总共需要五个参数。第一个是你想在终端上打印的对象。然后是分隔符(你将在后面的章节中了解),以及end 参数。

end 参数的默认值是\n ,这意味着在终端上打印的每一行都将附加一个换行符。

要改变这种行为,你可以简单地覆盖这个参数,如下所示:

print('freeCodeCamp Curriculum', end=', ')
print('freeCodeCamp News', end=', ')
print('freeCodeCamp YouTube Channel')

因为,我已经将end 的值改为逗号,所以输出结果将是freeCodeCamp Curriculum, freeCodeCamp News, freeCodeCamp YouTube Channel ,而不是三个独立的行。

你可以使用任何字符作为end 的值。如果你想在行尾没有任何东西,只需使用一个空字符串。

如何在Python中用分隔符打印

还记得函数签名中的sep 参数吗?在本节中,你将学习它的用法。

你可能已经知道,也可能不知道,print() 函数可以一次取多个对象打印出来,如下所示:

print('freeCodeCamp Curriculum', 'freeCodeCamp News', 'freeCodeCamp YouTube Channel')

这段代码的输出结果将是:

freeCodeCamp Curriculum, freeCodeCamp News, freeCodeCamp YouTube Channel

正如你所看到的,该函数在一行中打印了三个由逗号分隔的字符串。如果你想用其他东西如破折号作为分隔符,你可以这样做,如下:

print('freeCodeCamp Curriculum', 'freeCodeCamp News', 'freeCodeCamp YouTube Channel', sep=' - ')

这段代码的输出结果将是:

freeCodeCamp Curriculum - freeCodeCamp News - freeCodeCamp YouTube Channel

我希望你已经明白了。像end 参数一样,你可以使用或多或少的任何有效字符串作为sep 参数的值。

如何在Python中打印到一个文件

你也可以使用print() 函数直接将东西打印到一个文件中,而不是将东西打印到终端。

print() 函数需要另一个参数file ,它默认为sys.stdout 或标准输出。这是一个进程可以写入输出的默认文件描述符。

你可以覆盖这个参数来代替写到一个文件,方法如下:

with open('output.txt', 'w') as f:
    print('freeCodeCamp', file=f)

首先,你打开一个名为output.txt 的文件,作为f ,并将其作为file 的参数值。如果你运行这段代码,一个新的文件将被创建,在该文件内将是你的输出。

结论

print() 函数是 Python 中最常用的函数之一。所以很好地理解这个内置函数的不同用法可以提高你的工作效率。

在这个函数中还有一个参数,flush 。它是一个布尔值,将其设置为True ,将在每次执行时刷新输出。