見出し画像

第3話 Pythonの文法を学んでみた

「はじめてのディープラーニング」(我妻幸長著)の第2章、Pythonの概要について学んでいきます。(AIまでの道のりは遠い・・・)
Pythonを触るのは初めてなのですが文法はどうなっているのかな?

今回学ぶ内容はこんな感じです。
・変数と型
・演算子
・リスト、タプル
・if文、for文
・内包表記 ⇦感動した
・関数
・クラス

変数と型

Pythonは変数の宣言がいらないのかぁ。楽チンでいいですね。

型は
・整数型(int)
・浮動小数点型(float)
・文字列型(str)
・論理型(bool)
・リスト型(list)
があるっと。

論理型は初耳(初見?)、こんな風に使うのか。

スクリーンショット 2020-03-11 5.00.44

Trueなら1、Falseなら0という自分ルールでやってたけど、こっちの方がわかりやすくていいですね。

リスト型はいわゆる配列かな。

演算子

続いて演算子について、主なのはこんな感じだそうです。

征note用.006

ふーん、だいたい今までやってた言語と一緒ねー・・・ってよくみたら「//」「in」はみたことがないぞ。
「//」は割ったら商を返してくれるのね。地味に便利そう。
「in」はどうやって使うんだ?と思いつつ、ここは一旦スルー。

「+」を使えば文字列やリストを簡単に結合できるですって。
やってみよう。

スクリーンショット 2020-03-11 5.22.07

確かに簡単、これはイイですね。
ついでにノリで掛け算してみた!
リストの要素が掛け算されるんじゃなくて結合されるんですね。驚き!

リスト・タプル

どちらも配列なんですね。
タプルは初耳ですが、変更できない配列、いわゆる定数と理解しておこう。
でもやっちゃダメと言われるとやってみたくなりますよねぇ。
ということでタプルを書き換えてみよう!

スクリーンショット 2020-03-15 6.08.40

案の定、エラーメッセージが表示されましたw

if文・for文

定番のif文、for文です。
初めてプログラミングを学んだ時は結構苦労したものです。
でも一度わかってしまえば言語が違っても方言が違うくらいの感覚でイケちゃいますよね。

if文は「:」を使うのと、終わりの定義がない(endとか「}」とか)が特徴的だなぁ。
ソースコードが少なくなってイイかも。

スクリーンショット 2020-03-15 6.59.10

for文はものすごくシンプルなんですねぇ。
でも僕は最初にC言語を習ったせいかC言語の書き方が好きかも。

スクリーンショット 2020-03-15 7.06.58

どうでもいいですが、rubyのfor文って難しくないかな?それって僕だけ?
どうも理解できなくていつもwhile文使ってました^^;

while文はC言語とほぼ一緒ですね。
a += 1っていうこの愚直な操作が妙に安心します。

スクリーンショット 2020-03-15 7.12.23

内包表記

完全に自分にとって新しい概念が登場!
なになに。「リストの要素を操作して新しいリストを作成するための記法」とはなんぞや?
早速サンプルコードをみてみよう。

スクリーンショット 2020-03-15 7.17.14

これはなんと画期的!for文で一つずつ要素を操作しなくても良いなんて!
しかも条件もつけられる。

スクリーンショット 2020-03-15 7.19.22

こんなに簡単に配列操作できるようになるとプログラミングが楽しくなっちゃいますね!

関数

定番の関数です。
defで定義して、returnで返す。とてもシンプルで良さそうです。

スクリーンショット 2020-03-15 7.24.39

ちなみに僕はrubyでうまく関数が使えなくて挫折しました。(なぜかreturnができず諦めた。)

クラス

Pythonはオブジェクト指向で、クラスとインスタンスという概念があって、なんやかんやと呪文のようなことが書いてある・・・^^;
まとめると、クラスを使うと複数のメソッドをまとめることができるそう。

スクリーンショット 2020-03-16 5.18.24

うーん、わかったようでよくわからない。。
どういうときに使うんだろう?とりあえず先に進みます。

というわけで今回はPythonの基本的な文法を学びました。
他の言語と比較して、シンプルで使いやすそうな雰囲気があります。
実際にコーディングするのが楽しみになってきました。

次回はNumPyというものを学習します。

それでは^_^ノシ

よろしければサポートお願いします!いただいたサポートは書籍代等に活用いたします!