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歳です
おすすめ度:
- f文字列 ← 一番おすすめ!読みやすくて書きやすい
- formatメソッド ← 古いPythonでも使える
- %記法 ← 古すぎるのでおすすめしない
文字列に変数を埋め込む方法がわかったら、次は実際の開発でよく使う応用テクニックを学びましょう。
実際の開発で役立つ応用テクニック

デバッグに便利な変数名付き表示
プログラムの不具合を調べるときに便利な技:
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="...")
今日から使えるコツ:
- f文字列を積極的に使う:読みやすくて書きやすい
- デバッグにはprint(f”{変数名 = }”)を活用:変数の確認が楽
- sepとendで出力をきれいに整える:見た目が大幅改善
- エラーメッセージは分かりやすく表示:トラブル解決が早くなる
コメント