共テ情報I – 最小限のPython入門
§3. ループ処理
反復処理を行う制御構造には,主に for
ループと while
ループがある.
解説動画
【MENU】
00:00 要項:forループとwhileループ
18:25 Sample 3-1
26:23 Sample 3-2
33:32 Sample3-3
END 39:55
◆ forループ
for文は,指定範囲内で繰り返し処理を行う際に使用される.基本的なfor文の雛形を以下に示す.
for i in range(start, stop, step):
# 繰り返し行う処理
ここで,ループ変数と呼ばれる i
(変数名は任意でよい)には start
から始まる整数値が順次代入され, step
ずつ増加しながら stop
に達するまで繰り返し処理が行われる( stop
の値は含まない).
※ パラメータに整数値以外を代入するとエラーになる.
※ start
と step
の値は省略できる.省略した場合のデフォルト値はそれぞれ0と1である.
### 0から4までの整数を順次出力する.
for i in range(0, 5, 1): # 0, 1, 2, 3, 4
print(i)
### "Hello, World!"を3回出力する.
for _ in range(0, 3, 1): # 0, 1, 2
print("Hello, World!")
### 1から100までの整数の和を計算し,出力する.
goukei = 0
for num in range(0, 100, 1): # 0, 1, 2, ... , 99
goukei = goukei + (num + 1)
# for num in range(1, 101, 1): # 1, 2, 3, ... , 100
# goukei = goukei + num
# これでも同じこと
print("1から100までの整数の和:"+str(goukei))
◆ whileループ
whileループは,特定の条件が真 (True) である間,指定されたコードブロックを繰り返し実行する.条件式が偽 (False) と評価された時点で,ループは終了し,次のコードへと進む.
while 条件式:
# 条件式が真の間に繰り返し実行するコード
### 変数countの値が5以上になるまでカウントアップする.
count = 0
while count < 5:
print(count)
count = count + 1 # countを1増やす(これを忘れると無限ループになる)
### 変数xに2を繰り返し2を掛け,10000を超えるまで続ける.
x = 1
while x < 10000:
print(x)
x = x * 2 # "x *= 2"と記述してもよい
※ for
ループは,ループする回数や範囲が明確な場合や,リストなどのイテラブル(反復可能オブジェクト)を処理する場合に適している.
※ while
ループは,ループの終了条件が動的に変化する場合や,ループの開始前にループ回数が不明な場合に使用する.
※ ループを途中で終了したい場合は break
文を,ループの残りの処理をスキップして次の繰り返しに進みたい場合には,continue
文を用いる.
◆ サンプルコード
Sample 3-1
# 素数判定プログラム
# 素数かどうかを調べる数を入力
kazu = int(input("素数かどうか調べたい数を入力してください: "))
# 1とその数自身以外に割り切れる数があるかどうかを調べるフラグ
flag_sosu = True
# 2からkazu-1までの数で割ってみる
for i in range(2, kazu, 1): # 2, 3, 4, ... , kazu-1 # kazu ** 0.5 まで調べれば充分ではあるが
if kazu % i == 0:
flag_sosu = False # breakでループを抜けることもできる
# 判定結果を出力
if flag_sosu:
print("素数です.")
else:
print("素数ではありません.")
Sample 3-2
# 素数判定プログラム
# 素数かどうかを調べる数を入力
kazu = int(input("素数かどうか調べたい数を入力してください: "))
# 1とその数自身以外に割り切れる数があるかどうかを調べるフラグ
flag_sosu = True
# 2からkazu-1までの数で割ってみる
i = 2
while i < kazu ** 0.5 + 1: # kazu ** 0.5 まで調べれば充分
print(i)
if kazu % i == 0:
flag_sosu = False
break
i = i + 1
# 判定結果を出力
if flag_sosu:
print("素数です.")
else:
print("素数ではありません.")
Sample 3-3
# 正しいパスワードを設定
aikotoba = "3150"
# ユーザー入力用の変数を初期化
nyuryoku = ""
# パスワードが正しいものになるまで入力を繰り返す
while nyuryoku != aikotoba:
nyuryoku = input("合言葉:JUKEN7?")
if nyuryoku != aikotoba:
print("ブブー")
else:
print("ピンポーン")
# ログイン成功メッセージ
print("JUKEN7へようこそ!")
◆ 演習問題
作成中