Pythonで同じ行に印刷する方法


多くの初心者プログラミングコンテンツを教える人として、私は時折、「どのように、あなたはパイソンで同じ線で印刷しますか?」幸いにも、私はそれに答えを持っている!
要するに、Pythonで同じ行に印刷する2つの主要な方法があります.Python 2では、以下のprint構文を使用します.print "Williamson", . Python 3では、以下のprint構文を使用します.print("Providence", end="") . さもなければ、下位互換の解決のために記事の残りをチェックしてください.

問題紹介
多くのプログラミング言語では、同じ行の印刷は通常、デフォルトの動作です.例えば、Javaには二つのコマンドラインプリント機能があります.
System.out.print();
System.out.println();
想像してみるとデフォルトですprint Javaでの関数は、改行文字なしで印字される.対照的にprintln 関数は、print Pythonの関数.具体的には、どの文字列に対しても文字列を出力します.\n ).
もちろん、print Pythonでの関数は、それぞれの呼び出しで改行文字を自動的に出力しますprint 行動、右?幸運にも、それは真実ではない!さもなければ、私は何も書くことがないでしょう.

解決策
Pythonで同じ行に印刷するには、いくつかの解決策があります.残念ながら、すべてのバージョンでPythonのすべてのバージョンで動作するわけではないので、3つの解決策を提供しています.Python 2用のもの、Python 3用の別のもの、および両方とも動作する最終解です.

同じ行に古い方法で印刷する
私はこの問題の解決策を探していたとき、私はすぐにフェードアウトされているPython 2に多くの材料を見つけました.それは、私はこの解決策は誰もがまだロッキングに役立つと感じた.
とにかく、Python 2で何かを印刷するとき、構文はPython 3と同じですが、かっこを抜いてください.
print "Live PD"
もちろん、両方のケースでは、デフォルトの動作は改行で印刷することです.結果として、我々はシンタックスの巧みなビットをコンマに加える必要があるでしょう
print "Live PD",
さて、print関数は改行を除外します.ただし、このソリューションは文字列の末尾に余分なスペースを追加します.また、このソリューションがすぐに印刷されないことに気づくかもしれません.その場合は、呼び出しを行うことができますsys.stdout.flush() .

書き込み関数で同じ行に出力する
幸いにも、Python 2と3の間のギャップは、sys ライブラリwrite . この関数はprint 関数が存在するが、暗黙の改行はない.
import syssys.stdout.write("Breaking Bad")
改行がないので、バッファをフラッシュして結果を見る必要があります.
import sys
sys.stdout.write("Breaking Bad")
sys.stdout.flush()
どちらの場合でも、この解決策はPythonの両方のバージョンで実行されます.

同じ行に新しい方法を印刷する
Python 3ではprint は標準関数です.その結果、それにはパラメータの追加機会があります.特に、キーワード引数と呼ばれるend デフォルト値はいくつかの改行文字です.簡単に次のように変更できます.
print("Mob Psycho 100", end="")
そして、それ!改行文字列の代わりに空の文字列で終了します.もちろん、この解決策は、他の前の2つの解決策と同じ警告です.

パフォーマンス
いつものように、パフォーマンスの観点から全ての解決策を見てみたいです.起動するには、通常、各ソリューションを文字列で格納します.テスト中に過度の印字を避けるために、空の文字列を書くことを選びました.
setup="""
import sys
"""

write_solution = """
sys.stdout.write("")
"""

print_solution = """
print("", end="")
"""
残念ながら、私のシステム上でPython 2のソリューションをテストできませんでした.いずれにしても、私はtimeit 迅速でダーティパフォーマンステストのライブラリ
>>> import timeit
>>> min(timeit.repeat(stmt=write_solution, setup=setup, repeat=10))
0.20978069999999605
>>> min(timeit.repeat(stmt=print_solution, setup=setup, repeat=10))
0.5292953999999952
明らかにprint 関数にはオーバーヘッドがかなりある.つまり、パフォーマンスが問題ならばwrite ルートそうでなければ、print 作品素晴らしい!

ちょっと黙って
まあ、それはこれのためです.以下のコードブロックをチェックしてください.
# Python 2 only
print "Live PD",

# Backwards compatible (also fastest)
import sys
sys.stdout.write("Breaking Bad")

# Python 3 only
print("Mob Psycho 100", end="")
いつものように、Pythonで同じ行に印刷する他の方法を知っているなら、コメントで知らせてください.一方、Pythonの知識を次の記事で成長させない理由は次のとおりです.
  • How to Invert a Dictionary in Python
  • How to Check if a List in Empty in Python
  • あなたがこの記事または私がリストしたもののどれかが好きであるならばbecoming a member of the community or hopping on the mailing list . さもないとサポートに感謝します.おかげで停止!
    郵便How to Print on the Same Line in Python: Print and Write 最初に現れたThe Renegade Coder .