こんにちは、ECF Tech
ブログ担当 Michiです。
Pythonでプログラミングを楽しく始めるためのプチ講座を連載しています。今回はその第3回となります。
第1回からの内容は下をご参考ください。
本シリーズでは、動作環境としてGoogle Colaboratoryを推奨しています。
Google Colaboratoryは、Googleアカウントがあれば簡単に始められます。使い方は下記よりご確認ください。基本的な使い方がわかれば、すぐにでもPythonプログラミングを始めることができます。
対象読者
- プログラミングを始めてみたいと思っている方
- パソコンでインターネットやWord・Excelの基本操作ができる方
- 数学の授業にプログラミングを取り入れたいと考えている先生方
本記事の用語の説明
本記事では、Google Colaboratory内の下の部分を次のように呼んでいます。
上のプログラムエリアの部分は、次のように(コード)と(実行結果)を1セットにして示しています。
(コード)
print('Hello')
(実行結果)
Hello
今回の学習テーマ
今回の学習テーマは制御構文です。その中でも代表的なfor文とif文を使っていきたいと思います。言葉は難しそうですが、慣れてしまえば簡単です。試しながら楽しみながら行きましょう。
今回は目標とするプログラムを決め、そのプログラムを作る過程の中で、Pythonの書き方を学んでいきたいと思います。
目標プログラム
下のようなリストにある数値のうち、3の倍数だけを表示するプログラムを作ることが目標です。
[1,2,3,5,7,9,10]
やってみよう
リストの作成
では、まず対象となるリストを作ります。
(コード)
list = [1,2,3,5,7,9,10]
(実行結果)
[1, 2, 3, 5, 7, 9, 10]
for文を使う
for文はくりかえしをするための文です。次のように書くことで、リストの内容を1つ1つ表示することができます。
(コード)
for a in list: print(a)
入力時の注意点です。:
の後に改行すると、2行目は少し右にずれた状態で始まります。ずれた状態からそのまま2行目を記述してください。
(実行結果)
1 2 3 5 7 9 10
例を元に、for文の書き方を解説します。
for a in list: print(a)
は、listの内容を1つ1つ変数aに入れながら、繰り返しprint(a)
の部分を表示する。という意味になります。
もう1つfor文を書く際の重要な点を確認しましょう。次のコードを実行しましょう。
(コード)
for a in list: print(a) print(a) print('ここは1回だけ')
(実行結果)
1 1 2 2 3 3 5 5 7 7 9 9 10 10 ここは1回だけ
リスト内の数の表示が2回ずつくりかえされています。また最後の表示は1度だけです。
Pythonは字下げ(文字を右にずらす操作)によって、くりかえし部分を判断します。したがって、今回の例では次のようにみなされます。
for文によるくり返しを理解するため、もう1つの例をみてみましょう。
(コード)
for a in list: print(a * 2);
(実行結果)
2 4 6 10 14 18 20
リストのそれぞれの値に2をかけた数が表示されていることがわかります。
if文
for文を活用し、リストの内容を1つ1つあつかうことができました。次はそれぞれが3の倍数かどうかを調べる必要があります。
何かを調べたいときに使う代表的な文がif文です。例を見てみましょう。
(コード)
a = 4 if(a==5): print('aは5です')
(実行結果)
実行結果は何もありません。
if(a==5):
は、もしaが5ならという意味になります。この条件が真(aの値がこの条件に当てはまっている)ならif部分を実行します。
if部分というのは、print('aは5です')
の部分です。先ほどのfor文と同様に字下げが行われているため、この部分がif文が真の時の実行部分とみなされます。
実行例ではaが4なので、何も実行されない結果となりました。
このif文を使って3の倍数を判定する方法は、次のようになります。
(コード)
a = 3 if a % 3 == 0: print('aは3の倍数です')
(実行結果)
aは3の倍数です
%
(余りを求める演算子)を使って、if a % 3 == 0:
という文を作りました。aを3で割った余りが0ならという意味になります。この条件を満たす数が3で割り切れる数です。
例ではa = 3
ですので、「aは3の倍数です」と表示されています。
それではこのfor文とif文を組み合わせて、3の倍数だけを表示させるプログラムを作ってみましょう。次のようになります。
(コード)
for a in list: if a % 3 == 0: print(a)
(実行結果)
3 9
for文とif文が混ざっているため少し戸惑うかもしれませんが、基本的な考え方は変わりません。字下げを使う事により、for文とif文の範囲が次のようになっています。
これにより、list内の値1つ1つに対して 3の倍数かどうか のチェックが行われ、3の倍数である場合は表示するしくみとなります。
このプログラムのようにfor文の中にif文など、制御構文の中に制御構文が入り込むことを入れ子(ネストともいう)といいます。
制御構文のまとめ
ここまで一連の制御構文について学びました。次のポイントが重要となります。
- 制御構文にはif文やfor文がある。※他にもあります
- 制御構文のおよぶ範囲は字下げをすることで決まる。
- 制御構文の中に制御構文を入れることができる(入れ子)
おわりに
本日はここまでといたします。最後までご覧いただきありがとうございました。for文やif文の混在したプログラムは少し難しく感じるかもしれませんが、ぜひ色々試してみていただければと思います。。
合同会社イー・シー・エフでは、子ども向けプログラミングなどの教育講座を実施しています。プログラミング教室の案内や教育教材の情報、また関連するご相談・問い合わせにつきましては下記よりご確認ください。