見出し画像

Lesson3(GoogleColabではじめるPython)-演算子と制御構造-


前回のレッスン【Lesson2(GoogleColabではじめるPython)】に引き続き、今回は変数とデータ型についてのレッスンとなります。実際に手を動かしながらプログラミングを行うことが近道です!ぜひ実践しましょう!

レッスンの構成は以下のとおりです。前回の内容をもとに作成しておりますので、分からない部分に関してはこれまでのレッスンを参照してください。


Lesson1: Pythonとは?GoogleColaboratoryの使い方
Lesson2: 変数とデータ型
Lesson3: 演算子と制御構造(今回)
Lesson4: コレクション
Lesson5: 関数とモジュール
Lesson6: 文字列とファイル操作
Lesson7: クラスとオブジェクト指向


演算子と制御構造

演算子とは

演算子とは、プログラミングでデータに対して行う操作のことです。
こちらはLesson1にて紹介したものです。

算術演算子

これ以外に、主に制御構造(if文、for文、while文など)で用いる比較演算子もあります。

比較演算子

さらに、以下の演算子があります。

論理演算子
真偽値の組み合わせを評価する演算子です。例えば、and(かつ)、or(または)、not(否定)などです。

代入演算子
変数にデータを代入する演算子です。例えば、=(代入)、+=(加算代入)、-=(減算代入)、*=(乗算代入)、/=(除算代入)などです。

メンバーシップ演算子
データがリストやタプルなどのコレクションに含まれるかどうかを判定する演算子です。例えば、in(含まれる)、not in(含まれない)などです。

アイデンティティ演算子
データが同じオブジェクトであるかどうかを判定する演算子です。例えば、is(同じである)、is not(同じでない)などです。

今はすべて覚える必要はありません。特に算術演算子、比較演算子、論理演算子は、この後に紹介する制御構造でよく用いられますので確認しておきましょう。

制御構造とは

制御構造とは、プログラムの流れを制御するための構造のことです。Pythonでは、以下のような主な制御構造があります。

条件分岐
条件によってプログラムの実行内容を変える構造です。if,elif,elseを用いて表現します。以下のような形でif文を記述します。最初はなんとなく形を覚えれば大丈夫です!

繰り返し処理
同じ処理を繰り返し実行する構造です。forwhileを用いて表現します。



(ハンズオン1)実際に動かしてみましょう!

条件分岐

Lesson3_1 

このプログラムの説明

最初にx=20でxに20を代入しています。

if文の条件x >= 10で代入されたxの値が10以上かどうかを判断します。

x>=10以上のとき、print("xは10以上です")を実行
そうではないとき(つまり10未満)のとき、print("xは10未満です")を実行

という形で実行されます。

xに代入される値を変更すると条件によって実行される文が変化します。
また、else文がないときは条件が真のときだけ実行されます。

表として以下にまとめたので参考にしてください。

うまく実行できなかった人向けにプログラムファイルをコピー&貼り付けできるようにしていますので活用してください。

x=20
if x >= 10:
  print('xは10以上です')
else:
  print('xは10未満です')

if文、for文を書く際はインデントに注意!


初心者のよくあるミスとしてインデントの設定ミスがあります。

インデントを正しく設定しないと、ifの条件によって実行する文と判断できないためです。これは以下の図のようにPythonがブロック単位で実行しているためです。この後に行うfor文やwhile文でも同様ですのでご注意ください。

インデントとは、文字のスタート位置を右に移動させることです。if、whileなどの制御構造ではインデントによってif文の中にあるものなのかを判断しています。

GoogleColabではインデントガイドがありますので、初心者の方はそちらを利用しましょう。一般的にはインデントは4文字ですが、Colabの場合の初期設定は2文字となります。

これは個人的な意見ですが、他のツールで実行する際に正しく実行できない場合がありますので4文字設定を推奨します。このレッスンでは全てColabで行うので初期設定の2文字で進めます。

インデントガイドの設定方法


(ハンズオン2)実際に動かしてみましょう!

繰り返し処理(for文)

以下のようなfor文のプログラムを作成してみました。
Hello!という文字が10回表示されれば正解です。

↓コピー用

for i in range(10):
  print("Hello!")

このプログラムの説明

まずここで登場するrangeの意味は以下の通りです

range(stop)・・・0からstopまでの数字の並び。stopは含めない。
例えば、range(5)は0から4までの数値の並びとなる。

range(start,stop)・・・startからstopまでの数字の並び。stopは含めない。
例えば、range(1,5)は1から4までの数値の並びとなる。

これだけでは分かりづらいですよね。
次回に行う内容ですが、以下のようにlist()の引数にrange()を代入することでイメージできるかと思います。

ここから本題のfor文の説明です。

for i in range(10):とすることで、ループする毎にiに0から9までの数値が1つずつ代入されます。for文の中にあるprint文が実行されます。
結果、計10回のprint文が実行されます。

for文は変数iに代入されている間実行されている、と考えてもらえれば大丈夫です!
以下の変数iの値を表示したプログラムを実行してもらえると意味がよく分かると思います。

繰り返し処理(while文)

for文で行ったプログラムと同じ結果になるように以下のように書きました。

↓コピー用

i=0
while i<10:
  print("Hello")
  i=i+1

このプログラムについてコメントを以下のように加えました。

1行目のi = 0は最初に代入しておく数値です。ここでは0としています。
while i < 10:でiが10より小さいときにwhile文のブロックであるprint("Hello")が実行されます。
最後にi=i+1としてiに1を加算しているのは、これがない場合、iは0のままなので永久に10より小さい、すなわち無限ループになってしまいます。

結果、iに1を足し続け、10となったときにこのwhile文の条件i<10を満たさなくなるため、そこでループが終了します。for文と同様にiの値を表示したものが以下の図になります。0から9まで繰り返され、計10回ループされることがわかります。


ちなみに、プログラム上で#と記載してある部分に関してはコメントアウトといって、プログラムの実行には影響を与えません。コードの説明を記載するために使用します。
今後もコメントアウトを使用して解説しますが、実行する際は記述する必要はありません。


while文についてまとめたものを以下に示します。数字の変化が分かりづらい場合は是非、プログラムを作って実行しましょう。理解が深まりますよ!

while文の初期値(i=0またはi=1)や比較演算子(<または<=)のループ回数の変化

以上が第3回の講座内容です。今回は内容が盛りだくさんでしたが、どれもPython、あるいはどのプログラミング言語でも重要な部分になります。

実践編としてクイズも用意しました。力試しとしてぜひチャレンジしてみてください!

次回は、リストとタプルについて学びます。お楽しみに!

マガジンにてまとめています↓

この記事が気に入ったらサポートをしてみませんか?