概要
会社の人材育成を目的にPython初学者への学習課題を考える。
課題は提示しますが、自分の好きなように実装してOKです。自分が面白いと思うこと、学びたいことを行ってください。
準備
- 私用PC(Mac)でPythonを使えるようにする
- コードを書くエディタを用意する
- 生成したコードはGitHubで公開するので、GitHubアカウントを作る。
- 生成AIのアカウントを作る。コードの書き方が分からないときはまずここに聞く!!
- Pythonの学習教材(任意)
- スケジュールを作る(任意)。希望があれば一緒に作ります。
7/27-8/11 課題1
8/11-8/30 課題3
課題1)Macのコマンドで得た情報を加工する
目的
Macのsystem_profilerコマンドを使ってシステム情報を取得し、その情報をPythonで加工して見やすく表示します。
この課題を通じて、Macのコマンドラインツールの使い方と、それをPythonで活用する方法を学ぶことができます。
手順
-
システム情報の取得
- system_profilerコマンドを使ってシステム情報を取得します。
- 必要な情報(例: ハードウェア概要)を抽出します。
-
Python環境の設定
必要なライブラリをインストールします(特に追加ライブラリは必要ありませんが、subprocessライブラリを使用します)。 -
コマンドの実行とデータ取得
Pythonのsubprocessライブラリを使ってsystem_profilerコマンドを実行し、その出力を取得します。 -
データの加工
取得したシステム情報の中から、必要な項目(例: プロセッサ名、メモリ、シリアル番号など)を抽出します。 -
データの表示
抽出したデータをユーザーに見やすい形式で表示します。
課題のポイント
- コマンドの実行: subprocessライブラリを使ってシステムコマンドを実行し、結果を取得する方法を学ぶ。
- データ加工: 取得したテキストデータを解析して必要な情報を抽出する方法を学ぶ。
- データの表示: 抽出した情報をユーザーにわかりやすい形式で表示する方法を考える。
応用課題(任意)
-
その他のシステム情報の取得
- system_profilerコマンドを使って他のシステム情報(例: ネットワーク情報、ストレージ情報など)を取得し、同様に解析して表示する。
-
データの保存:
- 取得したシステム情報をテキストファイルやJSONファイルに保存する。
-
GUIの作成:
- tkinterライブラリを使って、取得したシステム情報を表示する簡単なGUIアプリケーションを作成する。
完成したら
-
コードにコメントを書く
-
コードの静的解析ツールを使って、コードを綺麗にします
-
GitHubに作成したコードを登録する。追加でコマンドの機能、使い方をREADMEに書く。見た人が実行できることを意識して書く。動作環境も書いておく(MacOSのバージョン、Pythonのバージョン等、関係ありそうなもの)。実行結果の画像もあると良い
-
講師や同期にGitHubのURLをドヤ共有する
-
課題を作った人に缶ビールを2缶送る
課題2)天気予報APIを使ったデータ取得と分析
目的
OpenWeatherMap APIを使って、指定した都市の天気情報を取得し、そのデータを加工・分析して、ユーザーに見やすい形式で出力します。
この課題を通じて、APIの基本的な使い方とデータ処理のスキルを身につけることができます。
私の経験上、課題1と課題2を組み合わせてデータを処理することが業務効率化に役立っています。
手順
-
APIキーの取得:
OpenWeatherMapのウェブサイトで無料アカウントを作成し、APIキーを取得します。
OpenWeatherMap API でアカウントを作成してAPIキーを取得します。 -
Python環境の設定:
必要なライブラリをインストールします。pip install requests # 環境によってはpip3ね
-
APIリクエストの作成:
- Pythonのrequestsライブラリを使って、OpenWeatherMap APIから天気データを取得します。
- APIエンドポイント: http://api.openweathermap.org/data/2.5/weather
- パラメータ: 都市名、APIキー、レスポンス形式(JSON)。都市名は対話的入力できると面白そう
-
データの加工:
取得したJSONデータから、必要な情報(例: 気温、湿度、天気の説明など)を抽出します。 -
データの表示:
抽出したデータをユーザーに見やすい形式で表示します。
課題のポイント
- APIの理解: APIとは何か、どのようにリクエストを送信し、レスポンスを受け取るかを理解する。
- データ加工: JSONデータの扱い方、必要な情報の抽出方法を学ぶ。
- エラーハンドリング: APIリクエストが失敗した場合の対処方法を考える。
- ユーザーインターフェース: 取得したデータをユーザーにわかりやすく表示する方法を考える。
応用課題(任意)
-
複数都市の天気情報取得:
リストで指定された複数の都市の天気情報を一度に取得し、一覧表示する。 -
データの保存:
取得した天気情報をCSVファイルに保存する。 -
グラフの作成:
matplotlibライブラリを使って、取得した天気データをグラフ化する。例1: 時系列データの気温変化
もし複数の都市の気温を時系列で取得できる場合、横軸を時間、縦軸を気温としてグラフ化することが考えられます。例2: 都市ごとの気温比較
複数の都市の気温を比較する場合、横軸を都市名、縦軸を気温として棒グラフを作成することが考えられます。
完成したら
これまでと同じことをしてください。
課題3)SQLiteデータベースに接続してSQLを実行
目的
SQLiteデータベースに接続し、SQLクエリを実行してデータの操作を学びます。
- ローカル環境で動作する軽量データベース。
- インターネット接続不要で、簡単にセットアップ可能。
この課題を通じて、基本的なデータベース操作とSQLクエリの使い方を学ぶことができます。
手順
-
Python環境の設定
sqlite3モジュールはPythonに標準で付属しているため、追加のインストールは不要です。 -
データベースの作成と接続:
SQLiteデータベースを作成し、接続します。
※データベースは頻繁に作るものではないので、データベースは事前に作っておいて、接続するだけでもいいと思います。 -
テーブルの作成
SQLクエリを使用してデータベース内にテーブルを作成します。 -
データの挿入
作成したテーブルにデータを挿入します。 -
データの取得
SQLクエリを使用してデータを取得し、表示します。
課題のポイント
- データベース接続: SQLiteデータベースへの接続方法を学ぶ。
- テーブルの作成: SQLを使ってテーブルを作成する方法を学ぶ。
- データ操作: データの挿入、更新、削除、取得の基本的なSQL操作を学ぶ。
- エラーハンドリング: データベース操作中のエラーハンドリング方法を学ぶ。
応用課題(任意)
-
データの更新と削除:
ユーザー情報を更新するSQLクエリと、ユーザー情報を削除するSQLクエリを追加して実行する。 -
検索機能の追加:
特定の条件に基づいてユーザー情報を検索するSQLクエリを追加する(例: 年齢が30以上のユーザーを取得)。 -
インデックスの作成:
大規模なデータセットの効率的な検索をサポートするために、テーブルのカラムにインデックスを作成する。
課題4)Lineのメッセージを送受信してみよう
目的
タイトルの通り
手順
全部自分で調査して実現しましょう。これができれば大したものだと思います
https://search.yahoo.co.jp/search?p=LINE+Messaging+API+python&x=wrt&aq=-1&ai=61265f2f-d76b-41cc-899a-8d674ebaa980&ts=1837&ei=UTF-8&fr=top_ga1_sa
チャレンジ課題です。Macだけではできないと思います
完成したら
これまでと同じことをしてください。ビールは6缶にしてください
回答
プログラムが動けばOKです。
困ったら私も実装するので聞いてください。AIも活用してね