Python Language
印刷機能
サーチ…
印刷の基本
Python 3以降では、 print
はキーワードではなく関数です。
print('hello world!')
# out: hello world!
foo = 1
bar = 'bar'
baz = 3.14
print(foo)
# out: 1
print(bar)
# out: bar
print(baz)
# out: 3.14
また、いくつかのパラメータを渡してprint
することもできprint
。
print(foo, bar, baz)
# out: 1 bar 3.14
複数のパラメータをprint
する別の方法は、 +
print(str(foo) + " " + bar + " " + str(baz))
# out: 1 bar 3.14
しかし、複数のパラメータを出力するために+
を使用する場合は注意が必要ですが、パラメータのタイプが同じである必要があります。文字列"bar"
数字1
を加えて数値3.14
に追加しようとするため、上記の例をstring
最初にキャストせずに印刷しようとするとエラーになります。
# Wrong:
# type:int str float
print(foo + bar + baz)
# will result in an error
これは、 print
内容が最初に評価されるためです。
print(4 + 5)
# out: 9
print("4" + "5")
# out: 45
print([4] + [5])
# out: [4, 5]
それ以外の場合、 +
を使用すると、ユーザーが変数の出力を読み出すのに非常に役立ちます。下の例では、出力を読みやすくなっています。
以下のスクリプトはこれを示しています
import random
#telling python to include a function to create random numbers
randnum = random.randint(0, 12)
#make a random number between 0 and 12 and assign it to a variable
print("The randomly generated number was - " + str(randnum))
次のend
パラメータを使用すると、 print
機能が改行を自動的に印刷しないようにすることができます。
print("this has no newline at the end of it... ", end="")
print("see?")
# out: this has no newline at the end of it... see?
ファイルに書き込む場合は、パラメータfile
として渡すことができfile
:
with open('my_file.txt', 'w+') as my_file:
print("this goes to the file!", file=my_file)
これはファイルに行く!
印刷パラメータ
単なるテキストの印刷以上のことができます。 print
にはいくつかのパラメータがあります。
引数sep
:引数の間に文字列を配置します。
カンマやその他の文字列で区切られた単語のリストを印刷する必要がありますか?
>>> print('apples','bannas', 'cherries', sep=', ')
apple, bannas, cherries
>>> print('apple','banna', 'cherries', sep=', ')
apple, banna, cherries
>>>
引数のend
: end
改行以外のものを使う
end
引数がなければ、すべてのprint()
関数は行を書き、次の行の先頭に移動します。 2つの改行を使って何もしないように(空の ''の文字列を使用する)、または段落間の間隔を2倍に変更することができます。
>>> print("<a", end=''); print(" class='jidn'" if 1 else "", end=''); print("/>")
<a class='jidn'/>
>>> print("paragraph1", end="\n\n"); print("paragraph2")
paragraph1
paragraph2
>>>
引数file
:出力をsys.stdout以外の場所に送ります。
これで、stdout、file、またはStringIOのいずれかにテキストを送信できます。それがファイルのように壊れた場合、それはファイルのように動作します。
>>> def sendit(out, *values, sep=' ', end='\n'):
... print(*values, sep=sep, end=end, file=out)
...
>>> sendit(sys.stdout, 'apples', 'bannas', 'cherries', sep='\t')
apples bannas cherries
>>> with open("delete-me.txt", "w+") as f:
... sendit(f, 'apples', 'bannas', 'cherries', sep=' ', end='\n')
...
>>> with open("delete-me.txt", "rt") as f:
... print(f.read())
...
apples bannas cherries
>>>
強制的にストリームをflush
する4番目のパラメータflush
あります。