Note 05 / Python

ごはん
気分でメニュー提案

Python 辞書データ random / urllib

CH 01どんなプログラムか

今日の気分で食べたいご飯を見つけるプログラムです。気分の番号を選ぶと、そのカテゴリからメニューをランダムに1つ選び、必要な材料とクックパッドの検索リンクを表示します。ターミナルでの実行例:

=======================================================
 今日の気分で食べたいご飯を見つけるプログラム
=======================================================
1. 元気!がっつり食べたい
...
今日の気分の番号を選んでください: 1

おすすめメニュー: 生姜焼き
必要な材料: 豚ロース, 生姜, 醤油, みりん
レシピを見る: https://cookpad.com/search/...

CH 026つの気分

それぞれの気分に10品ずつ、メニューと材料を登録しています。

Mood 1

元気!がっつり食べたい

Mood 2

疲れてる…簡単に済ませたい

Mood 3

ヘルシー/さっぱりしたもの

Mood 4

甘いものが食べたいスイーツ気分

Mood 5

節約で安く済ませたい

Mood 6

ちょっと贅沢・お祝いしたい

CH 03コードのポイント

気分 → メニュー → 材料 を辞書で持つ

MOOD_MAP = {
    "1": {"label": "元気!がっつり食べたい", "meals": {
        "カツ丼": ["豚ロース", "卵", "玉ねぎ", "だし", "ご飯"],
        "生姜焼き": ["豚ロース", "生姜", "醤油", "みりん"],
        # ...
    }},
    # "2"〜"6" も同じ形
}

ランダムに選んで、検索リンクを作る

meals = MOOD_MAP[mood]["meals"]
meal_name = random.choice(list(meals.keys()))
ingredients = meals[meal_name]

print("\nおすすめメニュー:", meal_name)
print("必要な材料:", ", ".join(ingredients))

# クックパッドリンク生成
encoded = urllib.parse.quote(meal_name)
url = f"https://cookpad.com/search/{encoded}"
Point 日本語のメニュー名は URL にそのまま入れられないため、urllib.parse.quote でエンコードしてから検索URLに組み込んでいる。
ソースコード全文(work6.py)