注釈

こんにちは、SunFounderのRaspberry Pi & Arduino & ESP32愛好家コミュニティへようこそ!Facebook上でRaspberry Pi、Arduino、ESP32についてもっと深く掘り下げ、他の愛好家と交流しましょう。

参加する理由は?

  • エキスパートサポート:コミュニティやチームの助けを借りて、販売後の問題や技術的な課題を解決します。

  • 学び&共有:ヒントやチュートリアルを交換してスキルを向上させましょう。

  • 独占的なプレビュー:新製品の発表や先行プレビューに早期アクセスしましょう。

  • 特別割引:最新製品の独占割引をお楽しみください。

  • 祭りのプロモーションとギフト:ギフトや祝日のプロモーションに参加しましょう。

👉 私たちと一緒に探索し、創造する準備はできていますか?[ここ]をクリックして今すぐ参加しましょう!

For ループ

for ループは、リストや文字列など、任意の項目のシーケンスを走査することができます。

for ループの文法形式は以下の通りです:

for val in sequence:
    Body of for

ここで、 val は各イテレーションでシーケンス内の項目の値を取得する変数です。

ループは、シーケンス内の最後の項目に到達するまで続きます。 for ループの本体と残りのコードを区別するためにインデントを使用します。

for ループのフローチャート

../../../_images/for_loop.png
numbers = [1, 2, 3, 4]
sum = 0

for val in numbers:
    sum = sum + val

print("The sum is", sum)
>>> %Run -c $EDITOR_CONTENT
The sum is 10

break 文

break 文を使用すると、すべての項目をループ処理する前にループを停止することができます。

numbers = [1, 2, 3, 4]
sum = 0

for val in numbers:
    sum = sum + val
    if sum == 6:
        break
print("The sum is", sum)
>>> %Run -c $EDITOR_CONTENT
The sum is 6

continue 文

continue 文を使用すると、ループの現在のイテレーションを停止し、次のイテレーションで続行することができます。

numbers = [1, 2, 3, 4]

for val in numbers:
    if val == 3:
        continue
    print(val)
>>> %Run -c $EDITOR_CONTENT
1
2
4

range() 関数

range() 関数を使用して数値のシーケンスを生成することができます。range(6)は、0から5まで(6つの数値)を生成します。

また、開始値、終了値、ステップサイズをrange(start, stop, step_size)として定義することもできます。step_sizeが指定されていない場合、デフォルトは1になります。

rangeオブジェクトは「遅延評価される」(lazy)と言えます。オブジェクトを生成した時点で、その中に「含まれる」すべての数値は生成されていません。ただし、これはイテレータではありません。なぜなら、in、len、そして __getitem__ 操作がサポートされているからです。

この関数はすべての値をメモリに保持していません。そうすると非効率的になります。したがって、開始値、終了値、ステップサイズを覚えておき、進行中に次の数値を生成します。

この関数がすべての項目を出力するように強制するには、list()関数を使用することができます。

print(range(6))

print(list(range(6)))

print(list(range(2, 6)))

print(list(range(2, 10, 2)))
>>> %Run -c $EDITOR_CONTENT
range(0, 6)
[0, 1, 2, 3, 4, 5]
[2, 3, 4, 5]
[2, 4, 6, 8]

for ループの中で range() を使用して数値のシーケンスを反復処理することができます。これはlen()関数と組み合わせて、インデックスを使用してシーケンスを走査することもできます。

fruits = ['pear', 'apple', 'grape']

for i in range(len(fruits)):
    print("I like", fruits[i])
>>> %Run -c $EDITOR_CONTENT
I like pear
I like apple
I like grape

For ループにおけるElse

for ループには、オプションで else ブロックも追加することができます。ループで使用されるシーケンスの項目がすべて使い切られた場合、 else 部分が実行されます。

break キーワードを使用して for ループを停止することができます。この場合、 else 部分は無視されます。

したがって、何らかの中断が発生しない場合、 for ループの else 部分が実行されます。

for val in range(5):
    print(val)
else:
    print("Finished")
>>> %Run -c $EDITOR_CONTENT
0
1
2
3
4
Finished

break文によってループが停止された場合、elseブロックは実行されません。

for val in range(5):
    if val == 2: break
    print(val)
else:
    print("Finished")
>>> %Run -c $EDITOR_CONTENT
0
1