在宅リーマン勉強日誌

忘れがちな毎日のメモ。

【2日目】KaggleでPythonの勉強してみた【独学】

KaggleのCourseタブからPythonの勉強ができるのでそのノートを取ります

 

【2日目】

Lesson:Hello, Python <Exercise>

勉強時間:30分

Lesson:Functions and getting help <Tutorial>

勉強時間:30分 

 

Lesson:Functions and getting help<Exercise>

勉強時間:30分 

 

Lesson:Booleans<Tutorial>

勉強時間:30分  

 

 Lesson:Hello, Python <Exercise>

<内容のメモ>

Notebookの使い方

 コードの実行:ctrl+Enter

上にセルを追加:セルを選択→Esc→a

下にセルを追加:セルを選択→Esc→b

 

Question0では回答の見方・ヒントの見方が出てくる

color = "Blue"って打つ

チェック「違うよ。回答の見方とかヒントの練習をするために、ヒントを見てね」

ヒント「glueと韻を踏んでるよ」

(韻を踏んでる=Rythmがわからず)color = "glue"と打つ

チェック「え、めっちゃうけるw」

いい意味でイラっとした

 

コードを解くのが楽しかった!

 

<新出単語>

diameter:直径

vice versa:逆に

 

Lesson:Functions and getting help <Tutorial>

<内容のメモ>

ヘルプ:help() →①引数②関数の定義・働き を解説してくれる

今の段階では必要がないけど、後々複雑になるにつれて、関数の中身を理解する上ですごく役に立つ。
ここでの②のことをdoctringという。

関数の定義
return:関数を出るときの宣言。また何を関数の解にするのかを書く。
自分の関数を作ると、docstringを入れておかないと、help()に入れても何も解説してくれない。
dosctringの作り方:"""でくくる(ダブルクオーテーション3つ)
あまり使わない関数ほど、docstringを作っておくと役に立つよ。

printの面白い機能

printにはsepという機能があり、カンマで区切られた単語の間に挿入する単語をかけたりする。(下記で<を書かなければシンプルに1 2 3だけ印字される)

print(1, 2, 3, sep=' < ') 
1 < 2 < 3

 

関数を作るとき: def 関数名(引数)

関数内関数(関数の中で関数を呼ぶ)は下記でできる。

→ def 関数名(fn, arg) : return fn(arg) 

→print関数だと、最後にkey = 関数名を使うと、関数を使った結果が印字される

 

<新出単語>

docstring:Python用語。関数とかクラスに関してユーザーが残しておくコメント

qiita.com

voluminous:(形)おびただしい
configurable:構成可能
inscrutable:(形)不可解な

aka:as know as 別名

 

Lesson:Functions and getting help<Exercise>

 

 Q1:docstringの内容に沿って関数を完成せよ。

  関数→小数点2桁までに数を丸めること(3.1415なら3.14)

※passはPythonの性質上、関数の中に何か書かなければいけないので、意味はないが書いてるだけの行

<感想>

純粋にPythonの一般的な関数を知らないから、四則演算でなんとかするのかな…と思いきや、hintを見て、割とシンプルなつくりだなあと(そりゃ関数になれるためのパートだもんね)

 

Q2:round関数にはndigitsが負の数をとることがあること書かれている。試してみること

<感想>

Excel関数でよく使っていたので、すんなりできた

 

Q3:ハロウィンで集めた総キャンディ数を友人間で等分し、余りはつぶすこととする。キャンディ数と友人数を引数とする関数を作成すること。なお友人数が定義されない場合は3人とする。

<感想>

無駄なことを考えてしまった。

if文使って場合分け、と考えたけど、まだif文はTutorialには出てきてないので混乱した。しっかりTutorialを見れば確かにわかる。

 

Q4:エラー構文を読む練習。エラーを吐く構文を実行し、正しく直せ。

コメントを外す:Ctrl+/

 

<新出単語>

decimal :(名)十進法の、少数の

 

<感想>

Exerciseはやってて面白いものだけど、今回は割とすんなりできた。

 

Lesson:Booleans<Tutorial>

正誤判定:bool

TrueやFalseを変数に直接入れるよりも、比較演算子で正誤判定をすることの方が多い。

Operation Description   Operation Description
a == b a equal to b   a != b a not equal to b
a < b a less than b   a > b a greater than b
a <= b a less than or equal to b   a >= b a greater than or equal to b

比較演算子では、intとfloatを比較することはできるが、stringとintは無理

returnのところで、and, or, notをつけたりすることで、さらに条件を付けた関数にもできる。

and, or, notには優先があって、andの方が高いと決まっている。

True or True and False

例で出てきた、上記は True or (True and False)と読め、True and Falseは存在しないが、Trueであればいいので、解はTrue

もし、orの方が上位の場合は結果も変わり、(True or True) and Flaseで、True or True =TrueとFalseが同時に成り立つものは存在しないので、解はFalseとなる。

この書き方は結構なバグの可能性を秘めているので、()で囲ってしまう方が可読性も高く、よいコードである。

条件文:if, elif, else

bool関数における正誤

数字:0以外のすべての数字はTrue

文字:何か文字が入っていればTrue

上記をうまく使えば、ifは比較演算子がなくても成立する。if 0:だと、Falseの場合、みたいな使い方ができる。

 

<新出単語>

 precedence :優先権、上位

denote:(動)示す

implicitly:暗に

 

<感想>

内容難しかった。Bool自体他の言語と変わらないんだけど、サンプルを理解するのに少し時間がかかってしまった。