プログラミングしてみたい人のためのPython入門2〜基本操作編〜
Python入門記事の続編です。
私はプログラミング初心者はPythonから入ることをオススメしています。
理由は「トレンドで、かつシンプルなので学びやすいから」です。(2019年現在)
データ分析やAIの開発を行う場合もPythonが用いられることが圧倒的に多いでしょう。
近年ではWebアプリも作成できるようになってきました。
プログラミングを学んでみたいけど、明確なこだわりやビジョンがまだ無い方はまずPythonを使ってみることをオススメします。
この記事は、Pythonを使ったことが無い方が、その第一歩を踏み出すための「Python入門記事」となります。
自分のパソコンに開発環境を入れる
何はともあれ、自分のパソコンでPythonを動かせる環境を作りましょう。
環境構築の方法についてはこちらに詳しく書きましたので、ご参照ください。
すでにPythonで開発できる環境がある方はこの章は読み飛ばしてOKです。
print文を使ってみよう
まずは前記事でもちらっと書いたprint文です。
print文を使うと「任意の文字を画面に表示させる」という事ができます。
以下のように、print()の中に表示したい文字を書きます。
1 |
print("Hello,World!!") |
このプログラムを実行すると・・・
1 |
Hello,World!! |
と、printの中に指定した文字がそのまま表示されると思います。
ここで注意なのですが、文字列は必ず「”(ダブルコーテーション)」で囲みましょう。
理由は次の章にて・・・。
「Hello,World!!」の部分を色々好きな文字に変えて試してみてください。
「変数」を使ってみよう
お次は「変数」を使ってみます。
変数は、「自由な値が入れられる箱」のようなもので、数学で言うxやyのイメージです。
例えば、以下のように使います。
1 2 |
x = 3 print(x) |
「x」に3を指定して、print文ではxの中身を表示させます。実行すると・・・
1 |
3 |
xの中身が表示されています。
ここで先程と違うのは、「”(ダブルコーテーション)」で囲っていないことです。
ここで、もしprint(“x”)のように囲んでしまうと・・・
1 |
x |
このように、ダブルコーテーションで囲むと、その中身は「こういう文字列です」と認識されてしまいます。
囲まなければ「こういう変数です」と認識されます。ここを間違えないようにしましょう。
変数同士の計算
次は簡単な計算をやってみます。
まずは変数を2つ使って足し算をしてみます。
1 2 3 4 |
a = 2 b = 3 c = a + b print(c) |
1 |
5 |
変数は幾つでも定義することができますが、その変数名は重複しないように気をつけましょう。
今回は、「a」「b」「c」の3種類の変数を使って、cにaとbの和を代入しています。
ちなみに、結果をcに代入しないで、以下のように書くこともできます。
1 2 3 |
a = 2 b = 3 print(a+b) |
これでも同じ結果が得られます。
あとは計算に使う記号(演算子)を知っていれば、引き算や掛け算も同様に行うことができます。
以下にpythonの演算子を整理しておきます。
足し算 | a + b |
---|---|
引き算 | a – b |
掛け算 | a * b |
割り算 | a / b |
割り算(小数点以下切り捨て) | a // b |
剰余(a÷bの余り) | a % b |
累乗(aのb乗) | a ** b |
if文を使ってみよう
それではif文に入ります。
ここから、いよいよプログラミングっぽくなってきます。
if文は「もし〜の場合・・・」というような、条件分岐したい時に使うものです。
それでは一例として、「変数aが偶数だったら、その値を半分にする」という処理を行ってみます。
1 2 |
if a % 2 == 0: a = a / 2 |
「%」と「/」の意味は演算子一覧に示したように、それぞれ「割り算の余り」と「割り算」を表します。
ここで、新しく出てきたifの横にあるイコール2つは、「等しい」という条件を表します。
イコールが1つだと「代入する」という意味になってしまうので注意が必要です。
つまり1行目は「aを2で割った余りが0と等しければ」つまり「aが偶数ならば」という意味になります。
また、ifの後には必ず「:(コロン)」を書き、ifを満たした場合の処理はタブで1段下げてその中に処理を書きます。
2行目(if文の中身)はifを満たした場合に行われる処理です。
「a = a / 2」は、「aを2で割った値をaに代入する」という意味になります。
それでは、試しにaに10を指定して先程のif文を実行し、最後に結果をprintするプログラムを作成します。
1 2 3 4 5 6 |
a = 10 if a % 2 == 0: a = a / 2 print(a) |
1 |
5 |
9を指定すると・・・
1 2 3 4 5 6 |
a = 9 if a % 2 == 0: a = a / 2 print(a) |
1 |
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未満です。」と表示させるプログラムを作ってみます。
1 2 3 4 5 6 |
a = 5 if a >= 10: print("10以上です。") else: print("10未満です。") |
このように、「ifの中の条件を満たす場合」と「満たさない場合」で別の処理をしたい時はifの後に「else」を定義します。
このプログラムを実行すると・・・
1 |
10未満です。 |
・・・と、a=5はifの条件を満たさないので、elseの中の処理が実行されました。
ここで1行目にa=15などと10以上の数値を代入すると、今度は「10以上です。」と表示されることが確認できます。
if-elif-else文
さて、最後は3つ以上の分岐がしたい時です。
今度は変数の値が「10以上」「10未満5以上」「5未満」のいずれなのかを判定させてみます。
1 2 3 4 5 6 7 8 |
a = 8 if a >= 10: print("10以上です。") elif a >= 5: print("5以上10未満です。") else: print("5未満です。") |
1 |
5以上10未満です。 |
このように、「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文は「繰り返しの処理」を行いたい時に使うものです。
書き方は以下。
1 2 |
for i in range(5): print(i) |
rangeの中の「5」というのは繰り返し回数を表します。
つまりfor文の中身(今回で言えば「print(i)」)を5回繰り返してください、ということになります。
しかし、何も考えずにただ繰り返す訳ではありません。
繰り返す度に、「i」という変数の数値を変えていきます。
ここで、特に何も指定しなければiは「0から数えて5つ」、つまり「0、1、2、3、4」が代入されていきます。
このプログラムの意味は、「iという変数に0、1、2、3、4を代入して、その度にiの値を表示する」という意味になります。
結果を見てみると・・・
1 2 3 4 5 |
0 1 2 3 4 |
想定通りの結果です。
「for 〜 in range(〜):」という書き方はfor文の基本的な構文になるので覚えてしまったほうが良いです。
for文も最後に「:(コロン)」を付け忘れないようにしましょう。
では、このfor文を使って、「1から100までの整数を足す」という処理を作ってみます。
1 2 3 4 |
s = 0 for i in range(100): s = s + (i + 1) print(s) |
1 |
5050 |
まず、合計した値を保持しておくための変数「s」を定義します。
そしてfor文にてiの値を100回変化させ、「s」にどんどんiの値を足してゆくようなイメージです。
注意すべきは、iは1からではなく0から始まるので、単純にiの値を100個足していくだけでは0〜99の和になってしまいます。
そこで、i+1を足していくことによって1〜100の和になります。
i+1が気持ち悪いのなら、以下のように、いっそ繰り返し回数を101回にしてしまえばiの値は0〜100になりますので、これでもOKです。
1 2 3 4 |
s = 0 for i in range(101): s = s + i print(s) |
まとめ
さて、Pythonの基本的な構文についてお話させて頂きました。
実を言うと、ここに書いたことだけ分かっていれば、理論上はどんなプログラムも書くことができます。
・・・とはいえ、もっと色々な書き方を知っていたほうが、簡潔に、迅速にプログラミングできることも事実です。
何はともあれ、まずは変数やif、forを使えるようになることがPythonの基本となりますので、まずはここに書いた内容を押さえて頂ければと思います。