はじめに
授業で繰り返し処理を改めて扱ったのでまとめてみます。
if文での繰り返し処理
もし、3回「こんにちは」と表示させたいときにif文のみで表示するには
i = 0
# 1回目の処理
if i < 3:
print("こんにちは")
i += 1
# 2回目の処理
if i < 3:
print("こんにちは")
i += 1
# 3回目の処理
if i < 3:
print("こんにちは")
i += 1
# 4回目の処理
if i < 3:
print("こんにちは")
i += 1
#仮に同じif文の処理が更に書かれたとしても3回目の処理以降は出力されない
print("----繰り返し処理終了----")
# 処理結果
#こんにちは
#こんにちは
#こんにちは
#----繰り返し処理終了----
と書きます。
人間は3回表示されてたら見たら分かりますがプログラムは指定しないとわかりません。
プログラムはiで出力したい回数を宣言し、if文の条件式で3回出力したかどうかを判断します。
出力したら毎回if文内でiに1を足していきます。
そして、4回目以降のif文の条件式内で既に3回出力したと判断され、これより下にいくらif文を書いたとしても同じように判断されるので「こんにちは」は出力されません。
しかし毎回同じif文を書いて、条件を判断させるのは非効率なので、繰り返し処理を行う際はwhile文を使います。
while i < 3:
print("こんにちは")
i += 1
print("----繰り返し処理終了----")
#処理結果
#こんにちは
#こんにちは
#こんにちは
#----繰り返し処理終了----
この時whileの条件式には継続条件を書く必要があります。上記の繰り返し処理を行いたい回数を宣言する変数(i)をカウンタ変数という。
繰り返し処理を行うプログラムを書く上で、カウンタ変数(i)を繰り返し処理を終わらすために、値を増加(または減少)させる必要があります。
この繰り返し処理はfor文でも書くことができます。
for i in range(3)
print("こんにちは")
print("----繰り返し処理終了----")
#処理結果
#こんにちは
#こんにちは
#こんにちは
#----繰り返し処理終了----
pythonでは、range関数を使用して繰り返し処理をする回数を宣言します。
二重の繰り返し処理
授業では集計に繰り返し処理を使うプログラムを扱ったので、それの延長で九九を表示させるプログラムを書いてみます
i = 0
j = 0
k = 0
for i in range(11):
for j in range(11):
#i x j を計算する
k = i * j
# 計算したkを出力する
print(str(k)+ " ",end="")
# 改行処理のため入れてます
print ("---")
"""
処理結果
0 0 0 0 0 0 0 0 0 0 0 ---
0 1 2 3 4 5 6 7 8 9 10 ---
0 2 4 6 8 10 12 14 16 18 20 ---
0 3 6 9 12 15 18 21 24 27 30 ---
0 4 8 12 16 20 24 28 32 36 40 ---
0 5 10 15 20 25 30 35 40 45 50 ---
0 6 12 18 24 30 36 42 48 54 60 ---
0 7 14 21 28 35 42 49 56 63 70 ---
0 8 16 24 32 40 48 56 64 72 80 ---
0 9 18 27 36 45 54 63 72 81 90 ---
0 10 20 30 40 50 60 70 80 90 100 ---
"""
SQLのようにテーブル表示をpythonでもやってみたかったのですが、難しい😓
最後に
自分ではプログラムを書けても人に教えたりで上手く言えないことが多いので、授業で習ったことは丁寧に復習してこれからも書いていきます。