どの言語においても必ず使用するであろう処理の一つに、画面への出力処理があります。
実行中の処理がどこまで進んでいるのかをリアルタイムで確認したり、エラーが起きた際に原因が分かるよう内容を表示したりなど、様々な場面で活用することができるため、基本的かつ必須の機能であると言えます。
そこで今回は、Pythonでの出力処理に使用するprint関数について、詳しく解説をしていきたいと思います!
print関数とは?
Pythonのprint関数とは、関数の引数として指定した値を出力する関数です。
Pythonでプログラムの出力結果を確認するための最も基本的な方法で、プログラムを実行してすぐに出力結果を確認することができるため、Pythonでプログラムを書く際には必ず使用することになります。
print関数の使い方
まずは、print関数の基本的な使い方について見ていきましょう。
なお、この記事で紹介するのは主にPython3での記述方法です。
Python2を使用している場合には書き方が異なる部分があるため、あくまで参考程度にご覧ください。
文字列を標準出力に表示する
print関数では、文字列や数値を標準出力(コンソール)に出力することができます。
【基本構文】
print(文字列)
初めに、シンプルな文字列を出力するサンプルコードを見てみましょう。
【サンプルコード】
print('Hello World!')
【実行結果】
Hello World!
このように、もっとも基本的なやり方については、非常にシンプルな方法で出力することができます。
文字列を結合して表示する
print関数の引数に入れられる値は1つだけではなく、複数の値を指定することができます。
複数の値をprint関数で出力することで、異なる文字列同士を繋げて表示することが可能になります。
【基本構文】
print(引数1 + 引数2 + 引数3 + ...)
print(引数1, 引数2, 引数3, ...)
実際に、以下のサンプルコードで複数の文字列を結合して表示してみましょう。
【サンプルコード】
print('Hello' + 'World!')
print('Hello', 'World!')
【実行結果】
HelloWorld!
Hello World!
1つは「+(加算演算子)」を使用して数式と同じように結合する方法、もう1つは「,(カンマ)」を使用して複数の引数として渡す方法で記述しています。
主な違いとしては、表示の際に文字列同士の間に空白が入るかどうかです。ただし後者に関しては、「sep」引数を使うことで任意の区切り文字に変えたり、空白を無くすこともできます。
【基本構文】
print(引数1, 引数2, sep='')
print(引数1, 引数2, sep=',')
【サンプルコード】
print('Hello', 'World!', sep='')
print('Hello', 'World!', sep=',')
【実行結果】
HelloWorld!
Hello,World!
事前に文字列を結合して変数に格納してから表示する場合には、加算演算子を使う必要があります。
print()の出力を改行なしで表示させる
print関数では基本的に、関数ごとの値の最後に自動で改行が入力されます。
【サンプルコード】
print('Hello')
print('World!')
【実行結果】
Hello
World!
改行せずに出力したい場合には、print関数の中で「end」引数の値を設定しましょう。この引数では、末尾に入れる文字を指定することができます。
通常時に改行されるのは、この引数のデフォルトの値が「\n」(改行文字)に設定されているからです。任意の文字を代わりに指定することで、改行せずに一文で表示させることができます。
【基本構文】
print(引数, end='任意の文字')
【サンプルコード】
print('Hello', end=",")
print('World', end="")
print("!")
【実行結果】
Hello,World!
余談ですが、使用環境がPython2であっても、Python2.6以降であれば次の一行を追加することでPython3と同等にprint関数を使えるようになります。
from __future__ import print_function
print関数で変数やオブジェクトの値を表示する
ここまでは、基礎である文字列のみの出力方法について解説をしてきましたが、実際のプログラムでは文字列に限らず様々な値を表示させる機会が多くあります。
続いては、文字列以外の値を表示する方法について紹介していきたいと思います。
str()を使用する
まずは、int型の値を表示する方法を紹介します。
通常、int型のみでの表示であれば、文字列と同様に関数の()内に記述するだけで出力させることができます。
【サンプルコード】
print(12345)
【実行結果】
12345
一方で、文字列同士と同じように加算演算子(+)で結合しようとするとエラーが発生してしまいます。
【エラーになるサンプル】
print('abc' + 123)
【実行結果】
Traceback (most recent call last):
File "[実行したファイルのパス]", line 1, in <module>
print('abc' + 123)
~~~~~~^~~~~
TypeError: can only concatenate str (not "int") to str
上の例では ‘abc’ は文字列型であるのに対し 123 は数値型のため、そのままでは結合することができずエラーになってしまいました。
上記のエラーメッセージの最後の行では「型エラー:文字列は文字列(「整数」ではない)とだけ結合することができます」と英語で表示されています。
加算演算子で文字列と結合したい場合は、str関数を使用して数値を文字列に変換しましょう。
【基本構文】
str(文字列に変換したい値)
【サンプルコード】
print('abc' + str(123))
【実行結果】
abc123
str関数を使用することで数値が文字列に変換されるため、文字列同士の結合として処理することができます。
format()を使用する
先ほどの項目では、str関数を使って文字列に変換してから処理する方法を紹介しましたが、値の変換を行わずに文字列に埋め込む方法も存在します。
まずは、format関数を使用して埋め込む方法について解説します。
以下のサンプルコードを見てみましょう。
【サンプルコード】
print("田中さんの年齢は{}歳です。".format(32))
【実行結果】
田中さんの年齢は32歳です。
上記のコードを見ると、関数の引数に指定した数値が、文字列内の{}で囲われた部分に埋め込まれているのが分かると思います。これが、format関数の基本構文になります。
この方法のメリットの1つは、文字列を分解したりなどの処理を行わずとも、任意の箇所に値を入れることができる点です。文字列同士の結合でも、加算演算子やカンマを使用する場合に比べて、組み合わせの自由度が高くなります。
また、今回の記事では説明を省きますが、format関数ではアライメントや桁表示などの指定も行うことができるため、覚えておくと便利な方法の1つです。
%を使用して文字列を表示する
format関数と似たような動きを、「%(書式化演算子)」を使用して実行することもできます。
以下のサンプルコードを見てみましょう。
【サンプルコード】
print("田中さんの年齢は%d歳です。" % 32)
【実行結果】
田中さんの年齢は32歳です。
先ほどと同じ結果を出力するコードですが、いくつか記述が異なる部分があります。format関数では{}で代入位置を指定していましたが、代わりに「%d」と記述されているのが分かると思います。
これは変換指定子と呼ばれるもので、%の後ろに対応する記号や文字を記述することで書式を指定することができます。
こちらも詳しい説明は省きますが、format関数と同様に様々な書式を指定できる便利な機能となっています。
上記の例は値が1つのみのため、文字列後の%に続けてそのまま値を記述していますが、2つ以上の値を扱う場合には以下のように()で囲って記述をしてください。
【サンプルコード】
print("田中さんは%d歳、佐藤さんは%d歳です。" % (32, 27))
【実行結果】
田中さんは32歳、佐藤さんは27歳です。
リストを文字列として表示する
print関数では、オブジェクトの表示をすることも可能です。
例として、リストオブジェクトを表示するサンプルコードを見てみましょう。
【サンプルコード】
strList = ['a', 'b', 'c']
numList = [1, 2, 3]
print(strList) # 一覧表示
print(strList, numList) # 連続表示
print(strList[0]) # 要素の取り出し1
print(*numList) # 要素の取り出し2
【実行結果】
['a', 'b', 'c']
['a', 'b', 'c'] [1, 2, 3]
a
1 2 3
上記のコードから分かる通りに、基本的には文字列や数値のみの時と同様に、()内に記述するだけで値を表示することができます。
4つ目の記述方法については、値ごとにカンマで区切って指定をするのと同等の結果が表示されています。そのため、sep引数を使用して、空白以外の任意の文字で値を区切ることも可能です。
print関数の応用的な使い方
最後に、print関数の応用的な使い方についても紹介していきます。
前に表示した文字列に上書きして表示する
プログレスバーのように進捗確認をしたい時など、一度表示した文字列を上書きしたいケースもあるかと思います。その場合は「\r(キャリッジリターン)」を活用しましょう。
キャリッジリターンとは、行頭復帰コードとも呼ばれる、カーソルを行頭に戻す働きをする制御文字です。文字列の先頭に「\r」を記述し、end引数に空文字をすることで、表示済みの文字列を上書きすることができます。
【サンプルコード】
import time
for i in range(10):
print('\r%d' % i, end='')
time.sleep(1)
上記はキャリッジリターンを使った簡単な例ですが、コードの組み方次第では実際にプログレスバーのような見た目で進捗状況を表示させることもできます。
文字列をファイルに出力する
続いて、文字列を標準出力ではなく、テキストなどのファイルに出力する方法について紹介します。
print関数では、「file」引数を使用することで指定のファイルに文字列を出力することができます。
以下は、open関数と組み合わせて実際にファイルに文字列を出力している簡単な例です。
【サンプルコード】
with open('sample.txt', 'w') as text:
print('Hello World!', file=text)
「sample.txt」はファイル名、「w」はモード(読み込み方法)の指定で書き込みモードを指定しています。「as text」の部分は変数名の指定なので、任意の名前を指定することができます。
コードを実際に試す場合は、ファイル名は自身の環境に合わせて書き換えてください。指定したファイルに文字が書き込まれていれば、無事に成功です。
まとめ
今回は、Pythonでプログラムを作成する際に最も基本となるprint関数について解説しました。
標準入出力を利用したプログラムの記述は、文字列の出力以外にも様々な処理を記述するために必要になる知識です。
その第一歩として文字列の出力ができるようになるのはとても重要なステップです。
ぜひマスターするまで何度でもこの記事を読み返してください!
Pythonの勉強方法は?
書籍やインターネットで学習する方法があります。昨今では、YouTubeなどの動画サイトやエンジニアのコミュニティサイトなども充実していて多くの情報が手に入ります。
そして、より効率的に知識・スキルを習得するには、知識をつけながら実際に手を動かしてみるなど、インプットとアウトプットを繰り返していくことが重要です。特に独学の場合は、有識者に質問ができたりフィードバックをもらえるような環境があると、理解度が深まるでしょう。
ただ、Pythonに限らず、ITスキルを身につける際、どうしても課題にぶつかってしまうことはありますよね。特に独学だと、わからない部分をプロに質問できる機会を確保しにくく、モチベーションが続きにくいという側面があります。独学でモチベーションを維持する自信がない人にはプログラミングスクールという手もあります。費用は掛かりますが、その分スキルを身につけやすいです。しっかりと知識・スキルを習得して実践に活かしたいという人はプログラミングスクールがおすすめです。
プログラミングスクールならテックマニアがおすすめ!

ITスキル需要の高まりとともにプログラミングスクールも増えました。しかし、どのスクールに通うべきか迷ってしまう人もいるでしょう。そんな方にはテックマニアをおすすめします!これまで多くのITエンジニアを育成・輩出してきたテックマニアでもプログラミングスクールを開講しています。
<テックマニアの特徴>
・たしかな育成実績と親身な教育 ~セカンドキャリアを全力支援~
・講師が現役エンジニア ~“本当”の開発ノウハウを直に学べる~
・専属講師が学習を徹底サポート ~「わからない」を徹底解決~
・実務ベースでスキルを習得 ~実践的な凝縮カリキュラム~
このような特徴を持つテックマニアはITエンジニアのスタートラインとして最適です。
話を聞きたい・詳しく知りたいという方はこちらからお気軽にお問い合わせください。