如果你熟悉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 ,将在每次执行时刷新输出。