我在教自己如何在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