4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

鬼滅の刃で学ぶPython基礎 ー`print` / `if` / `for` だけで“呼吸”を覚える

Posted at

はじめに

「プログラミング=難しい」を“呼吸”レベルまで落とし込む入門記事だ。
本稿では Python の超基本である printiffor を、鬼滅の刃の世界観になぞらえて学ぶ。アニメ・原作の重大なネタバレは避ける。


目次

  • 対象読者 / ゴール
  • 準備(実行環境)
  • 1. print:まずは声を出す(出力)
  • 2. 変数:技名や状態を入れて持ち運ぶ
  • 3. if / elif / else:分岐で“状況判断”
  • 4. for:柱稽古(反復処理)
  • 5. 小さなまとめアプリ:任務ログ出力
  • 練習問題(3問)
  • よくあるエラーと詰まりどころ
  • まとめ

対象読者 / ゴール

  • 対象:はじめてPythonを書く人、あるいは一度触ったがまだ不安な人。
  • ゴール
    1. 画面にメッセージを出せる(print
    2. 状態に応じて処理を分けられる(if / elif / else
    3. 繰り返し処理が書ける(for

準備(実行環境)

  • 任意の方法でPythonを実行できればよい。例:
    • 公式インタプリタ(python / python3 コマンド)
    • VS Code + Python 拡張
    • ブラウザ上のPython実行環境
  • 以下のサンプルは 1ファイル にコピペして実行してもよいし、対話モードで1行ずつ試してもよい。

1. print:まずは声を出す(出力)

print("水の呼吸・壱ノ型!")
print("水面斬り!")
  • print(...) はカッコ内の内容を画面に表示する関数である。
  • 文字列は "" で囲む。

出力例

水の呼吸・壱ノ型!
水面斬り!

2. 変数:技名や状態を入れて持ち運ぶ

breathing = "水の呼吸"
form = "参ノ型・流流舞い"

print(breathing + " / " + form)
  • 変数 = 値 で“名前付きの入れ物”を作る。
  • + は文字列の結合に使える。

出力例

水の呼吸 / 参ノ型・流流舞い

3. if / elif / else:分岐で“状況判断”

鬼滅の擬似仕様:

  • is_demon == True なら「首を斬る」
  • ただし 日光 が出ていれば「待機」
  • それ以外は見回り
is_demon = True      # 鬼を発見したか
is_sunlight = True   # 日光が出ているか

if is_demon and is_sunlight:
    print("日光に任せて待機する")
elif is_demon and not is_sunlight:
    print("首を斬る")
else:
    print("見回りを続行する")
  • and / or / not で条件を組み合わせる。
  • : の後ろの行は インデント(字下げ) が必要(半角スペース4つ推奨)。

4. for:柱稽古(反復処理)

4.1 リストを回す

hashira = ["水柱", "炎柱", "音柱", "恋柱", "岩柱", "霞柱", "蛇柱", "風柱"]

for h in hashira:
    print("今日の稽古担当:", h)

出力例(抜粋)

今日の稽古担当: 水柱
今日の稽古担当: 炎柱
...

4.2 range で回数を回す(何日も稽古)

for day in range(1, 4):  # 1,2,3日目
    print(f"{day}日目:素振り100回")

出力例

1日目:素振り100回
2日目:素振り100回
3日目:素振り100回

4.3 反復 × 条件分岐の合わせ技

missions = [
    {"場所": "藤の花の山", "": False},
    {"場所": "那田蜘蛛山", "": True},
    {"場所": "蝶屋敷",   "": False},
]

for m in missions:
    if m[""]:
        print(m["場所"], ":応援要請+出動")
    else:
        print(m["場所"], ":巡回のみ")

出力例

藤の花の山 :巡回のみ
那田蜘蛛山 :応援要請+出動
蝶屋敷 :巡回のみ

print(m["場所"], ":...") と引数をカンマで渡しているので、場所名と「:」の間に半角スペースが1つ入る。スペースなしで整形したいなら f-string を使って print(f"{m['場所']}:巡回のみ") のように書けばOK。


5. 小さなまとめアプリ:任務ログ出力

要件

  • 入力データ:隊員のリスト(名前・呼吸・累計討伐数)
  • 仕様:
    • 討伐数が 0:教育隊へ
    • 1~9:一般任務
    • 10 以上:難度高の任務
  • 使う構文:print / if-elif-else / for
slayers = [
    {"名前": "炭治郎", "呼吸": "", "討伐": 12},
    {"名前": "善逸",   "呼吸": "", "討伐": 5},
    {"名前": "伊之助", "呼吸": "", "討伐": 0},
]

for s in slayers:
    name = s["名前"]
    style = s["呼吸"]
    count = s["討伐"]

    if count == 0:
        grade = "教育隊で基礎から"
    elif count < 10:
        grade = "一般任務へ"
    else:
        grade = "難度高の任務へ"

    print(f"{name}{style}の呼吸)→ {grade}(累計{count}体)")

出力例

炭治郎(水の呼吸)→ 難度高の任務へ(累計12体)
善逸(雷の呼吸)→ 一般任務へ(累計5体)
伊之助(獣の呼吸)→ 教育隊で基礎から(累計0体)

練習問題(3問)

Q1:奇数日だけ稽古

1〜10 の日数を for で回し、奇数 の日だけ「型の練習」と出力せよ。
ヒント:if day % 2 == 1

Q2:簡易ランク付け

討伐数 kills に応じて出力を変える if-elif-else を書け。

  • 0:「訓練」
  • 1〜3:「下級任務」
  • 4 以上:「上級任務」

Q3:柱一覧フォーマット

hashira = [{"名前": "冨岡", "系統": "水"}, ...] の形のリストを用意し、
"水柱:冨岡" のような行を for + print で全員分出力せよ。


よくあるエラーと詰まりどころ

  • IndentationErroriffor の下の行が 字下げ されていない。半角スペース4つを揃える習慣をつける。
  • NameError:変数名のスペルが違う/定義前に使っている。先に宣言し、名前を統一する。
  • SyntaxError: invalid syntax
    • else if と書いた → elif が正しい。
    • カンマや : の付け忘れ。行末を確認する。
  • 比較演算子の取り違え
    • 代入 = と比較 == は別物。条件式では == を使う。

まとめ

  • print状態を可視化if意思決定for反復
  • まずはこの3つを“呼吸”のように体に入れると、ほとんどの入門課題は解ける。
  • 次の一歩は リスト/辞書の操作関数定義。だが本稿の3点を確実に身につけることが最優先だ。

余力があれば:

  • 練習問題の答えを自分で書き、出力例と一致するか確かめる。
  • 状態(昼/夜、場所、人数)を増やして if-elif-else を設計してみる。

(おまけ)練習問題の一例解答

自分の解で動いたあとに参照することを推奨。

# Q1
for day in range(1, 11):
    if day % 2 == 1:
        print(f"{day}日目:型の練習")

# Q2
kills = 4
if kills == 0:
    print("訓練")
elif 1 <= kills <= 3:
    print("下級任務")
else:
    print("上級任務")

# Q3
hashira = [
    {"名前": "冨岡", "系統": ""},
    {"名前": "煉獄", "系統": ""},
    {"名前": "宇随", "系統": ""},
]
for h in hashira:
    print(f"{h['系統']}柱:{h['名前']}")

執筆者メモ:print / if / for は最小構成の“刀” だ。
この3本の型を磨けば、次の章(関数・コレクション操作・ファイル入出力)もすんなり入るはずである。
健闘を祈る。

4
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?