Python print 書き方

python

Pythonのprintの書き方について【基本から応用まで】

2020年3月11日

見習いエンジニア
Pythonで print の基本的な使い方から応用の使い方まで知りたいです。
この様な悩みを持つ方への記事になります。

 

この記事ではPythonの print の書き方・使用方法について、基本的な内容から応用までを解説していきます。

 

それでは早速見ていきましょう。

printとは

Python print 書き方

まず、print は表示したい内容を表示する関数です。丁度以下の様なイメージです。

Python print 書き方 入門

実際に、下記のコードを実行してみましょう。

 

Hello world! と表示がされ、期待通りの結果が得られます。

In[]

Out[]

 

シングルコーテーション「’」とダブルコーテーション「”」の違い

シングルコーテーション「 」とダブルコーテーション「 」を使用した書き方がありますが、これらの実行結果に違いはありません。

 

そのため、使い分けを気にする必要はありません。

 

実際に print で動かしてみましょう。どちらも同じ結果が得られる事が分かります。

In[]

Out[]

同じですね。

 

Python2系とPython3系のprintの使い方の違い

Python2系、3系というのはPythonのバージョンのことです。3系には3.6とか3.7などがあります。

 

2020年現在では、Python2系を使っている人はほとんどいないかもしれませんが、2系と3系の print の書き方の違いをまとめておきます。

 

Python2系と3系のprintの使い方の違い

  • Python2系:print  なのでカッコ書きは不要
  • Python3系:print 関数 なのでカッコ書きが必要

下記の様に、出力すると文と関数の違いがコードとして出ます

 

なお、「文」は if 文や for 文などのプログラム言語の記述ルールに対して、「関数」は引数を使って処理をして返り値を返すものとなります。

Out[]

 

printの使い方について

Python print 書き方

printはどの様な時に使うのか、またprintの基本的な使い方について解説します。

 

printの用途について

printの用途としては以下のものがあります。

 

printの用途のまとめ

  • 処理がされたかどうかの確認
  • エラーが起きた時にどの様なエラーが起きたのかを確認
  • 処理において、どの様な状態か進捗を確認

スマートフォンのアプリの場合、間違った動作があるとメッセージが出てきますね。

 

同様にPythonの場合には、printでコマンドプロンプト、ターミナルや jupyter notebookへの出力でエラーメッセージを表示する必要があります。

 

以下の様なイメージです。

Python print 書き方 入門

printの用途を以下に再度まとめます。

printの用途のまとめ

  • コードの処理の確認
  • コードエラーの確認
  • コードの進捗の確認

では、各々について詳しく見ていきましょう。

 

コードの処理の確認

1つ目は「コード処理がきちんと実行されているのか」、また「その時、どのような変数の内容だったのか」など処理状態を確認するときに使います。

 

「変数の内容」すなわち、変数の値や型をprintで確認することで、正常な処理が行われているのかを確認します。

 

例えば、下記コードのように func_sample を実行したとき、きちんと実行されているのか print で確認します。

In[]

Out[]

また、別として下記のコードのような場合でもきちんと実行されているのかをprintで確認します。

In[]

Out[]

 

コードエラー確認

print はコードエラー確認ではよく使用します。

 

try構文をまだ知らない方は何となく、エラーの表示をするのだということが分かればそれで十分です。

try 構文とは

try 構文とは、try except で囲った処理でエラーが出た場合に、エラー発生時の処理を書くための構文です。

例えば、ファイルを開いて処理したいのに、ファイルがなかったとか、割り算の計算をしたいが、分母が0で割れないなどの時に使用します。

使用するとエラーが発生するため、そのエラー時の処理を記述します。この例ではエラーの内容をprint で表示します。

なお、Pythonの例外処理としてtry構文は以下の記事で詳しく解説していますので、参考にしてください。

関連記事
Python 例外処理 try, except else finally 使い方
Pythonの例外処理【try,except文の扱い方について】

続きを見る

 

下記例では、本来であれば計算する事が不可能な 1/0 を実行することで、「0では割れませんよ」というエラーを発生させて、それを print で表示しています。

In[]

Out[]

 

コードの進捗確認

printはコードの進捗の確認のために頻用します。

 

コードの進捗確認でよく使われるのはtqdmというライブラリですが、自分でコードを書いて実装する場合もあります。

 

例えば、for文の処理が長い場合、その処理進捗が分かる方がコードの進捗確認に便利ですね。

 

実際に下記コードを実行してみてください。処理の進捗が表示されることが分かります。

In[]


Out[]

上記の意味としては、コードを実行すると 1/10 > 2/10 > 3/10 > 4/10..... 10/10と進捗が表示されますが、9/10 はその途中の表示になります。

 

以上が基本的なprintの使い方になります。

 

では実際にどうやって、print関数を使えば良いのか説明していきます。

 

print関数の使い方の基礎

Python print 書き方

print関数の使い方の基礎には以下のものがあります。

print関数の使い方の基礎

  • 文字列の表示
  • 数値・文字列の表示
  • リストや辞書方の表示

 

文字列の表示

例えば、 ’Hello world’ の表示など、文字列の表示があります。

 

直接文字列を表示したい場合はシングルコーテーション、ダブルコーテーションで囲った文字列をprint関数に与えます。

 

具体的には以下の様になります。

In[]

Out[]

 

数値、文字列の表示

print関数は変数に入っている値を表示する事が出来ます。

 

変数の内容を表示する場合には、シングル/ダブルコーテーションは不要です。

 

下記コードを実行してみましょう。文字列、数値データかかわらず、print() 内を表示してくれる事が分かります。

In[]

Out[]

 

リストや辞書型の表示

print関数ではリスト型や辞書型を表示する事ができます。

 

Pythonの辞書の使い方については以下の記事を参照して下さい。

関連記事
python 辞書 dict
【python】辞書の作り方【基本から応用まで】

続きを見る

 

print関数にそのまま変数を入れると表示する事が出来ます。

In[]

Out[]

問題なく表示されているのが分かります。

 

また、このとき中に文字列、数値、他のオブジェクトが入っていても表示する事が可能です。

補足| printを使わずに変数の内容を表示させる。

printを使わなくても、変数名をそのまま実行すると、内容が表示されます。

 

しかしprintを使う時と微妙に表現が変わります。

 

例えば、先ほどの’文字列変数’をprintの使用した場合、使用しない場合で実行すると下記のようになります。

In[]


Out[]

print を使わない場合、a の変数そのまま表示されて、 がついて表示されているのが分かります。

 

また、改行文字である \n を入れて実行してみましょう。

In[]


Out[]

この様に、print を使うと改行されますが、使わない場合はそのまま表示されます。

 

print を使わずに表示させる場合、使って表示させる場合の違いを抑えておきましょう。

 

print関数の使い方の応用

Python print 書き方

基礎内容だけでは、冒頭で説明したような用途の表示ができない場合があるので、より詳しくみていきます。

 

print関数の使い方の応用としては以下のものがあります。

print関数の使い方の応用

  • フォーマット
  • 区切り文字
  • 改行処理を無くす
  • printの上書き
  • file出力

では各々について詳しくみていきましょう。

フォーマット

文字列のフォーマットとは

文字列のフォーマットとは、数値や日付データをprint関数を使用する事で欲しい文字列の形に変更することです。

 

例えば、1’00001’ にしたい場合は下記にようにコードを書きます。

In[]

Out[]

フォーマットの方法には具体的に % 形式formatf-string の3種類があります。

 

各々について詳しく確認していきましょう。

3種類のフォーマット方法について

フォーマットの方法は3種類あり、古い順(Pythonのバージョン)に %形式fomatf-string があります。

 

f-string は3.6以降に導入されたものです。またおすすめは、f-string ですが、どれを使用しても構いません。

 

各々のフォーマット形式の書式と値の入力方法の違いは、以下の様にまとめる事ができます。

Python print 書き方 入門 %形式 、fomat 、f-string の書式と値の入力形式の違い

%形式 、fomat 、f-string の書式と値の入力形式の違い

実際に、以下の様なコードを実行してみましょう。

  • 値:val (1)
  • 書式:d

以上の値と書式で、上から順に %形式formatf-string で処理してみます。

In[]

Out[]

 

複数表示

先ほどは、1つの変数をフォーマットしましたが、次に print で複数表示させましょう。

 

%形式 も、f-string も変数を左から順番に入れますが、format は、コロンの前に数字でどの変数を入れるか指定をする必要があります。

 

また、下図の様に %形式 はカッコ書きが増えます。

 

以下が複数表示をする場合のフォーマットの記載方法の違いです。

Python print 書き方 入門 %形式 、fomat 、f-string の書式と値の入力形式の違い

複数表示をする場合のフォーマットの記載方法の違い

 

実際のコードが以下になります。実行して見比べてみましょう。

 

書式は d で、変数の数を変更しています。( ※ d:10進数)

In[]

Out[]

 

参考:型の種類について

  • d:10進数
  • f:小数点
  • e:指数表記小数点
  • s:文字列

数値と文字列については以下の記事を参考にして下さい。

関連記事
python コード サンプル 覚え書き
【Python】数値と文字列について【初心者向け】

続きを見る

 

アライメント

次は文字のアライメントです。アライメントとは左、右、中央のどこに寄せるかを意味しています。

 

これは下記の記号を 05d のような「桁数」「型」の書式の前につけ、「アライメント」「桁数」「型」の順に表示します。

アライメントの表示方法

  • <:左寄せ
  • ^:中央
  • >:右寄せ

それぞれ、コードでみていきましょう。(注意:今回は、%表記では対応していません。)

In[]

Out[]

 

リスト, 辞書型の表示

最後にリスト型と辞書型をフォーマットして表示しましょう。

 

リスト型と辞書型ですが、format以外であれば、list_a[0]list_a[1] など list_a [要素No] という使い方をしますが、format の場合では、要素Noは「要素No」: 書式と書式の前で指定します。

 

そのため、記載方法に少し違和感を感じられるかもしれません。

 

まず、リスト型から解説していきます。

 

format の場合、コロンの前の 0番目、1番目の後にリスト型の配列を意味する [0] [1] .. [n] を追加します。

 

そのほかは、%記法、f-string はそのまま配列の値を、 [ 配列No ] で指定しています。

 

リスト型フォーマットの表示の仕方

Python print 書き方 入門 フォーマットのリストの表示の仕方について

フォーマットのリストの表示の仕方について

 

In[]

Out[]

 

次は、辞書型のフォーマットの方法です。

 

formatの場合、コロンのまえの0番目、1番目の後に辞書型のキーを [key1] [key2] などを追加します。

 

シングル/ダブルコーテーションは不要です。

 

%記法f-string はそのまま辞書のキー[ ‘x’ ] を指定しています。

 

辞書型フォーマットの表示の仕方

Python print 書き方 入門 フォーマットの辞書型の表示の仕方について

フォーマットの辞書型の表示の仕方について

print ではシングル/ダブルコーテーションを気にする必要はありませんが、f-string ではフォーマットと辞書のキーで囲うものを分ける必要があります。

 

上から順に %形式formatf-string で処理してみます。

In[]

 

Out[]

 

printを使用した文字の区切り方

printでは、引数を複数与えて変数をつなげることができます。

 

例えば、「This」「is」「2」「pens」と分けてprintに与えてみます。

In[]

Out[]

スペースで区切られますね。このスペースは何も指定しない場合に入ります。

 

これを指定する場合には、sep=区切り文字 で指定します。スペースの代わりにアンダーバー にしてみましょう。

In[]

Out[]

この様にアンダーバー が入ります。簡易的に表示したいときにはよく使いますので、覚えておきましょう。

 

改行処理を無くす方法

printを何度も実行すると、ちゃんと改行されてきましたね。

 

これは、何も指定しない場合は改行されるように最後に改行文字である「 \n 」指定されているからです。

 

これを、改行させたくない場合は、以下のようにend=”を指定します。ちなみにend=’\n’を入れれば普段通り改行されます。

 

end=’ \n_ ’と他の文字を入れても良いです。

In[]

Out[]

 

printの上書き

進捗表示の箇所で解説した方法ですが、printは実行するたびに、内容を表示する事ができます。

 

進捗表示の場合、多くの文字が沢山表示されると見づらくなってしまうので、上書きする方法をとります。

 

具体的には print の冒頭にキャリッジリターン \r を追加しつつ、改行させたくない場合に使用した end を end=” として上書きします。

 

下記のように 1 , 2 , 3 とprintしてみましょう。上書きされて最終的に3だけが表示されます。

In[]

Out[]

 

file出力

最後にfile出力ですが、私はこの機能を使ったことはありませんし、他の人が使っているのをみたことはないですが、機能としてあるので紹介します。

 

標準関数のopenで保存するファイルをfとして宣言しつつ、それを file の引数に渡します。

 

すると print する内容をファイルに保存することができます。

In[]

 

まとめ|Pythonのprint文の書き方【基本から応用まで】

Python print 書き方

Pythonのprintの使い方の基本的な内容から応用まで、ほぼ網羅的に解説させて頂きました。

 

printは普段から当然の如く使用している構文ですが、ここで改めて知識としてまとめて頂ければと思います。

 

 

関連記事 機械学習は挫折しやすい【挫折が多い原因と挫折回避の方法を教えます】

関連記事 無料あり:機械学習エンジニアの僕がおすすめするAI(機械学習)特化型プログラミングスクール3社


-python
-, ,

Copyright© Tommy blog  , 2020 All Rights Reserved.