数式をプログラミングに直す

『文系プログラマーのためのPythonで学び直す高校数学』を読んで数学の知識をどうやってプログラミングに直していけばよいのかわかってきた。数学の知識もまだまだ不足しているがプログラミングと同時並行で学習を進めていきたい。早めに機械学習までたどり着きたい。

オフ日

今日は完全なオフ日となってしまった。

 

ProgateのPythonをもう一度復習して、ようやくVisual Cord Studioに何も見ずに再現できるようになった。

Progateでは

Ⅰ、Ⅱ:ショッピングアプリ

Ⅲ:じゃんけん

Ⅳ、Ⅴ:Food&Drink注文アプリ

を作れるようになった。何か作れるようになるのはやはり楽しいので簡単なゲームとか作ってみたいなと思った。

kaggleについて調べ始める

今日はProgateのアプリを使ってPythonの講座を一通り復習してみました。一度Web版をやっているとアプリ版はサクサク進められてよかったと思います。クラス、継承の使い方も少しずつ慣れていっている気がします。

 

また、Kaggleがどのようなものか知るために『Pythonによるkaggleのチュートリアル』という本を読み始めました。どのようなものかはわかったので実際にどんなコードが書かれているのかサイトで見たり、応募をしていこうと思います。

 

数値計算について、まずは『Pythonで学び直す高校数学』を読み始めた。これで高校数学が復習できたら本格的な数値計算の本を読み進めたいと思います。

プログラミング6日目 だらけてしまった・・・

プログラミング勉強開始6日目でしたが、今日は少しだらけてしまいました。

 

2日前にPythonのProgateを終了し、SQLのProgateに移行しましたがそこからペースが落ちてしまっているように感じます。明日からは一旦SQLをやめてPythonで作りたいものを作り始めることにシフトしていこうと思います。

 

今日はYouTubeで単回帰分析の動画を見て原理は意外と簡単なんだと思えたので、他の機械学習に関する勉強を始めてみようと思います。

 

今から1週間でやりたいこと

  • 簡単なゲームを作る
  • 勉強に役立ちそうな簡単なツールを作ってみる
  • 機械学習を一通り学んでみる

 

今日のだらけを反省して頑張ります。

Pythonを自分のパソコンにインストール

今日はアプリバージョンのProgateを使ってSQLの講座を2つ終了させました。Web版だと4つの講座と道場コースがあるのでそれは明日から始めていけたらと思います。

 

さて、昨日ProgateのPythonコースをすべて終了できたので今日はそれらを復習して1からコードを書いてみようと思ったのですが、自分のパソコン上でどうやってコードを書いていくのかが全く分からないことに気が付きました。

 

ということでいろいろと調べながら環境構築を始めました。Visual Studio Code

Anacondaをインストールし、Pythonを自分のパソコンで書けるようにしました。

 

実際にProgateで作った内容を自分のパソコンで書いてみると、Progate と違い答えも表示されないのでエラーが出た時自分で考えなければならないですし、1度やったことがあるものでも結構間違えるということがわかりました。

 

これからは毎日1つは何か簡単な成果物を作っていきたいなと考えています。自分の好きなものを作れるようになると思うとわくわくしてきます。

Progate 3日目 ~Python終了~

今日は何とかProgateでPython Ⅴを終わらすことができました。予定通り3日でPythonのProgateを終わらすことはできましたが、やはり初めてのプログラミングだったこともありよくわかっていない部分は多いです。

 

特に今日やったクラスと継承はもともと親クラスでどのように定義していたかを忘れてしまい、呼び出すときにどのようにコードを書けばいいのかなかなか進まないといったことが起こりました。なんとなく指示通りに進めて終わらせることはできましたが、1からすらすら作ることはまだ絶対にできそうにないです。

 

明日全体の総復習とどのような流れで作ったのかを確認し、自分のパソコン上に1から再現できるのかをやってみたいと思います。

 

また、今日はSQLのProgateもスタートさせました。SQLPythonよりもかなり簡単な印象があります。5講座のうち1つはすらすらと終わらせることができました。

 

明日は

  • ProgateのSQLを終わらせる
  • ProgateのPythonを総復習し、自分で1から成果物を作れるようにする
  • Python数値計算のやり方を学び始める
  • 何か今までのPythonの知識で自分に役立つものを考えて作ってみる

ということを目標にしてやっていきたいと思います。

Progate 2日目

Progate 2日目。今日はPythonのⅢとⅣを終了することができました。

 

昨日の後半にスライドの説明はほとんど見なくても絵を見て、あとはExerciseを解くだけですらすらとできると気づきました。しかし今日の内容は難しく、説明を読まないとわからないところが多かったです。そのため、昨日と同じように2つのLessonしか終わらせることができませんでした。

 

クラスとはいったい何なのか?なぜこんなもの使うのか?なぜファイルを分けて書いた方がいいのか?こういったことに躓き、なかなか進むことができませんでした。

 

しかし色々と考えながらやることで以下のようなことがわかってきました。

 

  • append()の()は関数をあらわしていたんだな。はlistにしろdictionaryにしろkeyとかitemとかの要素を一つずつ取り出すか一つずつ並べられているときに使うんだ。ペアになったら{}を使う。
  • 関数の中にargumentを受け取るparameterがある場合にはそれをクオーテーションマークで囲ってはダメ
  • なぜ定義した関数と後で出てくる変数名が違うのだろう? →違う変数にしないと2つ定義が存在してしまうから。(上書きされてしまう?)
  • returnで返されるときに文字列を値として返すとき、print('string')ではなく、'string'だけにしないといけない。なぜならprint()は値valueではなく関数だから。
  • ~.~~とドット(.)を使うときは他のファイル、モジュール、Standard library、クラスから関数を引っ張ってくるとき、またはクラスに作ったinstanceの変数を定めるとき。関数では()が付くがinstanceではつかない。
  • クラス内に作った関数(メソッド)の最初のparameterはなぜselfにしなければならないのか?→selfは後から呼び出されたinstanceを代入することができるparameter。だからメソッド内でself.nameなどself.~と定義しておけば後からすべてのinstanceについて共通のvariableを作っていく必要がなくなる。
  • クラス内で定義したメソッドの中でprint()を使って、あとでinstance methodとして呼び出した方が書く量が少なくて楽だと思ったが、ただの文字列のvalueとして返した方が後でprint()の値としてだけでなく、他の関数に代入できる値として利用できると気が付いた。
  • __init__メソッドはすべてのinstanceに共通する項目をアウトプットするのにとても便利。
  • ファイルを分割するのはコードが長くなりすぎないのを防ぐため。(Progateでやっていると1つのファイルにすべてのコードが書いてある方が流れを確認しやすくて便利だが、実際のプログラミングではとても長くなることがある。)

 

昨日引っかかったところも進めるうちにわかってきたので難しかったが理解を深めることができた1日でした。

 

明日はPythonを終わらせてSQLに入る予定です。