Pythonプログラミング体験|30分で動くコードを書こう
プログラミング初心者でも30分で実際に動くPythonコードが書ける体験型ガイド。簡単なゲームからWebアプリまで、すぐに試せる実践的なコード例を紹介します。
Pythonプログラミング体験|30分で動くコードを書こう
プログラミングって本当に難しいの?
みなさん、こんな風に思っていませんか?
「プログラミングって難しそう」 「コードが複雑で理解できない」 「何時間も勉強しないと動かない」
実は、そんなことありません。
30分あれば、実際に動くプログラムが作れるんです。 今回は、そんな体験をお届けします。
この記事を読みながら一緒にコードを書いてみましょう。 きっとプログラミングが楽しくなりますよ!
最初の5分:Python環境をチェックしよう
まずは、Pythonが動くかテストしてみましょう。
簡単な動作確認をしてみよう
# まずはPythonが動くかテストしてみようprint("Hello, Python!")print("プログラミング体験、始めましょう!")
このコードを実行してみてください。 「Hello, Python!」と表示されれば準備完了です。
少し計算もしてみましょう。
# 簡単な計算もできますresult = 10 + 20print(f"10 + 20 = {result}")
ここでは、result
という名前の箱に計算結果を入れています。
f
を使うと、計算結果を文字の中に入れて表示できます。
今日の日付も表示してみよう
# 今日の日付も表示できますfrom datetime import datetimenow = datetime.now()print(f"今日は{now.strftime('%Y年%m月%d日')}です")
datetime
というツールを使って、今日の日付を取得しています。
strftime
で日付の表示形式を指定できます。
Pythonがない場合の解決方法
もしPythonがインストールされていなくても大丈夫です。
# オンラインでPythonを試せるサービスonline_options = [ "Google Colab(無料、Googleアカウントのみ必要)", "Replit(ブラウザでプログラミング)", "CodePen(簡単なコード実行)", "Trinket(教育向けオンライン環境)"]
print("オンラインでPythonを試せるサービス:")for i, option in enumerate(online_options, 1): print(f"{i}. {option}")
この例では、enumerate
を使って番号付きのリストを作っています。
ブラウザだけでもプログラミングが楽しめますね。
10分チャレンジ:おみくじプログラムを作ろう
今度は、運勢を占うおみくじプログラムを作ってみましょう。
基本版:シンプルなおみくじ
まずは基本的なおみくじから始めます。
# おみくじプログラム(基本版)import random
# 運勢のリストfortunes = ["大吉", "中吉", "小吉", "吉", "末吉", "凶"]
print("🎌 今日のおみくじ 🎌")print("=" * 20)
# ランダムに運勢を選ぶtoday_fortune = random.choice(fortunes)print(f"あなたの今日の運勢は『{today_fortune}』です!")
このコードの仕組みを説明しますね。
最初のimport random
では、ランダムな処理を行うためのツールを読み込んでいます。
fortunes
というリストに、可能な運勢を全部入れています。
# 運勢に応じたメッセージif today_fortune == "大吉": print("🌟 素晴らしい一日になりそうです!")elif today_fortune == "中吉": print("😊 いいことがありそうですね")elif today_fortune in ["小吉", "吉"]: print("🙂 平穏な一日を過ごせそうです")else: print("😌 のんびり過ごすのがよさそうです")
if
文を使って、運勢によって違うメッセージを表示しています。
elif
は「もしくは」という意味です。
発展版:詳細なアドバイス付きおみくじ
今度は、もう少し高度なおみくじを作ってみましょう。
# おみくじプログラム(発展版)import randomfrom datetime import datetime
# 詳細な運勢情報fortune_details = { "大吉": { "ラッキーカラー": "金色", "ラッキーナンバー": 7, "アドバイス": "積極的に行動すると良い結果が得られます" }, "中吉": { "ラッキーカラー": "青色", "ラッキーナンバー": 3, "アドバイス": "周りの人とのコミュニケーションを大切に" }, "小吉": { "ラッキーカラー": "緑色", "ラッキーナンバー": 5, "アドバイス": "小さな変化が幸運を呼び込みます" }}
ここでは辞書
という仕組みを使っています。
運勢をキーにして、詳細情報を取り出せるようになっています。
def draw_omikuji(): """おみくじを引く関数""" print("🎋 詳細おみくじ 🎋") print("=" * 30) # 現在の時刻を表示 now = datetime.now() print(f"占い時刻: {now.strftime('%H時%M分')}") # 運勢を決定 fortune = random.choice(list(fortune_details.keys())) details = fortune_details[fortune] # 結果表示 print(f"🔮 運勢: {fortune}") print(f"🎨 ラッキーカラー: {details['ラッキーカラー']}") print(f"🔢 ラッキーナンバー: {details['ラッキーナンバー']}") print(f"💡 アドバイス: {details['アドバイス']}") return fortune
def
を使って、おみくじを引く処理を関数にしました。
関数にすることで、コードが整理されて読みやすくなります。
10分チャレンジ:数当てゲームを作ろう
次は、コンピューターとの対戦ゲームを作ってみましょう。
インタラクティブな数当てゲーム
# 数当てゲームimport random
def number_guessing_game(): """数当てゲームのメイン処理""" print("🎮 数当てゲーム 🎮") print("=" * 25) print("コンピューターが1〜10の数字を考えました") print("3回以内に当ててください!") # コンピューターが数字を選ぶ computer_number = random.randint(1, 10) max_attempts = 3
ここでは、1から10の間でランダムな数字を選んでいます。
randint(1, 10)
は1から10の間の整数を選ぶ関数です。
for attempt in range(1, max_attempts + 1): print(f"【{attempt}回目】") # プレイヤーの入力(実際の実行時は input() を使用) player_guess = int(input("あなたの予想を入力してください: ")) if player_guess == computer_number: print("🎉 正解です!おめでとうございます!") print(f"✨ {attempt}回目で当てました!") return True elif player_guess < computer_number: print("📈 もっと大きい数字です") else: print("📉 もっと小さい数字です")
for
文を使って、最大3回まで挑戦できるようにしています。
input()
でユーザーの入力を受け取り、int()
で数字に変換しています。
スコア機能付きバージョン
さらに高度なバージョンも作ってみましょう。
# スコア機能付き数当てゲームclass NumberGame: def __init__(self): self.total_games = 0 self.wins = 0 self.total_attempts = 0 def play_round(self, computer_number, player_guesses): """1ラウンドのゲーム処理""" self.total_games += 1 for attempt, guess in enumerate(player_guesses, 1): self.total_attempts += 1 if guess == computer_number: self.wins += 1 return attempt elif attempt < len(player_guesses): hint = "大きい" if guess < computer_number else "小さい" print(f"{attempt}回目: {guess} → もっと{hint}数字です") return None
ここではclass
を使って、ゲームの状態を管理しています。
__init__
は最初に1回だけ実行される準備処理です。
def show_stats(self): """統計情報を表示""" win_rate = (self.wins / self.total_games * 100) if self.total_games > 0 else 0 avg_attempts = (self.total_attempts / self.total_games) if self.total_games > 0 else 0 print("📊 ゲーム統計") print("=" * 20) print(f"総ゲーム数: {self.total_games}") print(f"勝利数: {self.wins}") print(f"勝率: {win_rate:.1f}%") print(f"平均試行回数: {avg_attempts:.1f}回")
統計情報を計算して表示する機能も追加しました。
:.1f
は小数点以下1桁で表示する指定です。
10分チャレンジ:簡単なWebアプリを作ろう
最後に、Webページを作る体験をしてみましょう。
HTMLを生成するPythonプログラム
# 簡単なHTML生成プログラムdef create_personal_webpage(name, age, hobbies, favorite_color): """個人紹介ページのHTMLを生成""" # CSSスタイル css_style = f""" <style> body {{ font-family: Arial, sans-serif; background-color: {favorite_color}; margin: 40px; line-height: 1.6; }} .container {{ background-color: white; padding: 30px; border-radius: 10px; box-shadow: 0 4px 6px rgba(0,0,0,0.1); }} </style> """
ここでは、Webページの見た目を決めるCSSを文字列で作っています。
{favorite_color}
の部分に、好きな色が入ります。
# 趣味リストのHTML生成 hobby_items = "" for hobby in hobbies: hobby_items += f" <li>🎯 {hobby}</li>" # 完全なHTMLページ html_content = f"""<!DOCTYPE html><html lang="ja"><head> <meta charset="UTF-8"> <title>{name}の自己紹介ページ</title> {css_style}</head><body> <div class="container"> <h1>🌟 {name}の自己紹介 🌟</h1> <h2>📝 基本情報</h2> <p><strong>名前:</strong> {name}</p> <p><strong>年齢:</strong> {age}歳</p> <h2>🎨 趣味・特技</h2> <ul>{hobby_items} </ul> </div></body></html> """
for
文を使って、趣味のリストをHTMLのリスト形式に変換しています。
最後に全てのパーツを組み合わせて、完全なWebページを作成します。
実際にWebページを作成してみよう
# 実際にWebページを作成from datetime import datetime
my_info = { "name": "田中太郎", "age": 25, "hobbies": ["プログラミング", "読書", "映画鑑賞", "カメラ"], "favorite_color": "#e3f2fd" # 薄いブルー}
# HTMLを生成webpage = create_personal_webpage( my_info["name"], my_info["age"], my_info["hobbies"], my_info["favorite_color"])
# ファイルに保存def save_webpage(): """Webページをファイルに保存""" filename = "my_webpage.html" with open(filename, "w", encoding="utf-8") as file: file.write(webpage) print(f"✅ Webページを{filename}に保存しました!")
with open()
を使ってファイルを保存しています。
encoding="utf-8"
で日本語も正しく保存できます。
動的コンテンツも作れます
# 動的なコンテンツ生成の例import randomfrom datetime import datetime
def generate_daily_report(): """日次レポートを生成""" # ランダムなデータを生成 weather_options = ["晴れ", "曇り", "雨", "雪"] mood_options = ["😊 良好", "😐 普通", "😔 やや低め", "🤩 最高"] daily_data = { "date": datetime.now().strftime("%Y年%m月%d日"), "weather": random.choice(weather_options), "temperature": random.randint(10, 30), "mood": random.choice(mood_options), "tasks_completed": random.randint(3, 8), "steps": random.randint(3000, 12000) }
毎回違うデータを生成して、動的なWebコンテンツを作ることもできます。 実際のWebアプリでは、データベースからデータを取得したりします。
30分でここまでできました!
お疲れ様でした! 30分間で、本当にたくさんのことを体験しましたね。
今日体験した技術と概念
# 30分で体験したプログラミング概念learned_concepts = { "基本構文": [ "print()による出力", "変数の使用", "リストとランダム選択", "条件分岐(if文)" ], "データ処理": [ "辞書によるデータ管理", "for文による繰り返し処理", "文字列フォーマット", "日時データの処理" ], "プログラム設計": [ "関数の定義と使用", "クラスによるオブジェクト指向", "モジュールのインポート", "エラーハンドリング" ], "実用的な応用": [ "ゲーム作成", "HTML生成", "ファイル操作", "動的コンテンツ生成" ]}
わずか30分で、これだけの概念を体験できました!
実際に書いたコードの量
# 実際に書いたコードの統計code_metrics = { "おみくじプログラム": 25, "数当てゲーム": 40, "Webページ生成": 60, "合計": 125}
print(f"💻 書いたコードの統計:")for program, lines in code_metrics.items(): print(f" {program}: 約{lines}行")
125行以上のコードを体験したんです! すごいことですよね。
次のステップに向けて
# 今後の学習提案next_steps = { "今すぐできること": [ "今日作ったコードを改造してみる", "おみくじの運勢を増やしてみる", "数当てゲームの範囲を変更する", "Webページのデザインを変える" ], "1週間以内に": [ "Python基礎文法の学習", "より複雑なゲームの作成", "データファイルの読み書き", "Web APIの使用" ], "1ヶ月以内に": [ "Webフレームワーク(Flask)の学習", "データ分析ライブラリの活用", "データベースとの連携", "実用的なアプリの開発" ]}
段階的に学習を進めていけば、きっと素晴らしいプログラマーになれます。
プログラミングは難しくありません
今日の体験はいかがでしたか?
30分でこんなにたくさんのことができました:
- 実際に動くプログラムを3つ作成
- プログラミングの基本概念を体験
- Webページまで生成
これは立派なプログラマーの第一歩です!
プログラミングは特別な才能が必要なものではありません。 今日のように少しずつ積み重ねることで、きっと素晴らしいアプリケーションが作れるようになります。
大切なのは継続すること。 毎日少しずつでも、コードに触れることをおすすめします。
ぜひこの体験を忘れずに、楽しみながら学習を続けてください! きっと新しい発見と成長が待っています。
明日からも、一緒にプログラミングを楽しんでいきましょう!