今回の記事は、いよいよ実践プロジェクトです。
前回までは、Pythonの基礎を教えてもらいながら、プログラムがどのように動いているかを学んできました!
学んできた内容を活かして、実践プロジェクトを進めていきます。
このブログは、以前Pythonを学んでいたのですが、途中で挫折してしまった経験がある私が、今回はChatGPTを活用して、より効果的に学習を進める方法を試してみます。
プログラミング初心者である私が、どのようにしてPythonを習得していくのか、そのステップや学びのポイントを具体的にお伝えしていきます。私と一緒にPythonを学んでみませんか?日々の学習の中で感じたことや役立った情報をお届けします。
このチュートリアルを完了すると、PythonとChatGPTを使用して基本的な自然言語処理タスクを実行できるようになります
Pythonの始め方についてはこちらの記事を参考にしてみてください!!
参考記事
ブログ内のコードはコピーして使用できます
ステップ7: 実践的なプロジェクト
無事に【プログラミング】ChatGPTで学ぶPythonのファイル操作の内容が終わりました。
次の内容をお願いします。
プロジェクト1: シンプルなTodoリストアプリ
このプロジェクトでは、Pythonを使ってシンプルなコマンドラインのTodoリストアプリを作成します。ユーザーはタスクを追加、表示、削除できるようにします。
1. プログラムの設計
- タスクの追加: ユーザーからタスクを入力し、リストに追加します。
- タスクの表示: 現在のタスクリストを表示します。
- タスクの削除: 指定したタスクをリストから削除します。
2. コードの実装
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# Todoリストの初期化 タスクリスト = [] def タスクを追加する(タスク): タスクリスト.append(タスク) print(f"タスク '{タスク}' を追加しました。") def タスクを表示する(): if not タスクリスト: print("タスクはありません。") else: print("タスクリスト:") for index, task in enumerate(タスクリスト, start=1): print(f"{index}. {task}") def タスクを削除する(タスク番号): try: 削除されたタスク = タスクリスト.pop(タスク番号 - 1) print(f"タスク '{削除されたタスク}' を削除しました。") except IndexError: print("無効なタスク番号です。") # メインループ while True: print("\nTodoリスト管理") print("1. タスクを追加") print("2. タスクを表示") print("3. タスクを削除") print("4. 終了") 選択 = input("操作を選んでください (1-4): ") if 選択 == '1': タスク = input("追加するタスクを入力してください: ") タスクを追加する(タスク) elif 選択 == '2': タスクを表示する() elif 選択 == '3': タスク番号 = int(input("削除するタスク番号を入力してください: ")) タスクを削除する(タスク番号) elif 選択 == '4': print("終了します。") break else: print("無効な選択です。再度選択してください。") |
3. プログラムの実行
- コードをテキストエディタにコピーし、ファイルとして保存(例:
todo.py
)。 - コマンドプロンプトまたはターミナルで実行します。
広告募集中
このプログラムのフローチャート
フローチャートは、プロジェクトを進めるときのプログラミングの設計図です😁
プログラミング自体は文章で書かれているので、どのようにプログラムが設計されているかわかりにくい部分もあるので、設計図にしてわかりやすくしてもらいました!!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
[開始] ↓ +----------------+ | メニューを表示 | +----------------+ ↓ +----------------+ | 選択を取得 | +----------------+ ↓ ┌─────────────┬─────────────┬─────────────┬──────────────┐ │ │ │ │ │ [選択=1] [選択=2] [選択=3] [選択=4] [その他] │ │ │ │ ↓ ↓ ↓ ↓ +-----------+ +-----------+ +--------------+ +-------------+ | タスク追加 | | タスク表示 | | タスク削除 | | プログラム終了 | | 新しいタスク| | タスクリスト| | 削除するタスク| +-------------+ | を入力 | | を表示 | | 番号を入力 | +-----------+ +-----------+ +--------------+ ↓ ↓ ↓ +-----------+ +-----------+ +--------------+ | リストに追加 | | メニューに戻| | リストから削除| | メニューに戻| +-----------+ +--------------+ +-----------+ |
このフローチャートを画像したいので、ChatGPTにお願いしてみました。
画像へ変換
上記のフローチャートをSVGを埋め込んだHTML形式で出力してください。
以下は、指定されたフローチャートをSVG形式で埋め込んだHTMLコードです。このコードをHTMLファイルとして保存してブラウザで開くことで、視覚的にフローチャートを確認できます。
※コードが長かったので、ここでは割愛させていただきます
byダダ
ChatGPTに出力してもらった、コードを名前を付けてtest.htmlでも良いのでファイルを保存して、保存したファイルを開きます!!
するとこんな感じで、フローチャートの画像が出てきます。
内容の拡大図
こんな感じで、プログラムのフローチャートを作ってくれました!!
プログラムだけを見ても、現段階では何がどのようにプログラムが組まれているかがわからないので、フローチャートを作ってくれて、画像にしてくれるのは本当にありがたいです。
広告募集中
TODOアプリ制作の疑問点
TODOアプリでは、タスクの管理をするために『追加』『表示』『削除』の部分を関数で作っているのですが、関数でプログラムを作成していくほうがシンプルに設計ができるのですか?
関数の利点
- コードの再利用性: 関数は、プログラム内の複数の場所で呼び出すことができ、同じコードを何度も記述する必要がなくなります。これにより、コードの重複を減らし、保守性を向上させることができます。
- コードの可読性: 関数は、コードを論理的なブロックに分割することで、コードの可読性を向上させます。各関数は、特定のタスクを実行するための独立したユニットとなり、プログラム全体の構造を理解しやすくなります。
- コードのテスト容易性: 関数は、独立してテストできるため、プログラム全体のテストが容易になります。各関数の動作を確認することで、プログラム全体の動作を正確に把握することができます。
- コードのモジュール化: 関数は、プログラムを独立したモジュールに分割することができます。これにより、コードの再利用性と保守性をさらに向上させることができます。
このコードは、すでにタスクの追加、表示、削除をそれぞれ関数として定義しています。これは、良い設計の例です。
関数を使うメリット
- コードの重複を減らす: タスクを追加、表示、削除などの処理は、それぞれ関数として定義されているため、同じコードを何度も記述する必要がありません。
- コードの構造を明確にする: 各関数は、特定のタスクを実行するように設計されているため、コードの構造が明確になります。
- コードの保守性を向上させる: 関数を変更する必要がある場合、その関数のみを変更すればよく、他の部分に影響を与える可能性が低くなります。
関数を使った設計は、特に大規模なプログラムを作成する場合に有効です。 複雑なプログラムを小さな、管理しやすいモジュールに分割することで、開発を効率的に進めることができます。
関数の活用は、プログラムの設計にとって重要な要素です。コードをシンプルかつ整理された状態に保ち、開発の効率性を高めるために、積極的に活用しましょう。
関数を使うことで、汎用性が得られるので積極的に使うほうが良さそうですね!!
関数内には一つの役割しか持たせないようにするのがポイントですね。
もう一つプロジェクトを進めていきます
次は簡単な四則演算ができる計算機を作っていきます。
1. プログラムの設計
- 加算: 2つの数の和を計算します。
- 減算: 2つの数の差を計算します。
- 乗算: 2つの数の積を計算します。
- 除算: 2つの数の商を計算します。
2.フローチャートの作成
プログラムのフローチャートの作成をお願いします。
以下にフローチャートのテキストバージョンを示します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
開始 ↓ メニューの表示 ↓ 選択の入力 ↓ ┌──────────────┬──────────────┬──────────────┬──────────────┬──────────────┐ 加算 減算 乗算 除算 終了 ↓ ↓ ↓ ↓ ↓ 数1を入力 数1を入力 数1を入力 数1を入力 終了 ↓ ↓ ↓ ↓ 数2を入力 数2を入力 数2を入力 数2を入力 ↓ ↓ ↓ ↓ 加算結果を表示 減算結果を表示 乗算結果を表示 除算結果を表示 ↓ ↓ ↓ ↓ メニューに戻る メニューに戻る メニューに戻る メニューに戻る |
このプログラムのフローチャートを、SVGを埋め込んだHTML形式で出力をしてください!!
以下に、指定された計算機プログラムのフローチャートをSVG形式で埋め込んだHTMLコードを提供します。このコードをHTMLファイルとして保存してブラウザで開くことで、視覚的にフローチャートを確認できます。
※コード内容は割愛しております。
上記の画像だと、減算と除算が被っています。
横幅を広くして、各画像が被らないようにお願いします
わかりました。横幅を広げて各操作が被らないように修正します。
以下のHTMLコードを使用してフローチャートを作成し、横幅を広くしました。これで各操作が被らずに表示されるはずです。
ChatGPTへのプロンプト内容を変更すると、わかりやすく変更してくれました。
プロンプト(指示の内容)を少し工夫をするとわかりやすく表示してくれます。
広告募集中
プログラムの作成
実際にプログラムを作成していきます。
簡単な計算機のプログラムを作成して欲しい
四則演算ができる簡単な計算機を作成していきます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
def 加算(a, b): return a + b def 減算(a, b): return a - b def 乗算(a, b): return a * b def 除算(a, b): if b != 0: return a / b else: return "エラー: 0で除算することはできません。" # メインループ while True: print("\n簡単な計算機") print("1. 加算") print("2. 減算") print("3. 乗算") print("4. 除算") print("5. 終了") 選択 = input("操作を選んでください (1-5): ") if 選択 in ['1', '2', '3', '4']: 数1 = float(input("最初の数を入力してください: ")) 数2 = float(input("2番目の数を入力してください: ")) if 選択 == '1': 結果 = 加算(数1, 数2) elif 選択 == '2': 結果 = 減算(数1, 数2) elif 選択 == '3': 結果 = 乗算(数1, 数2) elif 選択 == '4': 結果 = 除算(数1, 数2) print(f"結果: {結果}") elif 選択 == '5': print("終了します。") break else: print("無効な選択です。再度選択してください。") |
出力
1 2 3 4 5 6 7 8 9 10 |
簡単な計算機 1. 加算 2. 減算 3. 乗算 4. 除算 5. 終了 操作を選んでください (1-5): 1 最初の数を入力してください: 5 2番目の数を入力してください: 8 結果: 13.0 |
このように出力されます。
まとめ
今回、Pythonを使用した簡単なプロジェクトを作成してみました。
プログラムを作成するためには設計が必要だったり、プログラム以外に必要な事も見えてきました。
次回は、スクレイピングを行っていこうと思います。
いろんな情報を収集して、役に立てるようにスキルアップをしていきます。
Pythonを学びたい方はこちらの記事を参考にしてみてください
関連記事
プログラミング学習を進めているけれど、まだ副収入につなげられていない…そんなあなたへ!今こそ、学んだスキルを活かして副業に挑戦する絶好のチャンスです。プログラミングだけでなく、自分のスキルや商品をネットで販売する『ネットショップ』を開設してみませんか?
ネットショップを持つことで、自分の知識やスキルをより多くの人に届け、副収入を得ることが可能です。学んできたプログラミングを活かして、ショップのカスタマイズや運営も自由自在に行えますし、もし商品作成が難しい場合でも、デジタル商品やサービス提供など、いろんな選択肢があります。
このステップで一歩踏み出せば、今学んでいることが副収入に直結し、自分の時間をより有効に使うことができるはずです!一緒にネットショップを開設し、副業の第一歩を踏み出しましょう!
タイトルテキスト
プログラミングを学びたいけど、どこから始めたらいいのか分からない、自分に合っているか不安…そんな悩みを持っている方におすすめしたいのが、 無料相談 サービスです!
この無料相談では、あなたの現状や目標に合わせて、最適な学習プランを一緒に考えてくれます。どんなスキルが必要なのか、どうやって学習を進めると効果的かを具体的にアドバイスしてもらえるので、無駄なく効率的にスタートを切ることができます。
さらに、プログラミング学習には同じ目標を持つ 仲間 がいること、そして頼りになる メンター の存在がとても大きな支えになります。独学ではどうしてもつまずきやすい部分も、メンターがあなたの成長に合わせて親身にサポートしてくれるので、安心して学びを進められます。
まずは 無料相談 で、あなたに合ったプランを見つけて、スキルアップへの第一歩を踏み出してみませんか?今なら、迷っている方でも気軽に相談できるチャンスです!
次回の記事はこちらから
関連記事