閉じる

Python入門:print()の使い方と基本の表示サンプル集

Pythonでプログラムを書き始めると、まず最初に知っておきたいのが画面に文字を表示する方法です。

本記事では、標準出力に文字や数値を表示するための基本関数print()について、動作の基礎から書式指定、エスケープ、Unicodeの扱い、そして初心者がつまずきやすい点まで、サンプル付きで丁寧に解説します。

Pythonの標準出力 print()の基本と使い方

最初のprintサンプル

Pythonで画面に文字を表示するにはprint()を使います。

最初の一歩として、定番の「Hello, World!」を表示してみます。

Python
# hello.py
# 画面に文字列 "Hello, World!" を表示する最小サンプル

print("Hello, World!")  # ダブルクォートで文字列を記述
実行結果
Hello, World!

Pythonのprint()は、与えた値を文字列に変換して標準出力に表示し、最後に改行をつけるのが基本動作です。

文字列を表示する基本

文字列はシングルクォート'...'でもダブルクォート"..."でも書けます。

改行を含む複数行の文字列はトリプルクォートを使うと読みやすくなります。

Python
# 文字列リテラルのいろいろ

print('シングルクォート')         # '...'
print("ダブルクォート")           # "..."
print("""複数行の
テキストを
そのまま書けます""")             # """..."""
実行結果
シングルクォート
ダブルクォート
複数行の
テキストを
そのまま書けます

どちらの引用符を使うかは好みで構いませんが、文中に含めたい引用符と衝突しない方を選ぶとエスケープが少なく済みます。

数値や式の結果を表示

print()は数値もそのまま渡せます。

式を評価して結果を表示することも可能です。

Python
# 数値と式の表示

print(123)                # 整数
print(3.14159)            # 浮動小数点数
print(1 + 2 * 3)          # 演算の結果 (優先順位に注意)
x = 10
y = 4
print(x, "+", y, "=", x + y)  # 文字列と数値を並べて表示
実行結果
123
3.14159
7
10 + 4 = 14

数値を文字列に変換する処理はprint()が自動で行いますので、初心者はまず「そのまま渡す」で大丈夫です。

複数の値をまとめて表示

複数の値はカンマで区切って並べると、その間にスペースを挟んで表示されます。

区切り文字はsep引数で変更できます。

Python
# 複数値の表示と区切り文字 sep

print("A", "B", "C")                    # デフォルトはスペース区切り
print("A", "B", "C", sep=",")           # カンマ区切り
print("2025", "09", "10", sep="-")      # ハイフンで日付風に
実行結果
A B C
A,B,C
2025-09-10

区切り文字の制御はログ行やCSV風の出力に便利です。

以下にprint()の主な引数をまとめます。

引数役割
sep複数値の区切り文字print("A","B",sep=":")
end行末の文字列print("Hello", end="")
file出力先ファイルオブジェクトprint("err", file=sys.stderr)
flushバッファを即時フラッシュprint("...", flush=True)

標準出力の最後に自動でつく改行はendで変更できます

空行を出力する

空行はprint()を引数なしで呼ぶだけです。

逆に、end=""を使うと改行をつけずに出力できます。

Python
# 空行と改行の有無

print("1行目")
print()                 # 空行を1つ出力
print("3行目")
print("同じ行に", end="")   # 行末で改行しない
print("続けて表示")         # ここで改行
実行結果
1行目

3行目
同じ行に続けて表示

日本語とUnicodeを表示

Python 3はUnicodeが標準です。

日本語や絵文字もそのまま表示できます。

Python
# 日本語とUnicode

print("こんにちは、Python")         # 日本語
print("寿司は🍣です")               # 絵文字
print("\u3042 \u3044 \u3046")      # Unicodeコードポイント(ひらがなの あ い う)
print("\N{SUSHI}")                  # Unicode名で指定(環境によって表示可否あり)
実行結果
こんにちは、Python
寿司は🍣です
あ い う
🍣

一部の端末やフォントでは絵文字が表示できないことがあります

後述のエンコーディングの節も参照してください。

引用符とバックスラッシュの扱い

文字列中で同じ種類の引用符を含めたい場合はエスケープが必要です。

Windowsのパスなどバックスラッシュが多い文字列にはraw文字列が便利です。

Python
# 引用符とバックスラッシュ

print('I\'m fine.')          # シングルクォート内で ' を使うので \" でなく \' をエスケープ
print("He said \"OK\".")     # ダブルクォート内で " をエスケープ
print("C:\\Users\\Alice")    # バックスラッシュを2つ重ねる
print(r"C:\Users\Alice")     # r"...": raw文字列。バックスラッシュをそのまま扱う
実行結果
I'm fine.
He said "OK".
C:\Users\Alice
C:\Users\Alice

raw文字列は末尾を単独のバックスラッシュで終わらせられないという制限があります。

必要なときは通常の文字列で"...\"のように書きます。

改行\nやタブ\tなどのエスケープ

制御文字はバックスラッシュ記法を使って表現します。

Python
# 改行とタブのエスケープシーケンス

print("1行目\n2行目\n3行目")  # \n は改行
print("列1\t列2\t列3")        # \t はタブ
実行結果
1行目
2行目
3行目
列1    列2    列3

複雑なレイアウトはタブよりも書式指定や幅指定で整える方が意図通りになりやすいです。

文字列の整形と書式指定のprintサンプル

f文字列で読みやすく表示

Python 3.6以降ではf文字列が使えます。

変数や式を{}内に直接書け、フォーマット指定も可能です。

Python
# f文字列の基本と書式指定

name = "Alice"
score = 93.456
print(f"名前: {name}, 得点: {score}")           # 変数をそのまま埋め込み
print(f"得点(小数2桁): {score:.2f}")            # 小数点以下2桁
print(f"パーセント: {score/100:.1%}")           # パーセント表示
print(f"カンマ区切り: {1234567:,}")             # 3桁ごとにカンマ
実行結果
名前: Alice, 得点: 93.456
得点(小数2桁): 93.46
パーセント: 93.5%
カンマ区切り: 1,234,567

f文字列は読みやすく高速で、日常的な整形に最も適しています

formatで柔軟に書式指定

str.format()は位置引数や名前付き引数を柔軟に組み合わせられます。

テンプレートを再利用したい場合に便利です。

Python
# str.format の活用

template = "氏名: {who}, 年齢: {age}歳"
print(template.format(who="Bob", age=20))     # 名前付き
print("{0} + {0} = {1}".format("A", "AA"))    # 同じ引数を複数回利用
print("{:>8} | {:<8}".format("右寄せ", "左寄せ"))  # 幅と寄せ
実行結果
氏名: Bob, 年齢: 20歳
A + A = AA
      右寄せ | 左寄せ

小数点の桁数やゼロ埋めを指定

数値の見た目はフォーマット指定子で細かく制御できます。

Python
# 桁数・ゼロ埋め・指数表記など

pi = 3.1415926535
n = 42
print(f"小数点2桁: {pi:.2f}")      # => 3.14
print(f"ゼロ埋め5桁: {n:05d}")     # => 00042
print(f"指数表記: {pi:.3e}")       # => 3.142e+00
実行結果
小数点2桁: 3.14
ゼロ埋め5桁: 00042
指数表記: 3.142e+00

整数はd、実数はfeを使うのが基本です。

幅指定と左右寄せを整える

表形式の出力では幅と寄せを揃えると読みやすくなります。

Python
# 幅(=最小表示幅)と寄せの制御

items = [("Apple", 120), ("Banana", 80), ("Cherry", 550)]
for name, price in items:
    print(f"{name:<10} | {price:>6,d} 円")    # 名前は左寄せ、価格は右寄せ・カンマ区切り
実行結果
Apple      |    120 円
Banana     |     80 円
Cherry     |    550 円

寄せ記号は<(左寄せ)、>(右寄せ)、^(中央寄せ)です。

任意の埋め文字も指定できます。

Python
# 埋め文字と中央寄せ

print(f"{'Title':=^20}")   # = で埋めて中央寄せ、幅20
実行結果
=======Title========

全角文字は1文字の見かけ幅が異なるため、環境によってはぴったり揃わないことがあります

必要に応じて等幅フォントやライブラリの導入を検討してください。

数値のカンマ区切りや%表示

頻用される表現は指定子で簡単に書けます。

Python
# カンマ区切りとパーセント

n = 12345678
ratio = 0.0765
print(f"カンマ区切り: {n:,}")
print(f"パーセント: {ratio:.2%}")   # 小数2桁の%表示
実行結果
カンマ区切り: 12,345,678
パーセント: 7.65%

桁区切りは:,、割合は:%で覚えると実務で即戦力になります

よくあるつまずきと対処法

全角記号や引用符のミスによるエラー

日本語入力のままprint("Hello")のように全角の括弧を使うとSyntaxErrorになります。

Python
# よくあるミス(実行するとエラー)
# print("Hello")  # 全角の(,)はNG
# print("He said "OK"")  # 引用符の不一致もNG

正しくは半角の記号を使い、引用符はエスケープまたは別の種類にします。

Python
print("He said \"OK\"")   # もしくは print('He said "OK"')
実行結果
He said "OK"

エディタの入力モードを確認し、リントやフォーマッタを導入すると初歩的なミスを自動で検出できます

エンコーディングによる文字化けの回避

Python 3ではソースコードの既定エンコーディングはUTF-8です。

とはいえ、表示先の端末やフォントによっては文字化けや表示不可が起きます。

対処の要点は次の通りです。

箇条書きに留め、重要点だけ整理します。

  • Windowsの古いコンソールではUTF-8表示が不安定です。Windows TerminalかVS Codeのターミナルを使うと安定します。どうしてもコマンドプロンプトを使うならchcp 65001でUTF-8に切り替えます。
  • 一時的にPythonの入出力をUTF-8に固定したい場合は環境変数PYTHONIOENCODING=utf-8を設定します。
  • 外部ファイルへ出力する際はopen(..., encoding="utf-8")を明示します。
Python
# ファイルにUTF-8で書き出し
with open("out.txt", "w", encoding="utf-8") as f:
    print("日本語OK 🍣", file=f)   # print の file 引数で出力先を指定

生成されたファイルはUTF-8対応のエディタで正しく表示できます。

改行コードの違いを意識した表示

Pythonのprint()end="\n"が既定で、\nは各OSに適した改行に扱われます。

通常は気にしなくて構いませんが、他システムと厳密に改行コードを合わせたい場合は注意します。

Python
# 末尾の改行を制御したいとき

print("改行しない出力", end="")   # 改行なし
print("CRのみ", end="\r")        # Windowsメモ帳などでは意図と異なる見え方に注意

ファイルに書く場合、CSVなどではnewline=""の指定が推奨されます。

Python
import csv

rows = [["name", "score"], ["Alice", 95], ["Bob", 88]]
with open("scores.csv", "w", encoding="utf-8", newline="") as f:
    writer = csv.writer(f)
    writer.writerows(rows)

テキスト処理で困ったら「エンコーディングはUTF-8」「改行は環境に任せる」を基本にし、必要なときにだけ明示指定するのが安定します。

まとめ

本記事では、標準出力に表示するためのprint()の基礎から、書式指定やエスケープ、Unicode、実務での注意点までを段階的に解説しました。

まずはprint()で文字列や数値を表示し、sependで出力を整え、必要に応じてf文字列やformat()で見栄えを調整する流れを身につけてください。

日本語や絵文字を扱う際は環境のエンコーディングとフォントに注意し、困ったらUTF-8を基準に考えると解決が早いです。

最初の一歩としてprint()を味方にし、動作確認やデバッグにも活用していきましょう。

この記事を書いた人
エーテリア編集部
エーテリア編集部

人気のPythonを初めて学ぶ方向けに、文法の基本から小さな自動化まで、実際に手を動かして理解できる記事を書いています。

クラウドSSLサイトシールは安心の証です。

URLをコピーしました!