注釈
こんにちは、SunFounderのRaspberry Pi & Arduino & ESP32愛好家コミュニティへようこそ!Facebook上でRaspberry Pi、Arduino、ESP32についてもっと深く掘り下げ、他の愛好家と交流しましょう。
参加する理由は?
エキスパートサポート:コミュニティやチームの助けを借りて、販売後の問題や技術的な課題を解決します。
学び&共有:ヒントやチュートリアルを交換してスキルを向上させましょう。
独占的なプレビュー:新製品の発表や先行プレビューに早期アクセスしましょう。
特別割引:最新製品の独占割引をお楽しみください。
祭りのプロモーションとギフト:ギフトや祝日のプロモーションに参加しましょう。
👉 私たちと一緒に探索し、創造する準備はできていますか?[ここ]をクリックして今すぐ参加しましょう!
For ループ¶
for
ループは、リストや文字列など、任意の項目のシーケンスを走査することができます。
for ループの文法形式は以下の通りです:
for val in sequence:
Body of for
ここで、 val
は各イテレーションでシーケンス内の項目の値を取得する変数です。
ループは、シーケンス内の最後の項目に到達するまで続きます。 for
ループの本体と残りのコードを区別するためにインデントを使用します。
for ループのフローチャート
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