Python | ループ処理 (for文, while文)
公開日:2021/5/22
Pythonでは,特定の処理を繰り返すループ処理を利用することができる.以下に「ループ処理の基本」と「ループ処理に役立つ関数」について説明する.
◆実施環境
Python 3.8.8
- ループ処理の基本
以下に「for文によるループ処理」,「while文によるループ処理」,「continue, break, elseを使ったループ処理」について説明する.
■for文によるループ処理
# 1の処理(0から4までを出力)
for i in range(5):
print(i)
# 2の処理('ab'を4回繰り返し出力)
for _ in range(4):
print('ab')
# 3の処理(1から7の範囲で,1に2を加算して出力)
for i in range(1,8,2):
print(i)
# 4の処理(リストである'menu'の中の値を順番に出力)
menu = ['bread','rice','soba','pasta']
for food in menu:
print(food)
# 5の処理(辞書である'musician'の中のキーと値を順番に出力)
musician = {
'Name':'Bach',
'Age':'50',
'Country':'Germany'
}
for info in musician:
print(info, musician.get(info))
# 6の処理(単語から文字を1つずつ出力)
for i in 'tea':
print(i)
■実行結果
# 1の結果
0
1
2
3
4
# 2の結果
ab
ab
ab
ab
# 3の結果
1
3
5
7
# 4の結果
bread
rice
soba
pasta
# 5の結果
Name Bach
Age 50
Country Germany
# 6の結果
t
e
a
■while文によるループ処理
i = 0
while i < 4:
print(i)
i += 1
■実行結果
0
1
2
3
■continue, break, elseを使ったループ処理
ループ制御をする以下命令文を用いたループ処理を作成する.
continue: 特定の処理を止め,次の処理に続く
break: 特定の処理を止め,次の処理も止める
else: ループ処理の後に実行される
# 1の処理(for文でのcontinue: 2がスキップ)
for i in range(4):
if i == 2:
continue
print(i)
# 2の処理(while文でのcontinue: 2がスキップ)
i = 0
while i < 4:
if i == 2:
i += 1
continue
print(i)
i += 1
# 3の処理(for文でのbreak: 3で処理が止まる)
for i in range(10):
if i == 3:
break
print(i)
# 4の処理(while文でのbreak: 2で処理が止まる)
i = 0
while i < 8:
if i == 2:
break
print(i)
i += 1
# 5の処理(for文でのelse: 2まで出力しelseに移行)
for i in range(3):
print(i)
else:
print('終了')
# 6の処理(for文 continue + else: elseに処理が進む)
for i in range(4):
if i == 2:
continue
print(i)
else:
print('終了')
# 7の処理(for文 continue + else: elseに処理が進まない)
for i in range(10):
if i == 3:
break
print(i)
else:
print('終了')
■実行結果
# 1の結果
0
1
3
# 2の結果
0
1
3
# 3の結果
0
1
2
# 4の結果
0
1
# 5の結果
0
1
2
終了
# 6の結果
0
1
3
終了
# 7の結果
0
1
2
- ループ処理に役立つ関数
ループ処理に役立つ関数(enumerate, zip)の説明をする
■enumerate
リストやタプル,セット内のインデックスと値を返す.”enumerate(リスト名, 最初のインデックス値)”を利用する.最初のインデックス値は任意.記載がなければインデックス値は"0″から始まる.
# 1の処理(リスト)
menu = ['bread','rice','soba','pasta']
for i, v in enumerate(menu):
print(i,v)
# 2の処理(タプル)
menu = ('bread','rice','soba','pasta')
for i, v in enumerate(menu,2):
print(i,v)
■実行結果
# 1の結果
0 bread
1 rice
2 soba
3 pasta
# 2の結果
2 bread
3 rice
4 soba
5 pasta
■zip
複数のリストやタプル,セット内の値を返す.”zip(リスト名1, リスト名2)”を利用する.
menu = ['bread','rice','soba','pasta']
drink = ['water','tea','coffee','juice']
for h, i in zip(menu,drink):
print(f'menuの値:{h}')
print(f'drinkの値:{i}')
■実行結果
menuの値:bread
drinkの値:water
menuの値:rice
drinkの値:tea
menuの値:soba
drinkの値:coffee
menuの値:pasta
drinkの値:juice
以上