我在教自己如何在Python中编程,并且我有一个关于“打印”的问题。我知道print语句嵌入了换行符“\ n”,但是我注意到每当我的代码以print语句结束时,例如print(“this is the end”),它就不会创建一个换行符。Python中打印命令的换行功能
是否Python的一个特性是非常最后打印语句的换行符被抑制?
p.s.我正在使用IDLE
我在教自己如何在Python中编程,并且我有一个关于“打印”的问题。我知道print语句嵌入了换行符“\ n”,但是我注意到每当我的代码以print语句结束时,例如print(“this is the end”),它就不会创建一个换行符。Python中打印命令的换行功能
是否Python的一个特性是非常最后打印语句的换行符被抑制?
p.s.我正在使用IDLE
不,Python没有这样的功能。您可能会混淆“不打印换行符”和“不以空格结束”。
例如,在bash中,它可能是这样的:
$ cat endline.py
print('line 1')
print('line 2')
$ cat noendline.py
print('line 1')
print('line 2', end='')
$ python3 endline.py
line 1
line 2
$ python3 noendline.py
line 1
line 2$ echo "It did not end in a newline"
It did not end in a newline
$
注意如何noendline.py
退出没有任何换行符和提示立即继续。
这适用在现场翻译,以及:
>>> print('Hello world!')
Hello world!
>>> print('Hello world!', end='')
Hello world!>>> # See?
的Windows(cmd
)总是附加一个程序以新行结束:
C:\> python endline.py
line 1
line 2
C:\> python noendline.py
line 1
line 2
C:\>
在Python中,\n
被添加default。您可以指定结束参数,你想级联到打印语句在Python 3结束满足以下(输出崇高3复制到演示换行符):
print('Hello World', end='Arg goes here.')
输出:
Hello WorldArg goes here.[Finished in 0.0s] # Notice no newline.
其他方面,如果没有值传递给关键字参数end
,则默认为\n
。
print('Hello World')
输出:
Hello World
[Finished in 0.0s] # Newline by default.
观光蟒蛇略有不同2为print
不是一个函数(\n
是默认),但是你可以在以下效仿这一行为方式:
from __future__ import print_function
print('Hello World', end='\n')
输出:
Hello World
[Finished in 0.0s] # Newline specified.
下面是在终端的交互shell中运行演示了几个例子。
在外壳(Python中2):
>>> from __future__ import print_function
>>> print('Hello World', end='\n')
Hello World
>>> print('Hello World', end='\n\n')
Hello World
>>> print('Hello World', end='')
Hello World>>>
如果你只是在Python解释器(Python Shell)中输入print('Hello World'),那么它会添加一个换行符,你看到字符串'Hello World',并且你没有看到额外的空行,你立即得到提示>>>。你不是吗? – mononono
@ hl0202:你为什么期望一个空行?'print'不会打印换行符,这就是为什么提示不会像'print'一样继续执行输出。 – user2357112
@ hl0202是的,但不是新行上的“>>>”? – Anonymous
是什么让你认为最后的print语句不创建一个新行? –
你在测试什么?尝试运行print('这是结束',end ='')',看看结果是什么。 – Kupiakos
@AdamSmith如果我运行一个只打印('test')语句的脚本,解释器会吐出'test',但它不会给我一个额外的新行 – mononono