PAGE TOP

取り組み

印刷する

みんなのAI講座 ゼロからPythonで学ぶ人工知能と機械学習《2》

Pythonの基礎

さぼ郎
プログラミング

Pythonの基礎というこで、以下の項目を延々、やっています。

24. 論理演算子
論理演算とは「and」とか「or」のことです。
これは、いかなる言語でも(書き方に違いはあれど)普通にある記述なので不思議はありません。
25. 分岐
これは「if」「elif」「else」のことです。

if time > 5 and time < 12:
    print  "Good morning!"
elif time >= 12 and time < 18:
    print "Good afternoon!"
else:
    print "Good night!"

のように「if文」「elif文」「else文」の行末に必ず「」が必要になります。
コロンがついていないとエラーになります。これは、ちょっと慣れが必要ですね。
26. リスト
リストとは「配列」のことです。
レクチャーでは、1次元配列しか触れていませんが、一般に2次元配列や3次元配列は、結構使いみちがあります。
27. タプル
書き換えができない配列の宣言のようです。
そもそも、配列に値をセットした後から書き換えることって、そんなにあるようには思えませんが機械学習では、どなんでしょうか。
28. 辞書
これも一種の配列ですが、どうしてもなければ困るような機能のような気がしません。
使いみちについては、いまのところはイメージがありません。
29. for文
ワタシ的には、ループというともっぱら「for文」派です。
30. While文
while文には出口と入口の条件設定があって面倒くさいので、通常はfor文で用を済ませてきました。
31. 分岐とループの組み合わせ
for文にif文を組み合わせて配列に値をセットしています。

range(0,10) という書き方があって、これだと配列に「0」から「10未満」つまり「9」までをセットするのだそうです。
こんなの使う場面を想定できません。for文で用が足りると思うのですが、、、。

b.append(i) こんな書き方で空の配列に値をセットできるようです。こういう書き方には慣れがありません。
32. 関数
関数

def文が「関数」の宣言になります。
PyCharmは関数を左にある上下マークで閉じることができるはさすがのアイデアですね。

関数
33. スコープ
昔で言うところのグローバル変数とローカル変数の違いのことのようです。
関数の中からは両方の変数を参照することができます。

スコープ
これを見ると、関数が呼び出す変数「b」は、ローカル変数が優先されています。ま、同じ名前で変数を作らないことが鉄則のような気がしますが、ループなどで「i」とか「j」は結構使ってしまいますが、スコープは要注意ということですね。

一時は、「グルーバル変数は使ってはいけない」何ていう時期がありました。
34. 引数と返り値
関数内で処理をした結果を「return」で返す。
35. デバッガの使い方
「PyCharm」によるデバッグのやり方です。
デバッガ
PyCharmでステップ実行すると、変数の値を実行ごとに表示してくれますので、異常動作を検出することができます。
36. 多重リスト
多重リストなどというと、何ごとかと思いますが、要は多次元配列のことです。
多次元配列は、使いみちのある配列だと思いますが、機械学習では必須の概念のようです。
37. クラスの概念の解説
38. クラス
その昔、「C++」が出て来きた時に「クラス」という概念が出てきて、そのあたりでプログラミングをやめてしまいました。
ここにきて「クラス」が出て来るとなると、仕方がないので勉強することとします。
ようは「インスタンス」と「メソッド」のことなのだろうと思います。
39. クラス、リストの応用
クラスの宣言
class Caliculation:
    value=0
    def square(self):
        s=self.value*self.value
        return s
そのクラスを配列にする
calcs=[Caliculation(),Caliculation(),Caliculation()]
で、3つのクラスの「value」に値をセットしてfor文で表示をするという内容です。
for c in calcs:
    print c.square()
c  in calcs」という書き方には慣れが必要かも。
40. ファイルの読み込み
ファイルのオープン
score_list_file=open("score.txt")
これで、「score.txt」というファイルをオープンできます。
for score in score_list_file:
    score=score.rstrip().split(",")
    score_list.append([score[0],int(score[1])])
score_list_file」というファイル・ポインタから「score」という変数にファイルの内容(行データ)が読み込まれます。
rstrip」と言うのは、行末改行を取り除く処理だそうです。
split」は行データを「カンマ」でセパレートしています。
で、冒頭で定義した空の配列「score_list」にappendしていきます。
splitしているのでscoreには「0」と「1」に分離されています。
添字「1」の値を「int」にしています。

[['taro', 78], ['hanako', 98], ['ichiro', 68], ['keita', 54], ['yuko', 89], ['reiko', 78]]

ということで、やっと、Pythonの基礎編が終わりです。完全にマスターしているわけではないので、サンプルを見ながらなら、どうにかこうにかエラーが出ずに実行させることができました。

が、まだまだ、言語として自分のものにはなっていません。

キーワード