Pythonの入門研修の最後に行う演習の例

こんにちは。ゆうせいです。

Pythonの入門研修の最後に行う演習は、学んだ内容を実践的に活用し、理解を深める良い機会になります。研修で学んだ内容を踏まえて、以下のような課題が適切だと考えます。


提案する課題:簡単なアプリケーションを作成する

課題テーマ例:TODOリスト管理アプリ

Pythonを使って、シンプルなTODOリストアプリケーションを作成する課題を提案します。この課題は、基礎的なプログラミングの概念からリストや辞書、ループ、条件分岐、関数の活用まで、総合的な理解を確認できます。


課題内容の詳細

  1. アプリの機能要件
    • TODOアイテムの追加
    • TODOアイテムの削除
    • TODOリストの表示
    • TODOアイテムの完了状態を管理(未完了/完了)
  2. 動作の例
    • ユーザーが「1」と入力すると、新しいTODOアイテムを追加する。
    • ユーザーが「2」と入力すると、TODOリストを表示する。
    • ユーザーが「3」と入力すると、特定のTODOアイテムを削除する。
    • ユーザーが「4」と入力すると、TODOアイテムの完了/未完了状態を切り替える。

進行手順のサンプル

  • ステップ1: TODOリストを格納するリストや辞書を作成。
  • ステップ2: ユーザーからの入力を受け付けるメニューを作成。
  • ステップ3: 各選択肢に応じた処理を実装。
  • ステップ4: 動作確認を行い、エラーが発生しないように修正。

コードのテンプレート

以下は簡単なテンプレートです。これを基に進めてもらうと取り組みやすいでしょう。

# TODOリストを管理するための変数
todo_list = []

def display_menu():
    print("1: TODOを追加")
    print("2: TODOを表示")
    print("3: TODOを削除")
    print("4: TODOの状態を変更")
    print("5: 終了")

def add_todo():
    task = input("追加するTODOを入力してください: ")
    todo_list.append({"task": task, "done": False})
    print("TODOを追加しました!")

def show_todos():
    if not todo_list:
        print("TODOリストは空です。")
    else:
        for i, todo in enumerate(todo_list):
            status = "完了" if todo["done"] else "未完了"
            print(f"{i + 1}: {todo['task']} [{status}]")

def delete_todo():
    show_todos()
    index = int(input("削除するTODO番号を入力してください: ")) - 1
    if 0 <= index < len(todo_list):
        removed = todo_list.pop(index)
        print(f"TODO '{removed['task']}' を削除しました。")
    else:
        print("無効な番号です。")

def toggle_todo():
    show_todos()
    index = int(input("状態を変更するTODO番号を入力してください: ")) - 1
    if 0 <= index < len(todo_list):
        todo_list[index]["done"] = not todo_list[index]["done"]
        print("状態を変更しました。")
    else:
        print("無効な番号です。")

while True:
    display_menu()
    choice = input("選択肢を入力してください: ")
    if choice == "1":
        add_todo()
    elif choice == "2":
        show_todos()
    elif choice == "3":
        delete_todo()
    elif choice == "4":
        toggle_todo()
    elif choice == "5":
        print("アプリを終了します。")
        break
    else:
        print("無効な選択肢です。もう一度試してください。")


この課題のメリット

  1. 基礎の復習
    • リスト、辞書、関数、条件分岐、ループといった基礎要素を総復習できます。
  2. 達成感の向上
    • シンプルながらも動くアプリケーションを作成することで、達成感を得やすいです。
  3. 創造性の発揮
    • 上級者には「機能を追加してみましょう!」といった応用課題も提示できます。

発展的なアプローチ

時間が余る場合は、次のような発展課題を提案するのも良いですね。

  • TODOリストを外部ファイル(CSVやJSON)に保存してみる。
  • タスクの締め切りを追加して、日付順に並べ替える。
  • GUI(Graphical User Interface)版に挑戦する。

研修の最後にこうした課題に取り組むことで、学んだ内容を一通り確認できるとともに、実際の開発の感覚を掴むことができます。ぜひこのアイデアを活用してみてください!

セイ・コンサルティング・グループの新人エンジニア研修のメニューへのリンク

投稿者プロフィール

山崎講師
山崎講師代表取締役
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。