Pythonは機械学習やAIでよく利用されるコンピュータ言語です。ここでは、Pythonプログラムの基本的な使い方を学びます。変数の使い方、プリント文、繰り返し文、if文の書き方、配列や関数の作り方を学びましょう。
Contents
プログラミングの事前学習のゴールを確認
まず下記のプログラムを実行してみましょう。下記のプログラムは数学と英語の得点を合計を求め、その結果を表示します。現時点では、下記のPythonプログラムの各行が何を意味しているのか全く理解できないでしょう。このプログラムを理解できるようになるのが本記事のゴールです。実際に書けなくても、読めるようになることがゴールになります。
では、四則演算から始めましょう。
四則演算:算数の基本
アルファベットを使って好きな名前の変数を作ることができます(下記のプログラムの「a」「b」「ans」などが変数です)。掛け算は「*」、割り算は「/」、足し算は「+」、引き算は「-」を使います。print文を使うと変数の値をプリントすることができます
【Q1】 下記のプログラムは137850円の商品の税込価格(税率10%)を計算するプログラムです。プログラムの間違いを正しましょう。
変数を使った演算でイコールの左側と右側に同じ変数を使う場合(下記のプログラム「a = a + 200」ではイコールの右側と左側に同じ変数「a」がある)、イコールの右側にある変数は演算前の値が入っており、イコールの左側の変数に演算結果が入ります。数学としてはこのような記述は存在しないため違和感を感じるかもしれませんが、ここはプログラミングのルールとして覚えてください。下記のプログラムを実行して確認してみましょう。
繰り返し:同じ処理を繰り返したいことは良くあること
for文は同じ処理を繰り返したいときに利用します。for文の下にインデント(4つ半角スベース)を入れて右側にずらして記述したプログラムが「range」で指定した回数実行されます。forの後に記述されている変数(下記の例では「i」)を確認すると、何回目の実行なのかが分かります。
forの後に記述されている変数(下記の例では「i」)は、処理が繰り返されるたびに変化します。そのことを以下の例で確認してみましょう。 「i」の値が変化するので、「i」を使って計算される「a」の値も変化します。
ここではfor文の後に「i」という変数名を使っていますが、「i」以外の変数名を使っても問題ありません。変数名は自由です。
下記は、for文を使った実用的なプログラムの一例です。
【Q2】 下記のプログラムは0 から10までの整数を足し算するプログラムです。プログラムの間違いを正しましょう。
条件文:判断に利用
if 文は条件判断をするために利用します。if の後にチェックしたい内容(条件)を入れます。例えば、aとbが等しいかどうかチェックするには「a == b」という条件を入れます。等しいかどうかを確認するのに、「=」でなく「==」とするので注意しましょう。
配列:データを並べてまとめて扱う便利な方法
数字などをまとめて扱いたくなることがあります。そのような場合は配列を使うと便利です。例えば、a = [1, 2, 3, 4, 5] という配列を作ると、5つの数字がaという一つの配列にまとめられるのでプログラムを作る時に取り扱いが簡単になります。配列の中に入っている各要素には、その場所を示すインデックスを指定してアクセスします。例えば、a = [100, 200, 300, 400, 500] という配列では、インデックス「0」の要素は先頭の数字、インデックス「1」の要素は先頭から2つ目の数字を指定します。この例では、インデックス「0」の要素a[0]は「100」、インデックス「1」の要素a[1]は「200」です。 下記のプログラムを実行して、配列の使い方を確認しましょう。
下記のプログラムは、for文を使って配列aに含まれる全ての要素を足し算する例です。
上記のプログラムの説明
配列の要素数分(「len(a)」分、この例では5回分)、繰り返し「足し算」を処理しています。answerの値は下記のように変化していきます。
1回目: 0 + 1
2回目: 1 + 2
3回目: 3 + 3
4回目: 6 + 4
5回目:10 + 5
で、「15」の答えが出ました。
【Q3】 下記のプログラムは配列aの中に含まれる「0」の個数を数える(カウントする)プログラムです。プログラムの間違いを正しましょう。
配列に新しい要素を追加する方法
配列に新しい要素を追加したい場合は「append()」を使います。「append」とは英語で追加という意味です。
「append()」を使うと配列に新しい要素が追加されることを下記の例で実際に確認してみましょう。
この例では、最初に要素が何も入っていない配列taxを作成し(空の配列を作成し)、for文で配列priceの各要素の8%の消費税を計算して追加しています。for文で処理が繰り返される度に、新しい値(price[i] * 0.08)が追加されます。
上記のプログラムの説明
配列priceの要素数分(「len(price)」分、この例では4回分)、繰り返し配列taxに新しい値を追加(append)しているので、tax配列の内容は、繰り返し処理が行われる度に以下のように変化していきます。
1回目:tax配列は[80.0]
2回目:tax配列は[80.0, 160.0]
3回目:tax配列は[80.0, 160.0, 400.0]
4回目:tax配列は[80.0, 160.0, 400.0, 240.0]
関数:何度も利用する処理は前もって作っておくと便利
自作の関数を作る場合は以下のように「def(定義)」を使います。関数は「return」を使って値を返します。
関数に渡す値が複数になる場合は、値を受け取る変数をカンマで並べます。下記の例では関数add_scores()に2つの値を渡しているので、それらの値を受け取る変数a, bをカンマで並べています。
「import 文」を使って、他の人が作ってくれた関数を含むパッケージを取り込むことができます。例えば「NumPy」というパッケージを「np」という名前で取り込む場合は「import numpy as np」のように指定します。使いたい関数は「np.xxxx()」という形式で「xxxx()」の部分に利用した関数を記述して呼び出すことができます。
プログラミングの事前学習のゴールを再確認
ここで、「プログラミングの事前学習のゴールを確認」に戻りましょう。コメントを参考にしながら、下記のプログラムの内容が読めるかどうか確認してください。グラフを表示するためのパッケージ(matplotlib.pyplot)の使い方の詳細については、別の演習ファイルで学びます。、別の演習ファイルで学びます。現時点では下記のプログラムの各行が何をしているのか理解できれば問題ありません。
クラス7名それぞれの、数学と英語の合計点を計算して、グラフに表示するプログラム
覚えておくと便利なもの
配列の値を配列の最後の方から指定する方法、プリントを美しくフォーマットする方法、累乗計算、余剰計算など、覚えておくと便利なものを紹介しておきます。
print文の中で「end」を指定するとendで指定されたものが最後にプリントされます。要素を横に並べたいときに便利です。「end」の指定が何もない場合は改行します。下記の例で、「end」がある場合と無い場合を比較してみましょう。
(ボーナス演習)下記の演習に挑戦してみましょう!
下記のプログラム中にある4つの「?」の部分を適切に修正して動かしてみましょう。