Why it doesn't work?

作業のメモ、記録をブログに残しています。

Python print文まとめ

デバッグなどで最も使用されるであろうprint文についてまとめてみました。

print文は、バージョン3以降では、関数として扱われ機能も大きく変更されています。
まずは2.7をベースに動作を確認してみたいと思います。

標準的な文字列の出力

>>> print ('Hello World!')
Hello World!

末尾には自動的に改行コード '\n' が追加されます。

変数の値を出力する

>>> var = 'Hello World!'
>>> print(var)
Hello World!

変数の値が数値であっても、何らかの条件を指定することなく出力可能です。

>>> var = 100
>>> print(var)
100

文字列と変数を組み合わせて出力する

format()メソッドを利用する

>>> greet = 'Hello'
>>> print('{0} World!' .format(greet))
Hello World!

表示したい変数が複数ある時は、{0}, {1}, {2}….と{}を増やしていきます。

>>> greet1 = 'Hello'
>>> greet2 = 'Nice to see you'
>>> print('{0}, {1}!' .format(greet1, greet2))
Hello, Nice to see you!

こんなことも可能。

>>> greet1 = 'Hello'
>>> greet2 = 'Nice to see you'
>>> print('{1}, {0}!' .format(greet1, greet2))
Nice to see you, Hello!

文字列と変数を連結する

>>> greet1 = 'Hello'
>>> greet2 = 'Nice to see you'
>>> print(greet1 + ', ' + greet2 + '!' )
Hello, Nice to see you!!

ただし、連結できるのは文字列のみなので変数に数値が設定されている場合には以下のようにエラーとなる。

>>> sentence = 'My score is '
>>> score = 50
>>> print(sentence + score)
TypeError: can only concatenate str (not "int") to str

なので、数値を連結するには以下のように文字列に変換することが必要。

>>> sentence = 'My score is '
>>> score = 50
>>> print(sentence + str(score))
My score is 50

%記法

C言語の%表記も可能です。

>>> sentence = 'My score is'
>>> score = 50
>>> print('%s %d' % (sentence, score) )
My score is 50

16進数で表示したければ、

>>> sentence = 'My score is'
>>> score = 50
>>> print('%s 0x%x' % (sentence, score) )
My score is 0x32

オフィシャルのチュートリアルを見ているとまだまだ便利な使い方があるようですが、長くなるので一旦ここまで。