Skip to content

icoxfog417/python_training

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Program

目的

  • 基礎的なPython開発能力の習得
  • Pythonを利用しWebアクセスを行う手法の取得

注意点

Python Basic、Extraの1までは最低限達成するライン。それ以降はどこまででもOK。

  • 研修で開発したコードはGitHubに上げてください(個人のPublicでOK)。この記事のコメントに各自リポジトリへのリンクを張ってください。※不要なファイルは.gitignoreで除外すること。詳細はセットアップの記事参照
  • README.mdに、自分のプログラムのセットアップ方法、実行確認方法をきちんと書くこと。

実習について

  • Pythonは3です
  • 課題ごとにファイルを作成するか、複数の課題をまとめるかは任意です。ただ、上記にあるとおり実行結果を確認する方法をREADMEにきちんと記載してください。
  • 「出力せよ」という場合は、ファイルで出力を行ってください(ファイル名は適当で構いません)
  • 「表示せよ」という場合は、コンソール表示のみで構いません。ただ、出力が膨大になる場合はトップNに限定するなど、工夫すること

コードはPython3ライクに書くこと(withとか)。デザインパターンの研修も並行しますが、設計のきれいさ・可読性を意識してコーディングしてください(参考)。

Assignments

Python Basic

以下の演習にはこのファイルを使用してください。

address.txt

  1. ファイルの行数をカウントせよ
  2. タブ1文字につきスペース1文字に置換せよ
  3. 各行の1列目だけを抜き出したものをcol1.txtに、2列目だけを抜き出したものをcol2.txtとしてファイルに保存せよ
  4. 3で作ったcol1.txtとcol2.txtを結合し,元のタブ区切りテキストを復元せよ
  5. 自然数Nをコマンドライン引数にとり、入力のうち先頭のN行だけ出力せよ
  6. 自然数Nをコマンドライン引数にとり、入力のうち末尾のN行だけ出力せよ
  7. 1コラム目の文字列を集計して表示せよ(文字列/カウントを表示)
  8. 各行を2コラム目の辞書順にソートして出力せよ
  9. 各行を2コラム目、1コラム目の優先順位で辞書の逆順にソートして出力せよ
  10. 各行の2コラム目の文字列の出現頻度を求め、出現頻度の高い順に並べよ。ただし、3で作成したプログラムの出力(col2.txt)を読み込むプログラムとして実装せよ

Python Extra

以下の演習ではぐるなびのAPIを利用して下さい。1以外は難易度高めなので、できないからといって焦る必要はありません。

ぐるなび for Developers

  1. コマンドライン引数から検索キーワードを受け取り、ぐるなびAPIにアクセスし検索結果(店舗名)を出力せよ。受け取るデータ型はJSON形式にすること
  2. コマンドライン引数から受け取った検索キーワードが日本語かどうか判定し、それにより利用する検索APIをそれぞれレストラン検索API/多言語版レストラン検索APIで切り替えよ。なお、条件により対応するAPIの数は今後増えていくということを考慮した設計にすること
  3. コマンドラインから都道府県番号も受け取れるようにせよ(番号の頭0は不要。また、都道府県を指定するかは任意とする)
  4. 応援APIを利用し、各店舗の応援を取得せよ。取得するのは上位3件の店舗分のみで構わないが、この指定が今後変えられるよう考慮すること。なお、取得処理は並列で実行すること(asyncioを使用)。
  5. 店舗名・リンク・画像・応援の最低4点を含むhtmlページ(上位3件のみで可)を作成し、ブラウザでページを開け(参考 ただしPython2で書かれているようなので注意)

Python Free Assignment

お題

「昼休みを有効に使うためのコンソールアプリケーション」

昼休み中バッチ実行するもよし、昼休みに向けて何かデータを取るもよし、昼休みを有効に使うためのアプリケーションを作ってみてください。

WebAPIなどはこちらを参考にしてください

MA

Example Answer

Python Basic

  • 実装: basic/python_basic.py
  • テスト: basic/tests/test_python_basic.py

テストの実行

python -m unittest basic/tests/test_python_basic.py

コマンドライン引数を取る課題(5・6)については、コンソールから以下のように実行して動作を確認できます(-hで利用方法の説明を表示可能です)。

# 上位5件を表示
python basic/python_basic.py ./data/address.txt 5 --part h

# 下位5件を表示
python basic/python_basic.py ./data/address.txt 5 --part t

Python Extra

ぐるなびAPIのキーが必要になります。以下の開発者用サイトから登録してAPIキーを取得してください。

ぐるなびWebサービス for Developer

gurunabi_service.pyと同じフォルダに以下フォーマットでapi_key.jsonを作成し、取得したAPIキーを設定してください。

{
  "keyid": "xxxx"
}
  • 実装: basic/python_extra.py
  • テスト: extra/tests/test_python_extra.py

テストの実行

python -m unittest extra/tests/test_python_extra.py

コマンドラインツールとしての利用(-hで利用方法の説明を表示可能です)

python extra/python_extra.py 和食

About

python研修用リポジトリ

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages