ホームページ >バックエンド開発 >Python チュートリアル >Python2と3printの違い
Python2 と Python3 はどちらも情報を出力する print() メソッドを提供しますが、2 つのバージョン間の出力は若干異なります。
主に次の点に反映されます。
##1. python3 では、print は複数のパラメーターを持つ組み込み関数ですが、python2 では、print は文法構造です; 2. Python2 は括弧なしで出力できます: print 'hello world' , Python3 では括弧 print("hello world")3 を追加する必要があります。Python2 では、input で必要な入力文字列は引用符で囲む必要があります。文字列以外の型を読み取るときに発生するいくつかの動作を回避するには、 input()1 の代わりに raw_input() を使用する必要がありました。python3 では、おそらく開発者は print が同時に 2 つの ID を持つことに少し不快感を感じたため、関数の ID のみを保持しました。##print (value1, ..., sep=' ', end='\n', file=sys.stdout,lush=False)
上記のメソッド プロトタイプからわかるように,
①. print は複数のパラメータをサポートし、複数の文字列の同時出力をサポートします (ここで... は任意の複数の文字列を表します);
②. sep は接続に使用される文字を表します複数の文字列;
③. end は、文字列の最後に追加する文字を示します。このパラメータを指定すると、行の折り返しなしで印刷を簡単に設定できます。Python2.x の print ステートメントは文字列を折り返しますデフォルトでは文字列を出力した後、文字列をラップしたくない場合は、ステートメントの最後に「,」を追加するだけです。ただし、Python 3.x では、print() が組み込み関数になり、「,」を追加する古い方法は機能しなくなります。
>>> print("python", "tab", ".com", sep='') pythontab.com >>> print("python", "tab", ".com", sep='', end='') #就可以实现打印出来不换行 pythontab.com
もちろん、python2.7 ではかっこを使用して変数を囲むこともできます。これはまったく間違っていません:
print('this is a string') #python2.7
しかし、python3 では print が関数に変更されるのは無駄ではありません:
python3 では、help(print) を使用してドキュメントを表示できますが、python2 ではできません:
>>help(print) Help on built-in function print in module builtins: print(...) print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False) Prints the values to a stream, or to sys.stdout by default. Optional keyword arguments: file: a file-like object (stream); defaults to the current sys.stdout. sep: string inserted between values, default a space. end: string appended after the last value, default a newline. flush: whether to forcibly flush the stream.
python3 では、出力リダイレクトをより便利に使用できます
python2 .7, C:
with open('print.txt', 'w') as f: print >> f, 'hello, python!'
In python3:
with open('print.txt', 'w') as f: print('hello, python!', file = f)
file は、Python3 print の新しく追加されたパラメータです。もう 1 つの便利なパラメータは sep です。たとえば、整数の配列を出力するが、整数をスペースではなくアスタリスクで接続したい場合などです。 python2 では、ループを完了するためにループを記述する必要がある場合がありますが、python3 ではこれが機能します:
a = [1, 2, 3, 4, 5] print(*a, sep = '*')<br>
最後に、python3 の print を python2.7 で使用したい場合は、次のコードを追加するだけです:
コードの最初の行の前from __future__ import print_function
from __future__ import... などのステートメントはコードの先頭に配置する必要があることに注意してください。
以上がPython2と3printの違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。