PR

【Python】print関数(プリント)の使い方を3分でわかりやすく解説

Python

Pythonという言語を学び始めると、最初に出会う関数の1つがprint関数です。この関数の魔法のような能力は、どのような情報でもユーザーのスクリーンに出力できることにあります。

参考 Pythonとは?その特徴をわかりやすく解説

シンプルでありながらも強力なこの関数は、デバッグから情報の表示、そしてデータのログ取りまで、あらゆる場面で使われます。

この記事では、print関数の基本的な使い方から、より複雑な使い方まで初心者向けにサンプルコード付きでわかりやすく解説します。

このページで学べる内容
  • 基本的なprint関数の使い方
  • print関数の詳細
    • 引数、sep、end、file、flushの各パラメータ
  • print関数とフォーマット
  • エラーハンドリングとprint関数

Pythonエンジニアを目指す方であれば知らないと恥ずかしい超・基本知識の1つです。是非最後までご覧ください。

参考 Pythonの基本的な書き方・構文ルール

スポンサーリンク

Python:print関数の基本

print関数はPythonの組み込み関数であり、コンソール画面に値を出力するために使われます。print関数の基本的な使い方を理解することは、Pythonのコーディングスキルを磨く初めの一歩です。

参考 プログラミングの関数とは?

まず、文字列を出力する最も基本的な使用例から見てみましょう。

print("Hello, World!")

上記のコードを実行すると、コンソールに"Hello, World!"と表示されます。これは、Pythonのprint関数が最もよく利用される方法の1つ。

print関数は数値を出力することもできます。

print(123)
print(3.14)

これらのコードはそれぞれ、整数の123と浮動小数点数の3.14を出力します。

また、print関数は複数の引数を指定することも可能です。引数をコンマで区切ることにより、一度に複数の値を出力することができます。

print("Hello,", "World!", "This", "is", "Python.")

このコードは、コンソールに"Hello, World! This is Python."と出力します。コンマを使用すると、出力される各値の間にスペースが自動的に挿入されます。

このように、print関数は非常に直感的で簡単に使うことができます。

print関数は、Pythonのプログラムのデバッグやデータの視覚化に非常に役立ちます。この関数を理解して使いこなせるようになることで、あなたのPythonコーディングスキルは大幅に向上します。

Pythonの「組み込み関数」とは?

組み込み関数とは、Pythonにデフォルトで組み込まれている関数のこと。これらの関数は追加のインポート操作なしに、いつでもどこでも利用可能です。したがって、print関数もPythonをインストールすればすぐに利用可能です。

Pythonの標準ライブラリには、多くの便利な組み込み関数が含まれています。

主な組み込み関数
  • print(): 引数として与えられた値を標準出力(通常はコンソール)に表示します。
  • len(): コレクション(リストやタプル、辞書、セット、文字列など)の要素数を返します。
  • max(), min(), sum(): 数値のリストやタプルなどから、それぞれ最大値、最小値、合計値を返します。

これらの組み込み関数は、日常的なプログラミングタスクを容易にするための基本的なツールとして用いられます。これらの関数はPythonの重要な部分を形成しており、Pythonプログラムのあらゆる部分で頻繁に使われます。

Python:print関数の詳細

print関数の構文ルールは以下の通り。

実はちょっとだけ複雑なこともできるのがprint関数の特徴です。

print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)

print:objects

print関数は、任意の数の引数を受け取ることができます。これらの引数は、スペースで区切られて一緒に出力されます。引数はどんなデータ型でも構いません。例えば文字列、数値、リスト辞書などが可能です。

print("Hello,", "World!", 123, 3.14, ["apple", "banana", "cherry"], {"name": "John", "age": 30})

# Hello, World! 123 3.14 ['apple', 'banana', 'cherry'] {'name': 'John', 'age': 30}

print:sep

sepは、print関数で出力する各オブジェクト間に挿入されるセパレータ(区切り文字)を指定します。

このパラメータはオプションで、sepを指定しない場合には区切り文字はデフォルトのスペース(' ')になります。

sepパラメータを利用することで、これらのオブジェクト間の区切り文字を自由に設定することが可能です。例えば、カンマやハイフン、あるいは特定の文字列など、任意の文字列をセパレータとして使用できます。

print("2023", "06", "13", sep="-")

# 2023-06-13

2023", "06", "13"の各文字列の間に、ハイフンが挿入されています。これは日付を表現する一般的な形式で、sepパラメータを使って簡単に実現できます。

このように、sepパラメータを使用することで、出力のフォーマットを柔軟に制御することができます。

print:end

endパラメータは、出力の末尾に追加される文字を指定します。デフォルトは改行文字('\n')です。この値を変更すると、出力後の行動を制御できます。

print("Hello, World!", end=" -- ")
print("This is Python.")

# Hello, World! -- This is Python.

print:file

fileパラメータは、出力先のファイルオブジェクトを指定します。デフォルトは標準出力(sys.stdout)ですが、他のファイルオブジェクトを指定することで、出力結果をファイルに書き込むことができます。

with open('output.txt', 'w') as f:
    print("Hello, World!", file=f)

# "Hello, World!"という文字列を'output.txt'というファイルに書き込みます。

参考 with構文

print:flush

flushパラメータは、出力をバッファリングするか、すぐに出力するかを制御します。デフォルトはFalseで、出力はバッファに保存され、バッファが満たされると出力先に送られます。

一部のケースでは、出力を即座に反映させたいという場合があります。例えば、長時間かかるプロセスの進行状況をリアルタイムで表示したい場合などです。そういった場合、flush=Trueを指定することで、print関数が呼び出される度に出力をすぐに反映させることができます。

import time

for i in range(10):
    print(i, end='', flush=True)
    time.sleep(1)

参考 for文 / range関数

上記のコードは、1秒ごとに0から9までの数字を順番に出力します。end=''を指定しているため、改行せずに次の数字が出力されます。そして、flush=Trueが指定されているため、print関数が呼び出される度に出力がすぐに反映されます。

flushパラメータは、通常はデフォルトのFalseのままで問題ないですが、上記のような特殊な状況で便利に使えるオプションです。

Python:print関数とフォーマット

Pythonのprint関数では、フォーマット文字列(format string)と組み合わせることで、出力の形式を自由に制御することができます。

フォーマット文字列とは、文字列内にプレースホルダー({})を配置し、その部分を指定の値で置き換えることができる特殊な文字列のことを指します。

図1:format
a = "私の名前は{}です。"
print(a.format("山田太郎"))

# 私の名前は山田太郎です。

参考 formatメソッド

Pythonには、このフォーマット文字列を扱うための複数の方法が用意されています。最も基本的な方法は、上記のとおりformat()メソッドを使用する方法です。次に示すコードは、2つのプレースホルダーに値を挿入する例です。

print("Hello, {}. You are {} years old.".format("John", 30))

# Hello, John. You are 30 years old.

プレースホルダーの{}部分が、format()メソッドに渡された引数に置き換えられています。

Print:f-string

もう1つの方法が "f-string" です。

Python 3.6以降では、f-string(フォーマット済み文字列リテラル)という機能が導入されました。f-stringを使うと、文字列内に直接変数の値を埋め込むことが可能です。

name = "John"
age = 30
print(f"Hello, {name}. You are {age} years old.")

# Hello, John. You are 30 years old.
f-stringをさらに詳しく

f-stringは、他の文字列フォーマット方法と比べて読みやすく、実行速度も早いという特長があります。構文ルールは以下の通り。

f"文字列 {変数名} 文字列"

文字列はダブルクォート(")またはシングルクォート(')で囲み、その前にfまたはFを置きます。そして、文字列中の波括弧({})の中に、変数名や式を記述します。波括弧内の内容はPythonの式として評価され、その結果が文字列に挿入されます。

f-stringの波括弧内ではPythonの式を使用できるため、計算結果を直接文字列に埋め込むことも可能です。たとえば、以下のようなこともできるということ。

a = 10
b = 20
print(f"Sum: {a + b}")

# Sum: 30
# {a + b}の部分で加算が行われ、その結果が文字列に挿入されています。

Python:print関数でエラーハンドリング

プログラムを書いていると、さまざまなエラーに遭遇します。

それらのエラー情報を適切にハンドリング(処理)し、ユーザーや開発者に情報を提供することは重要な作業となるのですが、ここでもprint関数が重要な役割を果たします。

Pythonでは、try-exceptブロックを使用してエラーを捕捉します。この中で発生したエラーは、exceptブロックで捉えられ、その中でエラーメッセージの出力や適切な処理を行うことができます。

try:
    # 0で割るとエラーが発生します
    result = 10 / 0
except ZeroDivisionError as e:
    print(f"エラーが発生しました: {e}")

# エラーが発生しました: division by zero

この例では、ZeroDivisionErrorという種類のエラーが発生した場合、そのエラーメッセージを出力しています。

このように、print関数はエラーメッセージの出力に活用され、エラーハンドリングの一環として非常に重要な役割を果たします。エラーメッセージを適切に出力することで、エラーの原因を特定しやすくなり、プログラムのデバッグや改善が効率的に行えます。

参考 try-except

Python:print関数を利用する際の注意点

Pythonのprint関数は比較的簡単に使用できますが、いくつかの注意点があります。最後にこれら注意点を押さえて、print関数をマスターしておきましょう。

注意点1 文字列と数値の結合

Pythonでは、文字列と数値を直接結合することはできません。したがって、次のようなコードはエラーを引き起こします。

age = 20
print("I am " + age + " years old.")

この場合、str関数を使って数値を文字列に変換するか、f-stringを使用して解決します。

age = 20
print("I am " + str(age) + " years old.")
# または
print(f"I am {age} years old.")

注意点2 エンコーディングの問題

特定の文字やシンボルを出力する際に、正しく表示されない場合があります。これは、使用しているエンコーディングがその文字やシンボルをサポートしていないことが原因。

Python 3ではデフォルトのエンコーディングはUTF-8で、多くの文字やシンボルをサポートしていますが、特殊な文字やシンボルを使用する場合は注意が必要です。

注意点3 ファイルへの出力

print関数でファイルへ出力する際、そのファイルが存在しない、または書き込み権限がないとエラーが発生します。ファイルへの出力はtry-exceptとセットで利用するのが定石です。

try:
    with open('output.txt', 'w') as f:
        print('Hello, World!', file=f)
except IOError as e:
    print(f"ファイル出力エラー: {e}")

以上のように、print関数は基本的に簡単に使用できますが、一部注意が必要な場面があります。これらを理解し、適切に対応することで、コードのバグを減らすことができます。

Python:print関数のまとめ

print関数のまとめ
  • print関数の基本的な使い方: print()を使用することで、様々な型のデータをコンソールに出力することができます。複数の引数を指定することで、それぞれの値を順に出力できます。
  • print関数の詳細なパラメータ:
    • sep: 値と値の間の区切り文字を指定します。デフォルトはスペースです。
    • end: 出力の末尾に追加する文字を指定します。デフォルトは改行です。
    • file: 出力先のファイルオブジェクトを指定します。デフォルトは標準出力です。
    • flush: 出力をすぐにフラッシュ(出力)するかを指定します。デフォルトはFalseです。
  • フォーマットストリング: f-stringを使うことで、文字列の中に変数の値を直接埋め込むことができます。また、フォーマット指定子を使うことで、値の表示形式を制御することも可能です。
  • エラーハンドリング: print関数はエラーハンドリングにおけるエラーメッセージの出力にも使われます。try-exceptブロックを使ってエラーを捕捉し、エラーメッセージを出力することができます。

始めてPythonを勉強するのは結構難しいですよね。

でもその悩みを抱えているのは一人じゃありません。全てのPython使いが同じ道を進んできました。

Pythonをはじめとするプログラミングスキルを武器に、時間と場所に捉われない自由な生き方を目指してみませんか?今すぐ行動したい方は以下の記事をチェック!

読者料典 Python入門:学習カリキュラム ←こちらから!

このWebサイトは現役のエンジニアが以下3点を目的として運営しています。

  1. 勉強:一度理解した内容を忘れないように。
    → アウトプットは「最強のインプット」である! 
  2. 備忘:忘れたとしても後から見返せるように。
    → 未来の自分への「お手紙」を書いています。 
  3. 共有:〇〇ってこうだったんだ!の感動をシェアできるように。
    → あなたの知識は誰かにとっての「価値ある情報」です。 

副業ブログの始め方はこちらから

スポンサーリンク
Python
シェアする
ビズドットオンラインをフォローする
タイトルとURLをコピーしました