2018年8月14日火曜日

Progate 勉強メモ その4 クラス継承【Python編】

Pythonを勉強中。
クラス継承っていうとRPGみたいですね。

いまあるクラスを元に新しいクラスを作ることを「継承」と呼ぶ。
なぜクラスの継承が必要かと言うと
同じような機能を持つが、別のクラスが必要なとき

Progateでは、メニューの名前と価格を出すクラスを設定し、
食べ物のメニュー、飲み物のメニューを出すという機能を作るときに
食べ物用、飲み物用のクラスを継承で作成する。という例が挙げられてました。

作り方としては
class 子クラス(親クラス):
    pass
という書き方をします。

なかのメソッドは引き継がれていますが、子クラスの方で改善することも可能。
もし親クラスと子クラスで同じ名前があったら「上書き」されます。

__init__メソッドも上書きすることができます。
親クラスと同じように書いていけばいいのですが、重複をまとめる方法として、
super().__init__(self, 引数1, 引数2 ...)
があります。

ここまででProgateのPythonは終わり。






2018年8月12日日曜日

Progate 勉強メモ その3 クラス【Python編】

ProgateでPython勉強中なのでメモ。

Pythonではクラスを定義することができる。
...このクラスってのがよくわからない....オブジェクト指向?

とりあえず作り方としては

class [class名]:
    pass

のような感じで作成、class名は最初が大文字。
インデント下げて、passというところに 処理を書く。
[class名]() で呼び出して、変数に代入するなどのことができる。
例えば
class Menu():
    def info(self, name):
        print("オーダーは" + name + "です")

order = Menu()
order.info("バナナ")
出力:オーダーはバナナです

のような感じ。

モジュールをインポートしたときのようにクラスを扱うことができる
上記のClass Menu() を class_menu.pyとして保存したら
import class_menu
order = class_menu.Menu()
order.info("バナナ")
で同じように扱えます

毎度, class_menuとモジュール名を打つのが大変というときは
from class_menu import Menu
とすれば、
order = Menu()
order.info("バナナ") として使うことができます。

今日はこのあたりで。

2018年8月11日土曜日

Progate 勉強メモ その2 自作関数とモジュール【Python編】

今日も今日とてPythonを勉強します。(更新遅くなった...)

○ Pythonでは自作の関数を定義することができる

def hello():
   print("Hello, world")

のように書く。
メリットとしては、同じ処理を何度もやるときに修正が1度で済むこと

引数を設定することができ、hello() に仮引数を設定します

def hello(name):
    print("Hello! " + name)

hello("Tom") と打つと
Hello! Tom
と出力されます

def hello(name = "John"):
    print("Hello! " + name)

引数の初期値として"John"を設定できる。

初期値なしで、hello() と打つとエラーになるが
初期値ありで、hello() と打つとこの場合、Hello! Johnが出力される。

○ Python モジュールとして組み込む
コードが長くなってくると、わかりにくいし、バグもでる。
同じ処理を繰り返すことを考えると、別のファイルに保存して、使えた方が便利。

関数を書いたファイルを hogehoge.pyとして保存します。
import hogehoge
でモジュールをインポートすれば、なかの関数を呼び出して使うことができます。
使うときは、
モジュール名.関数名で使う。(hogehoge.kansu1のような感じ)

モジュールとして組み込めるのは自作のもの以外にもすでに誰かが作ったものを使うこともできる。
そういうモジュールをライブラリと呼んで、例えばnumpy, scikit-learn, mathなどなど
例)
乱数を作るライブラリに"random" があるので
import random
でrandomを組み込んで、その中の関数、randint (範囲内の整数をランダムに返す)
random.randint(1,10)
で、1〜10の整数をランダムに返します。

この休みの間にいろいろと勉強を進めないとね。




2018年8月4日土曜日

Progate 勉強メモ その1【Python編】

Pythonを少しずつ勉強(というか今のところ、本でやったとこだし復習みたくなってる)

1. リスト
list名 = ['要素1', '要素2', '要素3', '要素4', '要素5' ]
 例えば
fruits=["apple", "grape", "pineapple", "melon"]
で作成する

リストにはインデックス番号がついていて、
要素1は番号が「0」
リスト名[0] で呼び出すことができる
上の例なら、apple が出力される
リスト名[1:3] のように書くと、部分的に取り出すことができる
上の例なら、
grape, pineapple が出力される
*第2インデックス(この場合、3)は自身が含まれず、 インデックス番号2までが呼び出される
 
2. for文
for fruit_name in fruits:
    print(fruit_name)
のように書く
fruits のなかの要素を、変数 fruit_nameに入れて、インデントを下げたコマンドを実行します
なので、
apple
grape
pineapple
melon
が出力される

3. 辞書
fruits_color_dic = {"apple":"red", "grape":"purple", "pineapple":"yellow", "melon":"green"}
のように書く
キーと対応する値(バリュー)との組み合わせで書く
今回は、redなどの文字列で組み合わせているが、数値を入れることもできる


for文でバリューを呼び出すこともできる
fruits_color_dic = {"apple":"red", "grape":"purple", "pineapple":"yellow", "melon":"green"}
for fruit in fruits_color_dic:
    print(fruits_color_dic[fruit])
なら red, purple, yellow, green と出力される

4. while文
while [条件文]:
で条件文に合う限り、処理を繰り返す

i = 0
while i < 10:
    print(i)
    i = i + 1

で i が 10より少ないときに出力したあと、 i に 1を足すことを繰り返す。
繰り返しをしているけど、条件が抜けれないと無限ループしてしまう
(例えば上だとiに1を足す処理がないと、0がずっと出力される)

5. break, continue文
for文やwhile文のなかで、条件に応じてスキップしたり、処理を止めたり。
Progateの例だと、
1,000円持ってて、りんごをいくつ買った、0円になったら処理を止める
というのに役に立つ


i = 0
while i < 10:
    i = i + 1
    if i == 5:
        break
    print(i)
0 ~ 10を出力するときに
i = 5のときに終了する

i = 0
while i < 10:
    i = i + 1
    if i % 2 == 0:
        continue
    print(i)
i を 2で割って、あまりが0かどうか(偶数かどうか)で
偶数ならあとの処理をスキップする

続きはまた今度。










2018年8月2日木曜日

Progateやってみた その2【Git編】

今日も今日とてProgateGitを勉強してます。

1.gitの状態を確認する
git status
と打つと、git add したファイルの状態を見ることができる。
ファイルのうち、変更があったものについては、
modified [file name ]
と赤色で表示される

2. ファイルの変更箇所を確認する
git diff
と打つと、ファイルの更新箇所が表示される
追加した部分は
+ hogehoge 
と緑色で表示される
削除した部分は
-  hoge
と赤色で表示される

3. 変更したファイルを stageにあげる
git add [modified file]
と打つと、変更したファイルをstageにあげることができる
で、変更したファイルは
git commit でローカルレポジトリに登録
git push でリモートレポジトリに登録(でいいんだよね...)

4. 変更履歴を確認する
git log
と打つと、コミット履歴とコミットメッセージをみることができる
オプション -p をつけてコマンドを打つと
変更履歴が見れる

...というあたりでProgateの基本的なところは終わり。
あとは少し本を読んだり、実際に使いながら覚えていくしかないかな。

Progateやってみた その1【Git編】

Progate 勉強メモ
今日はGit

なんとも残念なことに実はGitってなにさね... ってレベルだったわけです
(なんとなく開発に使ってる、バージョン管理できるらしい...くらいのレベル)

まぁ本を読むといいとは思ったんですがせっかくProgateあるならやってみようと思い至ったわけです
自分用のメモなので、間違ってることがあるかも...
そのときは指摘してくれると嬉しいです。

 MacならGitはすでにインストールされているので、そのまま使えます。

 1. Gitの初期化 (ローカルレポジトリの作成)
git init
とコマンドを打つと、初期化されて、今のディレクトリに .git という隠しファイルが作成される

2. 共有するファイルの選択
git add [file name]
とコマンドを打つと、[file name]のファイルが選択される。(どうやらstage環境にあげるというらしい)

3. ローカルレポジトリにあげる
git commit -m "[message]"
と打つと、ローカルレポジトリにあげる。
-m "[message]" は message を残すことができる。
省略できるらしいけど、変更履歴を残すためにも残した方がよい。
どんな修正をしたかプレフィックスをつけるとわかりやすいとのこと。
↓ ルール例
https://github.com/angular/angular.js/blob/master/DEVELOPERS.md#type

4. リモートレポジトリにあげる
git push [URL エイリアス] [ブランチ名]
と打つと、リモートレポジトリにあげる。

URLエイリアス...? ブランチ名...?
ってな感じなのでもう少し勉強しないと。