(Python) ループ。カウンタ付きループ - for


ループ

Hello」という単語を表示する必要がある状況を想像してみてください。 10回。どうすればいいですか?
print("Hello") というコマンドを 10 回実行して書き込むことができます。 <プレ> print(「こんにちは」) print(「こんにちは」) print(「こんにちは」) print(「こんにちは」) print(「こんにちは」) print(「こんにちは」) print(「こんにちは」) print(「こんにちは」) print(「こんにちは」) print(「こんにちは」)
しかし、10 回ではなく、20 回、30 回、40 回必要な場合はどうでしょうか。そして200回なら?この場合、コピーには非常に時間がかかります。また、画面に情報を表示する回数をユーザー自身が選択できるようにする必要がある場合はどうすればよいでしょうか? 

 これはループと呼ばれます。
 
ループ - 特定のコマンド シーケンスが数回繰り返されるアルゴリズム構造です。< /div>
ほとんどのプログラミング言語には、変数を含むループ (for) と条件を含むループ (while) の 2 種類のループがあります。
最初のタイプのサイクルから始めましょう。
 

変数または既知のステップ数でループします (loop for)

行動の繰り返し回数を知っている、または既知のデータを使用して繰り返し回数を計算できることがよくあります。一部のプログラミング言語には、コマンドによってロシア語で記述されたコマンドがあります
REPEAT (number_of_repetitions).

この場合、特定の繰り返し回数を指定できます。 
このサイクルがマシン レベルでどのように機能するかを見るのは興味深いことです。
1. 特定のメモリ セルがメモリに割り当てられ、繰り返し回数が書き込まれます。
2. プログラムがループ本体を 1 回実行すると、このセル (カウンター) の内容が 1 つ減ります。
3. このセルがゼロになると、ループの実行が終了します。

Python にはそのような構造はありませんが、for があります。
 
覚えておく必要があります!
for ループ演算子の一般的な形式は次のとおりです。 <プレ> for <カウント変数> <カウンタ変数の値>:     # ループ本体
1. カウンター変数の名前は何でもかまいません (多くの場合、文字 i を使用します)
2. ループ本体は、ループ ヘッダー (for) のある行に対して、右にシフトして記述されます。 PEP8 標準は 4 スペース分シフトします。
 
Hello」という単語の出力をどのように書くことができるかの例を見てみましょう。 10回
 
例 1
<プレ> for i in range(10): # for variable i mutable in range (in range)   #0~10(10は含まず) print("Hello") # print Hello   変数は、ループの完了した反復 (ステップ) のカウンターです。この場合、ループは i = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 に対して実行されます。これはちょうど 10 回です。
同じプログラムを別の方法で書くことができます。
 
例 2
<プレ> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] の i の場合: print(「こんにちは」) 例 2 では、ループする必要がある変数 i のすべての値をリストします。値の数が多い場合は、組み込み関数 range().を使用すると便利です。
 range() 関数によって作成される値のシーケンスは有限です。ループは常に終了します。 

for ループの機能

最初から開始せずに、値のシーケンスのステップを変更するにはどうすればよいですか?  range() 関数は、デフォルトで、次の各数値が前の数値より 1 大きいシーケンスを構築します。別のエントリでrange関数を使用できます。

関数エントリの一般的な形式は次のとおりです。 <プレ> 範囲([開始]、停止[、ステップ])
  • start: シーケンスの開始番号。
  • stop: 指定された数値以下の数値を生成します。
  • step: シーケンス内の各数値の差 (ステップ)

覚えておく必要があります!
  • すべてのパラメータは整数である必要があります:
  • 各パラメータは正または負のいずれかになります。
  • range() (および Python 全般) はインデックス 0 に基づいています。 これは、インデックス リストが 1 ではなく 0 から始まることを意味します。 関数によって生成された最後の整数  range()stop に依存しますが、これは含まれません。たとえば、range(0, 5) は、5 を除く整数 0、1、2、3、4 を生成します。


例 1
<プレ> 範囲 (10, 0, -1) の i の場合: プリント(i*i) 10から1までの自然数の2乗を降順に表示するプログラムです。
  • 10: シーケンスの最初の数字。
  • 0: シーケンスの終了番号 (この番号は含まれません)。
  • -1: ステップ


例 2
<プレ> 範囲 (0, 101, 5) の i の場合: 印刷(i) プログラムは、0 から 100 までのすべての数値を 5 ずつ表示します。
  • 0: シーケンス内の最初の数値。
  • 101: シーケンスの終了番号 (この番号は含まれません)。
  • 5: ステップ

N回繰り返す

これまでに作成した for ループを含むすべてのプログラムは、ユニバーサルとは言えません。ループ本体の繰り返し回数を自分で設定しているためです。
しかし、繰り返し回数が他の値に依存する場合はどうなるでしょうか?例えば、ユーザー自身がサイクルの繰り返し回数を設定したい。
この場合はどうすれば
良いのでしょうか? すべてがとてもシンプルです。数値の開始値と終了値の代わりに、ユーザーが計算または設定できる任意の変数を使用できます。

たとえば、変数 N の値がキーボードから入力される 1 から N までの数字の 2 乗を表示する必要があります。ユーザー。
プログラムは次のようになります。 <プレ> N = int(input()) # キーボードから N を入力 for i in range(1, N+1): # ループ: 1 から N までのすべての i について  - 変数 i # 1からNまでの値を順番に取得します   print("square", i, "=", i*i)  # 数値の 2 乗を出力します ループに入ると、代入ステートメント i = 1 が実行され、変数 i がステップごとに 1 ずつ増加します (i += 1)。条件 i <= N が true の間、ループが実行されます。ループの本体では、唯一の出力ステートメントが、指定された形式に従って、数値自体とその四角形を画面に出力します。
二乗またはその他の低指数の場合は、乗算を使用することをお勧めします。

プログラムを実行し、変数 N のさまざまな値を使用した結果を確認します。