All Projects → icoxfog417 → python_exercises

icoxfog417 / python_exercises

Licence: MIT License
short exercises for Python

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to python exercises

90 Python Examples
The best way to learn Python is by practicing examples. The repository contains examples of basic concepts of Python. You are advised to take the references from these examples and try them on your own.
Stars: ✭ 190 (+295.83%)
Mutual labels:  python-exercises
Learn Python3
Jupyter notebooks for teaching/learning Python 3
Stars: ✭ 4,418 (+9104.17%)
Mutual labels:  python-exercises

python exercises

Pythonの基礎的な処理を学ぶためのリポジトリです。

Setup

以下のソフトウェアをインストールしておいてください

How to begin

以下が、Exerciseの手順です。GitもPythonも初めて、という方はWarming-upを参照してください。

  1. 右上にある「Fork」というボタンから、本リポジトリをFork(=コピー)してください。
  2. forkしたリポジトリを、git cloneによって手元の端末に取ってきます。これで準備は完了です。
  3. 各フォルダの中にあるREADMEには、そのエクササイズで達成すべき課題が書かれています。Pointで示されているヒントをもとに、処理を完成させてください。
  4. エクササイズで実装したコードは、好きな名前で保存してください(なお、ex始まりのファイルは.gitignoreされています)。
  5. 各フォルダには、解答例が配置されています。わからない場合は、そちらを参考にしてください。

Exercises

  • Let's Execute Python
    • Pythonプログラムを実行してみよう
  • Collections
    • Pythonで配列のデータを処理してみよう
  • Find Pattern
    • 文字列の中から特定のパターンを見つけてみよう
  • Class
    • Pythonのクラスと単体テストについて知ろう
  • Use Packages
    • 便利なライブラリを使って処理を実装してみよう
  • Exception & logging
    • 例外を処理し、記録しよう

Warming-up

本項はGitもPythonも初めて、という方のためにHow to beginの内容をより詳細に解説します。解説は以下の通りとなります。

  1. Gitを理解する
  2. Pythonのコードを書く
  3. Gitでバージョン管理をする

Gitを理解する

本節の目標は、Gitというソフトウェアの機能とメリットを理解することです。

Gitはファイルのバージョン管理を行うソフトウェアです。Gitでバージョン管理されているフォルダを「リポジトリ(Repository)」と呼び、リポジトリ配下のフォルダ/ファイルのバージョンを管理することができます。Gitリポジトリを共有するサービスは様々ありますが、その一つが「GitHub」です。

「バージョン管理」を行うメリットは多くあります。例えば、バージョン間の差分を比較したり、あるバージョンに戻したりするなどです。「バージョン」は好きなタイミングで作成することができます。Gitでは、最小のバージョン管理の単位を「コミット(commit)」と呼びます。コミットは、好きなタイミングで作成できます。以下は、本リポジトリのあるコミットの内容です。前回のコミットと、今回のコミットとの間の差分を見ることができます。

diff

バージョン管理を行うことで、複数人での作業も行いやすくなります。AさんとBさんが一緒に開発する場合、Aさんの修正とBさんの修正を両方反映したい、というケースが当然考えられます。完全に別々のパートを修正していれば簡単ですが、AさんとBさんが同じファイルを修正していた場合、互いの修正が反映されるよう注意深く作業する必要があります。Gitを使えば、この「注意深い作業」はGitが行ってくれます。異なるバージョンの修正を取り込むことを、「マージ(merge)」と呼びます。以下は、私が送られてきた修正をマージした例です。

pull request

icoxfog417 merged 2 commits into icoxfog417:master from JeffpanUK:masterと書いてあります。これは、私のバージョン(icoxfog417:master)に、修正を送ってきてくれたJeffpanUKさんのバージョン(JeffpanUK:master)を取り込んだ(=マージした)ことを意味しています。GitHubでリポジトリを公開していると、このように他の人から修正を送ってもらえることがあります。これはオープンソースのメリットです。

修正を行う際はあるバージョンから分岐してそれぞれの修正を行います。先ほどの例ではAさんの修正、Bさんの修正、上の実際のマージの例ではJeffpanUKさんの修正、といった形です。このような、あるバージョンから分岐した修正内容をその名の通り「ブランチ(branch)」と呼びます。Gitでは、どのブランチがいつ分岐し、どうマージされてきたのかという歴史を参照することが可能です。

branch

GitHubでは、ブランチから行われる修正を「プルリクエスト(Pull Request)」と呼びます。

Gitには他にも多くの機能がありますが、基本的な機能は以上となります。学んだことを振り返ってみましょう。

  • Gitは、バージョン管理を行うためのツールである。
    • Gitでバージョン管理されているフォルダを「リポジトリ(Repository)」と呼ぶ。
    • GitHubは、リポジトリ共有サービスの一つである。
  • バージョンの最小単位を「コミット(commit)」と呼ぶ。コミットは、好きなタイミングで作成することができる。
    • コミットを作成しておくと、コミット間の差異を確認できる。
  • あるバージョンから分岐した修正のまとまり(コミットのまとまり)を「ブランチ(branch)」と呼ぶ。
    • ブランチを分岐元に統合することを「マージ(merge)」と呼ぶ。
    • GitHub上ではブランチから行われる修正を「プルリクエスト(Pull Request)」と呼ぶ。

以上が、Gitの解説となります。本節の最後に、実際にGitHubで公開されているリポジトリを手元にダウンロードしてみましょう。

最初に、Gitの設定を行っておきます。これは、変更したのが誰なのかを明らかにするための設定です。名前とメールアドレスを登録しておきましょう。

git config --global user.name "git taro" 
git config --global user.email [email protected]

まず、本リポジトリをコピーしてあなた専用のリポジトリを作成します。これは、GitHub上では"Fork"というボタンを押すことで実行できます。

fork button

次に、コピーしたリポジトリをダウンロードします。これは、git cloneというコマンドで行うことが可能です。git cloneで指定するURLは、コピーしたリポジトリの以下のボタンから確認できます。

clone

実行が完了すれば、python_exercisesというフォルダが作成されており、その中にダウンロードされたソースコードが格納されているはずです。このフォルダはGitによるバージョン管理の対象となっているため、コミットを行うことでバージョンを作成することが可能です。

次節では実際にPythonのコードを書いてみて、コミットにより書いたコードを含む「バージョン」を作成してみます。

Pythonのコードを書く

本節の目標は、実際にPythonのコードを書くことです。

実際に書くPythonのコードの解説については、Exercise 1の解説を参照してください。実装したコードを、my_answer_ex01.pyとして保存してみましょう。

Pythonの書き方についての気になる点がある場合は、以下資料を参考にしてください。

Gitでバージョン管理をする

本節の目標は、実装した内容をコミットでバージョン管理することです。

Pythonのコードを書いたファイルを作成したら、以下のコマンドを実行してみてください。

git status

すると、作成したファイルが表示されると思います。git statusは、バージョン管理の対象で、変更が行われたファイルを表示してくれます。なお、バージョン管理したくないファイルは.gitignoreで指定することができます。本リポジトリでは、exで始まるPythonのファイルはバージョン管理をしないようにしています。

では、実際コミットをしてみましょう。コミットの前に、コミットの対象とする変更(=バージョンに含める変更)を指定できます。つまり、複数の変更を行っていても「この変更はこのバージョン(コミット)に含める」「これは含めない」といった切り分けができるということです。以下のコマンドを実行してみましょう。

git add -A

-Aのオプションは、全ての変更をコミット対象とすることを意味します。ファイルを指定したい場合は、git addの後に対象のファイルを指定します。addによりコミット対象とされたものは「staged (cached)」されたファイルと呼ばれます。addしたファイルでバージョンを作成する(=コミットを行う)には以下のコマンドを実行します。なお、コマンド中のcommit messageは、このバージョンで行った変更の内容を簡単に記載します。

git commit -m "commit message"

コミットメッセージの書き方については、こちらが参考になります。これでコミットが作成できました!ただ、この変更はあなたの手元でだけ行われており、GitHub上には反映されていません。これを反映するには、pushを行います。

git push origin master

originはGitHub上のリポジトリを表し、masterはブランチを表しています。pushは送る操作ですが、送られた変更をローカルにダウンロードしたい場合はpullを実行します。他のPCで作業した内容をpushし、別のPCで作業する際にpullする、というのはよく行う処理です。

git pull origin master

変更がpushされているか、ぜひGitHub上で確認してみてください。変更の取り消しなど、より詳細な内容は以下の資料をご参考ください。

以上でWarming-upは終了です。この後もExerciseを進めて行ってみてください!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].