Bot と一緒にインタラクティブに学ぶ Python 入門 〜 GitHub Learning Lab の Introduction to Python を受講してみよう
GitHub Actions を学ぶときに「GitHub Learning Lab」を使うと便利であると、カックさん @kakakakakku に教えてもらった。
その「GitHub Learning Lab」の中に「Introduction to Python」コースなるものを発見した。これから Python に挑戦したいと思っていた方は是非チャレンジしてみて欲しい。
GitHub の流れに沿って行うので、GitHub の操作に関しても実践を通して学ぶことができる。また、個人的な感想としては、Bot とインタラクティブに対話ができるので、やっていて楽しかった。ただ、本コースに関しては、プログラミングが全くの初心者で挑戦するにはハードルが高い気がした。コードに関する説明が少ないので、Python 以外の他の言語をやったことがあり、Python に初めて触れる方にとってはいいコースであると思えた。実際に、Python のコードに触れて、体験してみるにはいい教材であると思えた。
Introduction to Python とは
「Introduction to Python」は GitHub Learning Lab が提供する Python の入門コースである。現在は日本語翻訳がなく、英語のみではあるが、ステップごとに非常にわかりやすい構成になっているので、英語が少し読めるレベルでも十分に最後まで出来る。以下のように、Step 1 ~ 7 で構成されている。
- Step 1 : Set up your environment
- Step 2 : Hello World
- Step 3 : Change the primary function
- Step 4 : Read a file into an array
- Step 5 : Get the last element of an array
- Step 6 : Retrieve a random quote
- Step 7 : Explore Python on your own
GitHub の issue に課題が追加されて、Bot と対話しながら、解決していくような流れで進める。 最終的には、テキストファイルからランダムで文章を出力することができる Python のプログラムを作ることができる。
Setup
まず「Start free course」ボタンを押してセットアップを行う。(事前に、GitHub へのサインインが必要となる。)本コースで使う GitHub リポジトリの公開範囲を選択する必要があり、私の場合は Public しか選択できなかったので、そのままで進めた。すると、自動的に python-random-quote が作られる。
そして、bot から Step1 で何をすべきか、丁寧に説明が書かれた issue が追加されているので、それに従って進めていく。
Step 1 : Set up your environment
まず、Python の実装を始める前に、開発環境のセットアップが必要なので、STEP 1 ではまず環境設定を行う。確認すべき項目は以下の3つである。
バージョンの確認方法、ダウンロード先含め、全て丁寧に記載されているので、それに従って進める。以下が、私のローカルの環境設定であった。
$ python3 -V Python 3.7.7 $ git --version git version 2.27.0
問題なければ、issue をクローズすることで、次に進むことができる。GitHub の詳細な操作説明はないので、前提コース「Introduction to GitHub」コースを受講しておくことをオススメする。
Step 2 : Hello World
実際に、Python のプログラムの動作確認を行う。クローンしたファイルの一部のコメントアウトを外して、実行することで、実行結果が表示されれば OK である。
変更箇所をコミットして、GitHub に push することで、次の課題が bot から告げられる。Git の操作が始めての人でも、手順通りにやればできるよう、丁寧にコマンドが書いてあるので安心してほしい。
Step 3 : Change the primary function
def main(): print("Keep it logically awesome.") if __name__== "__main__": main()
次に、現在のコードでは、関数名が main となっているので、この関数名を primary に変更する課題が出される。この章では、関数の関連性、紐付けを確認することができるようになっている。
変更が完了したら、GitHub に push して完了だ。
Step 4 : Read a file into an array
ここからが、本題のプログラムである。まず、先程実行した2行目を再度コメントアウトして、実行されないようにする。次に、4行目以降のコメントアウトを外す。
f = open("quotes.txt") quotes = f.readlines() f.close() print(quotes)
上記のコードを実行することで、テキストファイルを読み込み、読み込んだ結果を出力することができる。読み込んだ文字列は配列として取り込まれているので、最初の一行のみを表示するようにプログラムを変更して、実行する。
実行した結果を issue のコメント欄に貼ると、Bot が反応して、次の課題に進むことができる。
Step 5 : Get the last element of an array
先程は、最初の行を表示したので、次は最後の行を表示してみましょうという課題だ。 配列操作の課題である。解決方法は以下の2パターンである。
- テキストファイルの行を数える。ただし、最初の行が「0行目」であることに注意が必要であると記載されている。
- 負の数を指定する。(こちらはテキストには記載されていないが、調べてみて欲しい。)
変更して、実行した結果を issue のコメントに貼ると、Bot が反応してくれ、次の課題に進むことができる。
Step 6 : Retrieve a random quote
次に、乱数を発生させて任意の行を表示させるプログラムに変更する。
そのために、random モジュールを読み込み、処理を行うことができるよう、コードを変更する。
変更が完了して、無事に実行できれば、push して完了である。
ここまででコードの説明は終わりとなる。
Step 7 : Explore Python on your own
発展課題として、以下が提示されている。
- テキストファイルに文章を追加する
- 一度に複数行の出力をする
- 出力時に、改行コードを削除する
- ファイルの書き込みについて学び、プログラムで引用符を追加する
Step 7 に関しては、現時点では、回答がない形になっている。
まとめ
Botとインタラクティブに、一緒に学ぶ新感覚はいい体験であった。一歩一歩確実に進める形はとても良かったように思う。「GitHub Learning Lab」は Git に限定せず、汎用的な学習プラットフォームになりつつあるようだ。今後も要チェックしていきたい。また、Issue や Pull Request など GitHub の機能を活用して、誰でもコースを作って公開することが可能なので、是非自分もコンテンツ作成に挑戦したいと思えた。
それでは、ステキな開発ライフを。
関連記事
「GitHub Learning Lab」の GitHub Actions は以下をどうぞ。 kakakakakku.hatenablog.com