2016-08-11 6 views
0

私はPythonでプログラミングする方法を教えています。私は "print"について質問します。Pythonのprintコマンドの改行機能

私はprintステートメントに改行 "\ n"機能が組み込まれていることを知っていますが、printステートメントでコードが終了するたびにprint( "This is the end")改行を作成します。

の改行が最後にのprint文が抑制されているのはPythonの機能ですか?

p.s.私はIDLEを使用しています

+2

何があなたが最後のprint文は改行を作成していないことだと思いますか? –

+0

あなたは何を試していますか? print( 'これは終わりです'、end = '') 'を実行し、結果が何であるかを見てください。 – Kupiakos

+0

@AdamSmith print( 'test')文だけを持つスクリプトを実行した場合、インタープリタは 'test'を吐き出しますが、余分な改行はありません – mononono

答えて

4

いいえ、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)は、常に改行とプログラムの終了を追加:Pythonで

C:\> python endline.py 
line 1 
line 2 

C:\> python noendline.py 
line 1 
line 2 
C:\> 
+0

私はIDLEとシェルを使用していますが、print( 'Hello World!、end =' ')と入力すると、次の行に新しいコマンドプロンプトが表示されます – mononono

+2

@ hl0202 IDLEは周囲のラッパーPythonが出力するものを正確には表示しません。コマンドの最後の出力が改行で終わらず、自動的に追加されることを検出します。 'sys.stdout.write( 'hello')'( – Kupiakos

0

\nをによって追加さdefault

print('Hello World', end='Arg goes here.') 

出力:

あなたは(改行を実証すること崇高3からコピー 出力)以下とPython 3であなたのprint文の最後に連結欲しいもの最後の引数を指定することができます
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. 

物事はpythonで若干異なりprintとして2を働く(\nがデフォルトある)関数ではありません、しかし、あなたは以下に、この動作をエミュレートすることができますway:

from __future__ import print_function 
print('Hello World', end='\n') 

出力:

Hello World 
[Finished in 0.0s] # Newline specified. 

ここでは、証明するために、ターミナルで実行しているインタラクティブシェルでいくつかの例です。シェルで

(パイソン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>>> 
+0

Pythonインタプリタ(Pythonシェル)にprint( 'Hello World')と入力するだけであれば、IDLEにはまだ新しい行が追加されます。文字列 'Hello World'が表示され、余分な空白行が表示されない場合は、直ちにプロンプ​​ト>>>を表示しますか? – mononono

+0

@ hl0202:なぜ空白行が必要ですか?改行文字を出力します。なぜなら、プロンプトは単に 'print'と同じ行に続かないからです出力。 – user2357112

+0

@ hl0202はい、新しい行の '>>>'ではありませんか? – Anonymous