Pythonのprint関数:基本から応用までの徹底ガイド

python

Pythonでプログラミングを始めると、一番最初に出会うのが「print関数」です。

「Hello World」を表示するときも、変数の中身を確認するときも、プログラムからユーザーにメッセージを伝えるときも、print関数が活躍します。

まさにPythonプログラミングの「基本中の基本」と言えるでしょう。

でも、「print関数なんて簡単でしょ?文字を表示するだけじゃないの?」と思っていませんか?

実は、print関数にはたくさんの便利な機能が隠されています。

これらを知っているかどうかで、プログラムの見やすさや書きやすさが大きく変わってくるのです。

この記事では、「プログラミング初めて」という方でも、print関数のすべてがわかるように、基本的な使い方から知って得する応用テクニックまで、具体例をたくさん使って丁寧に説明します。

スポンサーリンク

print関数の基本をマスターしよう

一番シンプルな使い方

print関数の基本的な使い方はとても簡単です:

print("こんにちは")

実行結果

こんにちは

コードの説明

  • print:「画面に表示して」という命令
  • ("こんにちは"):表示したい内容を括弧の中に入れる
  • ":文字列(文字)を表すときに使う記号

いろんなデータを表示してみよう

print関数は文字だけでなく、数字や計算結果も表示できます:

# 文字を表示
print("今日は良い天気ですね")

# 数字を表示
print(123)
print(3.14)

# 計算結果を表示
print(10 + 5)
print(20 - 8)
print(6 * 7)

実行結果

今日は良い天気ですね
123
3.14
15
12
42

変数の中身を表示する

プログラムでは、データを「変数」という箱に入れて使います。その中身もprint関数で表示できます:

name = "田中太郎"
age = 20
height = 175.5

print(name)
print(age)
print(height)

実行結果

田中太郎
20
175.5

よくある間違いと正しい書き方

間違い1:引用符を忘れる

print(こんにちは)  # エラーになる
print("こんにちは")  # 正しい

間違い2:括弧を忘れる

print "こんにちは"  # エラーになる(Python2の書き方)
print("こんにちは")  # 正しい(Python3の書き方)

間違い3:大文字小文字を間違える

Print("こんにちは")  # エラーになる
PRINT("こんにちは")  # エラーになる
print("こんにちは")  # 正しい(すべて小文字)

基本的な使い方がわかったら、次は複数の情報を一度に表示する方法を覚えましょう。

複数の値をまとめて表示する方法

カンマで区切って複数表示

print関数では、カンマ(,)で区切ることで、複数の値を一度に表示できます:

name = "佐藤花子"
age = 25
city = "東京"

print("名前:", name, "年齢:", age, "住所:", city)

実行結果

名前: 佐藤花子 年齢: 25 住所: 東京

変数だけを並べて表示

score1 = 85
score2 = 92
score3 = 78

print("テストの点数:", score1, score2, score3)

実行結果

テストの点数: 85 92 78

計算と一緒に表示

price = 1200
tax_rate = 0.1
total = price * (1 + tax_rate)

print("商品価格:", price, "税込み価格:", total)

実行結果

商品価格: 1200 税込み価格: 1320.0

リストの内容を表示

fruits = ["りんご", "バナナ", "みかん"]
numbers = [1, 2, 3, 4, 5]

print("果物:", fruits)
print("数字:", numbers)

実行結果

果物: ['りんご', 'バナナ', 'みかん']
数字: [1, 2, 3, 4, 5]

複数の値を表示する方法がわかったら、次は表示の仕方をもっと細かく調整する方法を学びましょう。

表示の仕方をカスタマイズしよう

区切り文字を変える(sep引数)

通常、複数の値はスペースで区切られますが、sep(セパレーター)を使って区切り文字を変更できます:

# スペースの代わりにハイフンで区切る
print("2025", "06", "05", sep="-")

実行結果

2025-06-05

いろんな区切り文字の例

print("apple", "banana", "cherry", sep=", ")    # カンマとスペース
print("東京", "大阪", "名古屋", sep=" / ")        # スラッシュ
print("1", "2", "3", "4", "5", sep="")          # 区切りなし
print("A", "B", "C", sep=" → ")                 # 矢印

実行結果

apple, banana, cherry
東京 / 大阪 / 名古屋
12345
A → B → C

行末の文字を変える(end引数)

通常、print関数は表示後に改行しますが、endを使って行末の文字を変更できます:

print("処理中", end="...")
print("完了")

実行結果

処理中...完了

いろんな行末文字の例

print("読み込み中", end=" ")
print("50%", end=" ")
print("完了")

print("カウントダウン:", end="")
for i in range(3, 0, -1):
    print(i, end="...")
print("スタート!")

実行結果

読み込み中 50% 完了
カウントダウン:3...2...1...スタート!

改行なしで連続表示

print("■", end="")
print("■", end="")
print("■", end="")
print("■", end="")
print("■")  # 最後だけ改行あり

print("プログレスバー完成!")

実行結果

■■■■■
プログレスバー完成!

sepとendを組み合わせる

fruits = ["りんご", "バナナ", "みかん"]
print("今日の果物:", end="")
print(fruits[0], fruits[1], fruits[2], sep=" + ", end=" = ")
print("フルーツサラダ!")

実行結果

今日の果物:りんご + バナナ + みかん = フルーツサラダ!

表示の細かい調整ができるようになったら、次は文字列の中に変数を埋め込む方法を覚えましょう。

文字列の中に変数を埋め込む方法

f文字列(最もおすすめ!)

Python 3.6以降では、「f文字列」という便利な機能が使えます。文字列の前にfをつけて、変数を{}で囲むだけです:

name = "山田一郎"
age = 30
city = "大阪"

print(f"{name}さんは{age}歳で、{city}に住んでいます")

実行結果

山田一郎さんは30歳で、大阪に住んでいます

計算もできる

price = 1500
quantity = 3

print(f"商品価格: {price}円")
print(f"数量: {quantity}個")
print(f"合計: {price * quantity}円")

実行結果

商品価格: 1500円
数量: 3個
合計: 4500円

小数点以下の桁数を指定

pi = 3.14159265359
score = 85.6666

print(f"円周率: {pi:.2f}")      # 小数点以下2桁
print(f"平均点: {score:.1f}")   # 小数点以下1桁

実行結果

円周率: 3.14
平均点: 85.7

formatメソッド(古い方法だが知っておくと良い)

name = "鈴木花子"
score = 88

print("{}さんの点数は{}点です".format(name, score))
print("{0}さんの点数は{1}点です".format(name, score))  # 番号指定
print("{name}さんの点数は{score}点です".format(name=name, score=score))  # 名前指定

実行結果

鈴木花子さんの点数は88点です
鈴木花子さんの点数は88点です
鈴木花子さんの点数は88点です

%記法(とても古い方法)

name = "田中太郎"
age = 25

print("%sさんは%d歳です" % (name, age))

実行結果

田中太郎さんは25歳です

おすすめ度

  1. f文字列 ← 一番おすすめ!読みやすくて書きやすい
  2. formatメソッド ← 古いPythonでも使える
  3. %記法 ← 古すぎるのでおすすめしない

文字列に変数を埋め込む方法がわかったら、次は実際の開発でよく使う応用テクニックを学びましょう。

実際の開発で役立つ応用テクニック

デバッグに便利な変数名付き表示

プログラムの不具合を調べるときに便利な技:

x = 10
y = 20
z = x * y

# 変数名も一緒に表示
print(f"x = {x}")
print(f"y = {y}")  
print(f"z = {z}")

# より簡潔に書く方法(Python 3.8以降)
print(f"{x = }")
print(f"{y = }")
print(f"{z = }")

実行結果

x = 10
y = 20
z = 200
x = 10
y = 20
z = 200

表形式でデータを表示

# 商品リストを表形式で表示
products = [
    ["商品A", 1200, 5],
    ["商品B", 800, 12],
    ["商品C", 1500, 8]
]

print("商品名\t価格\t在庫")
print("-" * 20)
for product in products:
    print(f"{product[0]}\t{product[1]}円\t{product[2]}個")

実行結果

商品名	価格	在庫
--------------------
商品A	1200円	5個
商品B	800円	12個
商品C	1500円	8個

プログレスバーを作る

import time

total = 10
for i in range(total + 1):
    # プログレスバーの表示
    progress = "■" * i + "□" * (total - i)
    percentage = (i / total) * 100
    
    print(f"\r進行状況: [{progress}] {percentage:.0f}%", end="")
    time.sleep(0.5)  # 0.5秒待つ

print("\n処理完了!")

実行結果(動的に変化):

進行状況: [■■■■■■■■■■] 100%
処理完了!

ログ出力に便利な時刻付き表示

from datetime import datetime

def log_print(message):
    """時刻付きでメッセージを表示する関数"""
    current_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
    print(f"[{current_time}] {message}")

# 使用例
log_print("プログラム開始")
log_print("データ読み込み中...")
log_print("処理完了")

実行結果

[2025-06-06 14:30:15] プログラム開始
[2025-06-06 14:30:15] データ読み込み中...
[2025-06-06 14:30:15] 処理完了

条件によって表示を変える

score = 85

if score >= 90:
    print(f"素晴らしい!{score}点は優秀な成績です")
elif score >= 70:
    print(f"良好です。{score}点、よく頑張りました")
elif score >= 60:
    print(f"{score}点で合格です")
else:
    print(f"残念...{score}点は不合格です")

# 成績に応じた記号表示
stars = "★" * (score // 20)
print(f"評価: {stars}")

実行結果

良好です。85点、よく頑張りました
評価: ★★★★

エラーメッセージの表示

def divide_numbers(a, b):
    """数値を割り算する関数"""
    try:
        result = a / b
        print(f"{a} ÷ {b} = {result}")
        return result
    except ZeroDivisionError:
        print("エラー: 0で割ることはできません")
        return None
    except TypeError:
        print("エラー: 数値以外は計算できません")
        return None

# 使用例
divide_numbers(10, 2)    # 正常
divide_numbers(10, 0)    # エラー1
divide_numbers(10, "a")  # エラー2

実行結果

10 ÷ 2 = 5.0
エラー: 0で割ることはできません
エラー: 数値以外は計算できません

ファイルにも出力する

# 画面とファイルの両方に出力
def dual_print(message, filename="log.txt"):
    """画面とファイルの両方に出力する関数"""
    print(message)  # 画面に表示
    
    with open(filename, "a", encoding="utf-8") as file:
        file.write(message + "\n")  # ファイルに書き込み

# 使用例
dual_print("これは重要なメッセージです")
dual_print("処理が完了しました")

カラフルな出力(高度な技)

# ANSIエスケープシーケンスを使った色付き表示
class Colors:
    RED = '\033[31m'
    GREEN = '\033[32m'
    YELLOW = '\033[33m'
    BLUE = '\033[34m'
    RESET = '\033[0m'

def colored_print(message, color=Colors.RESET):
    """色付きでメッセージを表示"""
    print(f"{color}{message}{Colors.RESET}")

# 使用例
colored_print("エラーメッセージ", Colors.RED)
colored_print("成功メッセージ", Colors.GREEN)
colored_print("警告メッセージ", Colors.YELLOW)
colored_print("情報メッセージ", Colors.BLUE)

実行結果(対応端末では色付きで表示):

エラーメッセージ(赤色)
成功メッセージ(緑色)
警告メッセージ(黄色)
情報メッセージ(青色)

これらの応用テクニックを覚えると、プログラムがずっと使いやすく、見やすくなります。

print関数のよくある質問と回答

Q1: print文とprint関数の違いは?

A1: Python2ではprintは文(statement)でしたが、Python3では関数になりました。

# Python2(古い)
print "こんにちは"

# Python3(現在)
print("こんにちは")

Q2: print関数の出力先を変えることはできる?

A2: file引数を使って出力先を変更できます。

# ファイルに出力
with open("output.txt", "w") as f:
    print("ファイルに書き込み", file=f)

# エラー出力(標準エラー)に出力
import sys
print("エラーメッセージ", file=sys.stderr)

Q3: print関数を使わずに出力する方法はある?

A3: いくつかの方法があります。

import sys

# sys.stdout.write()を使用
sys.stdout.write("Hello\n")

# format()とsys.stdout.write()の組み合わせ
name = "太郎"
sys.stdout.write(f"こんにちは、{name}さん\n")

Q4: print関数の出力を文字列として取得できる?

A4: io.StringIOを使って可能です。

import io
import sys

# 出力をキャプチャ
old_stdout = sys.stdout
sys.stdout = captured_output = io.StringIO()

print("この出力をキャプチャします")
print("2行目の出力")

# 出力内容を取得
output = captured_output.getvalue()
sys.stdout = old_stdout

print("キャプチャした内容:")
print(output)

Q5: print関数でUnicode文字を表示するには?

A5: Python3では標準でUnicodeをサポートしています。

print("こんにちは ?")
print("Hello 世界 ?")
print("数学記号: α β γ δ ε")
print("矢印: ← ↑ → ↓")

まとめ

Pythonのprint関数について、基本から応用まで詳しく解説しました。

この記事で学んだこと

基本機能

  • 文字列、数値、変数の表示
  • 複数の値の同時表示
  • 正しい書き方と間違いやすいポイント

カスタマイズ機能

  • sep引数での区切り文字変更
  • end引数での行末文字変更
  • 改行制御と連続表示

文字列への変数埋め込み

  • f文字列(推奨):f"{変数}"
  • formatメソッド:"{}".format(変数)
  • %記法(非推奨):"%s" % 変数

実用的な応用技術

  • デバッグ用の変数表示
  • 表形式でのデータ表示
  • プログレスバーの作成
  • ログ出力機能
  • エラーハンドリング
  • ファイル出力
  • 色付き表示

覚えておきたい基本パターン

# 基本表示
print("メッセージ")

# 複数値表示
print("値1:", value1, "値2:", value2)

# f文字列(推奨)
print(f"{name}さんは{age}歳です")

# 区切り文字変更
print(value1, value2, value3, sep="-")

# 改行なし
print("処理中", end="...")

今日から使えるコツ

  1. f文字列を積極的に使う:読みやすくて書きやすい
  2. デバッグにはprint(f”{変数名 = }”)を活用:変数の確認が楽
  3. sepとendで出力をきれいに整える:見た目が大幅改善
  4. エラーメッセージは分かりやすく表示:トラブル解決が早くなる

コメント

タイトルとURLをコピーしました