print
は、末尾に改行を追加して出力するのがデフォルトの動作となっています。これを改行なしで出力する方法をご紹介します。方法は2つあります。
print string,
sys.stdout.write(string)
以下、順に見ていきます。
print string,
ひとつめは print string,
を使う方法です。print "hello", print "hello", print "hello" # => hello hello hello
print
文の末尾に「,」をつけると、改行が半角スペースに置き換えられます。これは、いくつもの変数をまとめて表示する際に使える「,」を利用した方法です。print "hami", "gaki", "ko" # => hami gaki ko
sys.stdout.write(string)
もうひとつは sys.stdout.write()
を使う方法です。import sys sys.stdout.write("hello") sys.stdout.write("hello") sys.stdout.write("hello") # => hellohellohelloこちらの方法だと半角スペースが挿入されることもなく、渡した文字列がただそのまま表示される形となります。空白もコントロールしたい場合はこちらを使うのがよろしいかと思います。
ただし、
sys.stdout.write()
は print
文と異なり、引数に文字列以外を受け取ることができません。文字列になっていないものは str
などを使って事前に文字列型に変換した上で渡すようにしましょう。以上です。
追記:
上記の方法はあくまでも Python2 でのやり方です。 Python3 の場合は、
print
が「 print 文」から「 print 関数」へと変わり、それに合わせて、末尾に追加される文字を end
オプションで指定できるようになりました。Python3 で改行を入れてほしくない場合は次のようにするとよいようです。
# case in Python 3 print("hello", end="") print("hello", end="") # => hellohello
ちなみに、 Python2.6 以降であれば、次の一文を宣言すると、 print 文を上書きする形で Python3 の print 関数を使うことができるようになります。
# case in Python 2.6~ from __future__ import print_function print("hello", end="") print("hello", end="") # => hellohello
Python で改行を扱う方法について全般的に知りたい方にはこちらの記事が参考になるかもしれません。
print
に興味のある方はこちらの記事も参考になるかもしれません。参考
0 件のコメント:
コメントを投稿