MathPython
18 May 2024 20 Feb 2018

Python のループ処理(for と while の基本)

Python のループ処理には for を使います。

a = [3, 6, 9, 12, 15]

for x in a:
    print(x)

出力

3
6
9
12
15

for x in a:a から値を順にとりだすという意味です。

Python の for ループを break で抜ける

Python の for ループを抜けるには break を使います。

for x in range(7):
    if 2 < x:
        break
    print(x)

出力

0
1
2

for ループは 0 から 6 まで処理し、x は 0 から 1 ずつ増えます。ループする中で、x が 2 より大きくなったらループが終わります。

for と else

a = ['りんご', 'みかん', 'いちご']

for x in a:
    print(x)

else:
    print('処理は終わりました')

出力

りんご
みかん
いちご
処理は終わりました

for ループで print(x) がすべて実行された後、print('処理は終わりました') を処理しています。

for と range

for x in range(5):
    print('処理します')

出力

処理します
処理します
処理します
処理します
処理します

range はリストではありませんが、0 から 4 までの 5 つの要素をもつ並びです。for は range をリストのように扱い、ループの中で x に range の要素を入れています。

range には範囲も指定できます。

for x in range(5, 12):
    print(x)

出力

5
6
7
8
9
10
11

range の 2 番目に指定した値が 12 なので、range(5, 12) は 11 までです。

while

x = 0

while x < 5:
    x = x + 1
    print(x)

出力

1
2
3
4
5

最初 x に 0 を入れて、while ループで x を 1 ずつ加算します。x はループを重ねるごとに変化します。

ループの終わりは while の隣にある x<5 が偽になるまでです。ループ処理は条件が満たされるかぎり際限なく実行されます。

次のコードは危険です。

x = 0

while x < 5:
    print(x)

このコードは次のように無限に処理します。

0
0
0
0
0
0

実際は 0 がどこまでも続きます。このプログラムでは x<5 という条件がいつまでも真であることに原因があります。

whileとelse

x = 0

while x < 5:
    x = x + 1
    print(x)

else:
    print('処理が終わりました')

出力

1
2
3
4
5
処理が終わりました

ループが終わると else の処理(ここでは「処理が終わりました」というメッセージを表示する)が行われます。