PythonOne ―― 高校情報ⅠのためのPythonオンライン学習環境

繰り返し① 回数を指定する繰り返し(for 変数名 in range(繰り返し回数):

for 文

まったく同じコードを複数回書けば、同じ処理を繰り返すことができます。しかし、この書き方には無駄があり、繰り返したい回数が入力によって変わる場合は対応できません。

サンプルプログラム

プログラム

入力欄
 
出力欄
(入力なし)
実行ボタンを押してください
55 行にわたって print を書くことで、「こんにちは!」と 55 回出力を繰り返すプログラムです。

for 文を使うことで、指定した回数だけ同じ処理を繰り返すことができます。for 変数名 in range(繰り返し回数): という行を書き、繰り返し実行する処理はその下に空白文字 44 文字を使ってインデント(字下げ)します。

サンプルプログラム

プログラム

入力欄
 
出力欄
(入力なし)
実行ボタンを押してください
for 文を使って、「こんにちは!」と 55 回出力を繰り返すプログラムです。

for 変数名 in range(繰り返し回数):変数名 で指定したカウンタ変数には、今繰り返しが何回目か(00 回目、11 回目、22回目、\ldots00 から始まる値)が自動的に代入されます。カウンタ変数には普通 i を使いますが、他の変数名を使っても構いません。

サンプルプログラム

プログラム

入力欄
 
出力欄
(入力なし)
実行ボタンを押してください
for 文を使って 55 回繰り返すプログラムです。i という変数名には、繰り返しが何回目かという値が 00 から 44 まで順番に代入されます。

サンプルプログラム

プログラム

入力欄
 
出力欄
3
実行ボタンを押してください
5
実行ボタンを押してください
for 文を使って nn 回繰り返すプログラムです。nn の値は入力欄から読み取ります。

値を更新していく繰り返し処理

繰り返し処理の際、値の初期値を設定しておき、後から値を更新していくことがよくあります。

サンプルプログラム

プログラム

入力欄
 
出力欄
(入力なし)
実行ボタンを押してください
3+5+43 + 5 + 4 の合計値を求めるプログラムです。
  • 合計値 goukei は最初 0 としておきます。
  • goukei = goukei + 3 はイコールの右側の 0+30 + 3 をまず計算し、その計算結果 33goukei を更新します。
  • goukei = goukei + 5 はイコールの右側の 3+53 + 5 をまず計算し、その計算結果 88goukei を更新します。
  • goukei = goukei + 4 はイコールの右側の 8+48 + 4 をまず計算し、その計算結果 1212goukei を更新します。

サンプルプログラム

プログラム

入力欄
 
出力欄
3
実行ボタンを押してください
5
実行ボタンを押してください
100
実行ボタンを押してください
入力欄に書かれている値を nn として、合計値 1+2++n1 + 2 + \cdots + n を求めるプログラムです。合計値 goukei は最初 0 としておきます。for 文を使って値を加算する処理を繰り返し実行することで、最終的に goukei は正しい値になります。goukei = goukei + i + 1 は右側の計算式 goukei + i + 1 の計算結果を左側の変数 goukei に代入するという意味で、つまり goukeii + 1 を加算するということです。カウンタ変数 i00 から始まるので、i + 1 のように 11 を足しています。
例えば n=3n = 3 のとき、次のように動作します:
  • 最初、goukei00 です。
  • 11 回目の繰り返しでは、goukei00i00 なので、goukei + i + 111 になり、この値で goukei が更新されます。
  • 22 回目の繰り返しでは、goukei11i11 なので、goukei + i + 133 になり、この値で goukei が更新されます。
  • 33 回目の繰り返しでは、goukei33i22 なので、goukei + i + 166 になり、この値で goukei が更新されます。
  • goukei の最終的な値 66 が出力されます。

値の範囲や増減値を指定する for 文

for 変数名 in range(開始値, 終了値, 増減値): という形式で書くことで、値の範囲や増減値を指定した for 文を書くこともできます。開始値 から 終了値 - 1 までの値を、増減値 ずつ増やしながら繰り返し処理を実行します。増減値 を省略した場合は 11 とみなされます。(ただし、ややこしいので特に増減値の変更はあまりおすすめしません。)

サンプルプログラム

プログラム

入力欄
 
出力欄
(入力なし)
実行ボタンを押してください
値の範囲を指定した for 文を使ったプログラムです。i という変数名には、繰り返しが何回目かという値が 11 から 44 まで順番に代入されます。

サンプルプログラム

プログラム

入力欄
 
出力欄
(入力なし)
実行ボタンを押してください
増減値も指定したプログラムです。

for 文と if 文の組み合わせ

for 文の中に if 文を入れることで、繰り返しの中で条件分岐を行うことができます。

サンプルプログラム

プログラム

入力欄
 
出力欄
(入力なし)
実行ボタンを押してください
for 文と if 文を組み合わせて、11 から 4040 までのうち 33 の倍数(33 で割った余りが 00 になる数)だけを出力するプログラムです。

クイズ

次のクイズに取り組んでみましょう。ただし、入力欄を読み取って変数に代入するプログラムはもとから書いてあります。その続きを自分で書いてみましょう。

クイズ

今、ポケットにビスケットが 11 枚入っています。ポケットを 11 回叩くと、ビスケットの枚数が 22 倍になります。kaisu 回叩いたとき、ビスケットの枚数は何枚になっていますか?

プログラム

入力欄
 
出力欄
正答
3
実行ボタンを押してください
(正答を取得中)
5
実行ボタンを押してください
(正答を取得中)
20
実行ボタンを押してください
(正答を取得中)

クイズ

入力欄に書かれている値を nn として、11 以上 nn 以下の整数のうち 33 の倍数(33 で割った余りが 00 になる数)の合計値を求めるプログラムを作成してください。例えば、n=7n = 7 の場合、77 以下の 33 の倍数は 3,63, 6 なので、3+6=93 + 6 = 9 となります。

プログラム

入力欄
 
出力欄
正答
7
実行ボタンを押してください
(正答を取得中)
12
実行ボタンを押してください
(正答を取得中)
100
実行ボタンを押してください
(正答を取得中)