Python練習アプリ・お題集【初心者向け】
「手を動かす練習がしたい。お題をください」という方のための練習メニュー集です。レベル別の練習セットに加えて、「リストが苦手」「関数が苦手」から逆引きできるドリルを用意しました。全お題、動作確認済みの完成コードつきです。
1. 練習の鉄則:写経3割・改造7割
お題に入る前に、練習の効果を最大化するルールを1つだけ。「完成コードを写して動かす(写経)」で終わらせず、必ず自分の意思で1箇所以上改造すること。配色を変える、メッセージを変える、ボタンを1個足す──何でも構いません。
もう1つ、見落とされがちな話を。「自由に何か作ってみよう」という自由課題は、実は初心者にとって一番難しい課題です。題材選び・仕様決め・実装の3つを同時にやることになるからです。お題(仕様が決まっている課題)を使えば、頭のリソースを実装だけに集中できます。プロのスポーツ選手が試合だけでなく型の決まった練習メニューをこなすのと同じ理屈です。
写経は「読める」を作り、改造が「書ける」を作ります。時間配分の感覚は写経3割・改造7割。この練習法の背景は入門後の練習ロードマップで詳しく説明しているので、「そもそもどう学習を進めるべきか」から知りたい方は先にそちらをどうぞ。
本ページのお題は、入門書の前半レベル(変数・if・for・関数がだいたい分かる)を前提にしています。環境がまだの方はPythonのインストールから。文法に不安があれば基本構文を脇に開きながらで大丈夫です。
2. 30秒レベル診断:どのセットから始める?
次の3つの質問で、開始セットを決めてください。
| 質問 | いいえ → | はい → |
|---|---|---|
| Q1. tkinterでウィンドウを表示したことがある | セットAから | Q2へ |
| Q2. リストや辞書を使ったアプリを完成させたことがある | セットBから | Q3へ |
| Q3. 時間処理(タイマー等)やファイル保存を実装したことがある | セットCから | セットDから |
診断はあくまで目安です。実際に1本やってみて「説明を読まなくても全部わかる」ならセットを1つ上げ、「写経しても意味が追えない」なら1つ下げる──この調整感覚そのものが、自分の現在地を知る練習になります。
迷ったら1つ下のセットから。簡単すぎたらスキップすればいいだけなので、易しい側に倒す方が挫折しません。
3. セットA:超初級(画面に慣れる5本)
狙い:「ウィンドウ・ラベル・ボタン・入力欄」というGUIの基本部品に慣れる。プログラムに「画面がある」楽しさを体験するセットです。
| # | お題 | 身につくこと | 改造のヒント |
|---|---|---|---|
| A-1 | Hello World ウィンドウ | ウィンドウとラベルの基本 | メッセージと配色を自分仕様に |
| A-2 | BMI計算機 | 入力→計算→表示の基本形 | 判定コメントを追加 |
| A-3 | 温度変換ツール | 数値変換・関数の整理 | 華氏⇄摂氏の双方向化 |
| A-4 | 割り勘計算機 | 複数入力の扱い | 端数処理のルール変更 |
| A-5 | サイコロシミュレーター | 乱数・画面更新 | 2個振り・合計表示 |
よくあるつまずき:入力欄から受け取った値が「文字列」のままで計算エラーになるパターン(A-2〜A-4で必ず出会います)。int()・float()での変換と、数字以外が入力されたときの対処がこのセットの裏テーマです。エラーが出たらエラー解決ページのValueErrorの項を見てください。
4. セットB:初級(データを扱う5本)
狙い:リスト・辞書・文字列という「データの持ち方」を画面と連動させる練習。プログラムが急に「道具」っぽくなるセットです。
| # | お題 | 身につくこと | 改造のヒント |
|---|---|---|---|
| B-1 | ToDoリスト | リストの追加・削除と画面反映 | 完了チェック機能 |
| B-2 | ワードカウンター | 文字列の分割・集計 | 文字種別のカウント |
| B-3 | 名言ジェネレーター | リストからのランダム選択 | 自分の推し名言を登録 |
| B-4 | 単語帳アプリ | 辞書型でのデータ管理 | 正答率の記録 |
| B-5 | じゃんけんゲーム | 条件分岐の整理・勝敗ロジック | 連勝カウンター |
よくあるつまずき:「リストは更新したのに画面が変わらない」問題。データと画面は自動では連動しないので、データを変えたら画面を描き直すという2段階の意識がこのセットで身につけるべき核心です。B-1のToDoリストで一度腹落ちすると、以降のすべてのアプリで応用できます。
5. セットC:初中級(状態と時間を操る5本)
狙い:「動き続けるプログラム」の作り方。タイマー処理(after)と状態管理は、GUIアプリの中核スキルです。
| # | お題 | 身につくこと | 改造のヒント |
|---|---|---|---|
| C-1 | デジタル時計 | afterによる定期更新 | 日付・曜日表示の追加 |
| C-2 | ストップウォッチ | 開始/停止の状態管理 | ラップタイム記録 |
| C-3 | アラームクロック | 時刻比較・通知 | スヌーズ機能 |
| C-4 | タイピング速度テスト | 時間計測×文字列比較 | 苦手キーの統計 |
| C-5 | 神経衰弱ゲーム | 複雑な状態管理 | カード枚数の難易度選択 |
よくあるつまずき:「time.sleep()を使ったら画面が固まった」。GUIでは sleep ではなく after() で「○ミリ秒後にこの関数を呼ぶ」と予約するのが正解です。この発想の転換(待つ→予約する)がセットC最大の山場で、越えると作れるアプリの幅が一気に広がります。
6. セットD:中級への橋(実用5本)
狙い:ファイル保存・外部データという「実用アプリの条件」を満たす練習。ここを越えると中級者向け100本の世界に入れます。
| # | お題 | 身につくこと | 改造のヒント |
|---|---|---|---|
| D-1 | メモ帳アプリ | ファイルの読み書き | 最近開いたファイル一覧 |
| D-2 | パスワード生成器 | 文字列生成・クリップボード | 強度メーター |
| D-3 | クイズアプリ | データ構造の設計・画面遷移 | 問題をファイルから読み込み |
| D-4 | ファイルマネージャー | フォルダ操作・ツリー表示 | お気に入りフォルダ登録 |
| D-5 | CSVビューア | pandasで表データを扱う | 列の並べ替え機能 |
よくあるつまずき:ファイルパスと文字コードです。「ファイルが見つからない」(FileNotFoundError)と「日本語が化ける・読めない」(UnicodeDecodeError)は、実用アプリを作る全員が通る道。encoding="utf-8" の明示と、ファイルダイアログでパスを受け取る習慣をここで身につけると、この先ずっと楽になります。
7. 苦手スキル別ドリル【逆引き】
セット練習の途中でも、卒業後の復習でも使える「弱点から逆引きする」表です。苦手な文法・スキルを、それを一番使うお題で潰すのが狙いです。文法書を読み直すより、その文法が主役のアプリを1本作る方が、記憶への定着は段違いに良くなります。エラーが多発する分野ほど、ここで集中練習する価値があります。
| 苦手なこと | 処方箋(このお題で集中練習) | 理由 |
|---|---|---|
| リスト・辞書の操作 | ToDoリスト → 単語帳 | 追加・削除・検索・更新が全部登場する |
| 文字列処理 | ワードカウンター → 文字数カウンター | 分割・置換・集計の頻出パターンを網羅 |
| 関数の切り分け | 電卓 | 「1ボタン=1関数」の整理感覚が身につく |
| 条件分岐が複雑になると混乱 | じゃんけん → ログインフォーム | 分岐の整理と早期return の練習に最適 |
| 時間・タイマー処理 | 時計 → ストップウォッチ | after()の使い方はこの2本でしっかり身につく |
| ファイル読み書き | メモ帳 → JSONビューア | テキスト→構造化データの順で段階を踏める |
| クラス・オブジェクト指向 | お絵かきアプリ → Markdownエディタ | 「状態を持つ部品」の設計を体感できる |
| エラーへの対処全般 | どのお題でもOK+エラー解決ページを常に脇に | エラーは敵ではなく教材。20種の対処を辞書代わりに |
ドリルの使い方のコツは「同じ弱点のお題を連続で2本やる」こと。1本目で「なんとなく分かった」を、2本目で「自分で書けた」に変えるのが狙いです。1本だけだと、分かった気になって同じエラーを繰り返しがちです。
8. 30日練習プラン(週ごとの目安)
「毎日30分〜1時間」を前提にした、4週間のモデルプランです。完走すれば15本前後の完成品が手元に残ります。
| 週 | メニュー | ゴール |
|---|---|---|
| 第1週 | セットA(5本)+改造各1箇所 | GUIの基本部品に慣れる |
| 第2週 | セットB(5本)+改造各1箇所 | データと画面の連動を体得 |
| 第3週 | セットC(5本)+うち1本を「ゼロから再現」 | 状態管理・時間処理の壁を越える |
| 第4週 | セットD(5本)+苦手ドリルで弱点1つ潰す | 実用アプリの入口に立つ |
途中で止まってしまったら:3日空いても気にせず、「前回より1サイズ小さいお題」から再開してください。再開のハードルは下げるほど良く、失った進捗を取り返そうと背伸びするのが一番危険です。プランの遅れはゼロコスト、やめてしまうことだけがコストです。
完成した日付とアプリ名は一覧に記録してください。30日後の「完成リスト」は、想像以上の自信とポートフォリオの種になります。途中で面白そうなお題を見つけたら、プランを無視して寄り道してOK。続くことがプランより偉いです。
9. 卒業判定:これができたら練習は終わり
練習はゴールではないので、やめどきも決めておきましょう。次の3つを満たしたら、もう「練習のための練習」は卒業です。自己評価が難しければ、直近に作った1本を「コードを見ずにもう一度作れるか」で代用してください。
- ✅ お題を見て、完成コードを見る前に「だいたいこういう部品と処理が要るな」と設計が浮かぶ
- ✅ エラーが出ても、メッセージを読んで自力で(または検索して)解決できる
- ✅ 写経せずに、小さいアプリを1本ゼロから完成させたことがある
注意してほしいのは、この3条件は「全お題の制覇」を要求していないことです。練習の目的は完璧さではなく、「未知のお題を前にしても手が動く状態」を作ること。それができた瞬間から、世界中のチュートリアルもAIも、あなたの道具になります。
卒業後の進路は3つ。①中級者向け100本で実用アプリへ、②Pythonで作れるもの一覧から興味分野(自動化・データ分析・AI等)へ、③自分の仕事・趣味の課題を解く完全オリジナルへ。どれを選んでも、ここまでの練習が土台になります。
10. よくある質問(FAQ)
Q. 練習にはどれくらい時間がかかりますか?
1本あたり写経30分〜1時間+改造30分が目安です。平日30分〜1時間のペースなら、各セット(5本)を約1〜2週間で完走できます。
Q. 写経だけでも力はつきますか?
写経だけでは「読める」止まりになりがちです。必ず1箇所、自分の意思で改造してください(§1の鉄則)。写経と自作の間の壁を壊すのは小さな改造です。
Q. 競技プログラミング(AtCoder等)とどちらが良いですか?
目的次第です。アルゴリズム的思考を鍛えるなら競プロ、「動くものを作る力」なら本ページのようなアプリ練習。仕事の自動化や作品づくりが目的なら、画面のあるアプリを完成させる練習の方が直結します。両方やる場合も、まず「完成させる体力」を先に付けるのがおすすめです。
Q. お題のコードをそのまま使ってもいいですか?
当サイトの掲載コードはMITライセンスで、学習・改造・再利用は自由です。ポートフォリオに載せるなら、自分の改造を加えたうえで「ベースを参考にした」ことを書くのが誠実です。
Q. 全部やる必要はありますか?
ありません。セットを2〜3個(10〜15本)完走して§9の卒業判定を満たしたら、練習段階は終了です。一番もったいないのは「練習を完璧にしてから作品へ」と先延ばしすること。早く卒業して、作りたいものを作ってください。
本記事は、生成AIを活用して下書きし、運営者が内容を確認・編集したうえで公開しています。AIの利用方針は免責事項をご覧ください。