プログラミングしてみたい人のためのPython入門2〜基本操作編〜

Python入門記事の続編です。

私はプログラミング初心者はPythonから入ることをオススメしています。
理由は「トレンドで、かつシンプルなので学びやすいから」です。(2019年現在)

データ分析やAIの開発を行う場合もPythonが用いられることが圧倒的に多いでしょう。
近年ではWebアプリも作成できるようになってきました。

プログラミングを学んでみたいけど、明確なこだわりやビジョンがまだ無い方はまずPythonを使ってみることをオススメします。
この記事は、Pythonを使ったことが無い方が、その第一歩を踏み出すための「Python入門記事」となります。

自分のパソコンに開発環境を入れる

何はともあれ、自分のパソコンでPythonを動かせる環境を作りましょう。
環境構築の方法についてはこちらに詳しく書きましたので、ご参照ください。
すでにPythonで開発できる環境がある方はこの章は読み飛ばしてOKです。

プログラミングしてみたい人のためのPython入門

print文を使ってみよう

まずは前記事でもちらっと書いたprint文です。
print文を使うと「任意の文字を画面に表示させる」という事ができます。
以下のように、print()の中に表示したい文字を書きます。

このプログラムを実行すると・・・

と、printの中に指定した文字がそのまま表示されると思います。
ここで注意なのですが、文字列は必ず「”(ダブルコーテーション)」で囲みましょう。
理由は次の章にて・・・。

「Hello,World!!」の部分を色々好きな文字に変えて試してみてください。

「変数」を使ってみよう

お次は「変数」を使ってみます。
変数は、「自由な値が入れられる箱」のようなもので、数学で言うxやyのイメージです。

例えば、以下のように使います。

「x」に3を指定して、print文ではxの中身を表示させます。実行すると・・・

xの中身が表示されています。
ここで先程と違うのは、「”(ダブルコーテーション)」で囲っていないことです。
ここで、もしprint(“x”)のように囲んでしまうと・・・

このように、ダブルコーテーションで囲むと、その中身は「こういう文字列です」と認識されてしまいます。
囲まなければ「こういう変数です」と認識されます。ここを間違えないようにしましょう。

変数同士の計算

次は簡単な計算をやってみます。
まずは変数を2つ使って足し算をしてみます。

変数は幾つでも定義することができますが、その変数名は重複しないように気をつけましょう。
今回は、「a」「b」「c」の3種類の変数を使って、cにaとbの和を代入しています。
ちなみに、結果をcに代入しないで、以下のように書くこともできます。

これでも同じ結果が得られます。

あとは計算に使う記号(演算子)を知っていれば、引き算や掛け算も同様に行うことができます。
以下にpythonの演算子を整理しておきます。

足し算 a + b
引き算 a – b
掛け算 a * b
割り算 a / b
割り算(小数点以下切り捨て) a // b
剰余(a÷bの余り) a % b
累乗(aのb乗) a ** b

if文を使ってみよう

それではif文に入ります。
ここから、いよいよプログラミングっぽくなってきます。

if文は「もし〜の場合・・・」というような、条件分岐したい時に使うものです。
それでは一例として、「変数aが偶数だったら、その値を半分にする」という処理を行ってみます。

「%」と「/」の意味は演算子一覧に示したように、それぞれ「割り算の余り」と「割り算」を表します。

ここで、新しく出てきたifの横にあるイコール2つは、「等しい」という条件を表します。
イコールが1つだと「代入する」という意味になってしまうので注意が必要です。
つまり1行目は「aを2で割った余りが0と等しければ」つまり「aが偶数ならば」という意味になります。

また、ifの後には必ず「:(コロン)」を書き、ifを満たした場合の処理はタブで1段下げてその中に処理を書きます。

2行目(if文の中身)はifを満たした場合に行われる処理です。
「a = a / 2」は、「aを2で割った値をaに代入する」という意味になります。

それでは、試しにaに10を指定して先程のif文を実行し、最後に結果をprintするプログラムを作成します。

9を指定すると・・・

きちんと「偶数なら半分、奇数ならそのまま」の処理ができています。

ここで、「==」以外にも、条件を指定する時に使う記号(比較演算子)は色々あります。
以下に一例を示します。

aとbが等しい a == b
aとbが等しくない a != b
aがbより大きい a > b
aがbより小さい a < b
aがbより大きいor等しい a >= b
aがbより小さいor等しい a <= b

if-else文

お次は、if文を少し応用して「条件を満たす場合」と「満たさない場合」で別の処理をさせてみます。
ここでは例題として、aが10以上なら「10以上です。」、10未満なら「10未満です。」と表示させるプログラムを作ってみます。

このように、「ifの中の条件を満たす場合」と「満たさない場合」で別の処理をしたい時はifの後に「else」を定義します。
このプログラムを実行すると・・・

・・・と、a=5はifの条件を満たさないので、elseの中の処理が実行されました。
ここで1行目にa=15などと10以上の数値を代入すると、今度は「10以上です。」と表示されることが確認できます。

if-elif-else文

さて、最後は3つ以上の分岐がしたい時です。
今度は変数の値が「10以上」「10未満5以上」「5未満」のいずれなのかを判定させてみます。

このように、「elif」を使うと条件を何個も定義できます。
先頭のみifで、2個目移行はずっと「elif」になるので注意が必要です。
どの「if」「elif」にも当てはまらない場合の処理があるなら最後に「else」を書けばOKです。

補足

上の例では、「5以上10未満」を判定させているelifの中の条件で、「10未満」の指定をしておりません。
なぜなら、プログラムは上から実行していきます。aが10以上の場合は1行目のifで条件を満たしますので、次の「elif」以降の処理には入りません。
aが10未満の場合のみ、次のelifを見に行きます。
よってelifが呼ばれている時点で、すでに10未満であることは自明なので、改めての定義は不要となります。

for文を使ってみよう

最後はfor文です。
ここまで覚えれば、もうPythonの初学者は卒業です。

for文は「繰り返しの処理」を行いたい時に使うものです。
書き方は以下。

rangeの中の「5」というのは繰り返し回数を表します。
つまりfor文の中身(今回で言えば「print(i)」)を5回繰り返してください、ということになります。

しかし、何も考えずにただ繰り返す訳ではありません。
繰り返す度に、「i」という変数の数値を変えていきます。
ここで、特に何も指定しなければiは「0から数えて5つ」、つまり「0、1、2、3、4」が代入されていきます。

このプログラムの意味は、「iという変数に0、1、2、3、4を代入して、その度にiの値を表示する」という意味になります。
結果を見てみると・・・

想定通りの結果です。

「for 〜 in range(〜):」という書き方はfor文の基本的な構文になるので覚えてしまったほうが良いです。
for文も最後に「:(コロン)」を付け忘れないようにしましょう。

では、このfor文を使って、「1から100までの整数を足す」という処理を作ってみます。

まず、合計した値を保持しておくための変数「s」を定義します。
そしてfor文にてiの値を100回変化させ、「s」にどんどんiの値を足してゆくようなイメージです。

注意すべきは、iは1からではなく0から始まるので、単純にiの値を100個足していくだけでは0〜99の和になってしまいます。
そこで、i+1を足していくことによって1〜100の和になります。

i+1が気持ち悪いのなら、以下のように、いっそ繰り返し回数を101回にしてしまえばiの値は0〜100になりますので、これでもOKです。

まとめ

さて、Pythonの基本的な構文についてお話させて頂きました。
実を言うと、ここに書いたことだけ分かっていれば、理論上はどんなプログラムも書くことができます。
・・・とはいえ、もっと色々な書き方を知っていたほうが、簡潔に、迅速にプログラミングできることも事実です。

何はともあれ、まずは変数やif、forを使えるようになることがPythonの基本となりますので、まずはここに書いた内容を押さえて頂ければと思います。