calendarcodediamondfacebookfingerglobalgoogleplushatenahomepagetopplainpocketrssservicetwitterwordpresshome2searchfoldernext-arrowback-arrowfirst-arrowlast-arrow

Python : while 文の基本操作編(break、continue、else など)

Python には for 文 と while 文 の 2 種類のループがある。while 文は条件を指定した処理の繰り返しである。式が真である間は処理を繰り返す。

エンジニア速報は Twitter の@commteで 1 日 5 回配信しています。

Sponsored Link

目次

while のポイント

while 条件式: 繰り返す処理
  • 式が真である間は処理を繰り返す
  • continue は次のループに移る処理
  • break 文はループを抜けるときに使う
  • else 節は、while ループが終了時に、対象が見つからなかったときに実行
  • else 節は、 break 文でループを抜ける際は実行されない
  • while ループが break せずに終了したとき、else 節に渡される

次に示すのは、1 から 5 までの数値を表示するシンプルなループである。

i = 1 while i <= 5: print(i) i += 1 # 1 # 2 # 3 # 4 # 5

上に記述したプログラムを順に解説する。

  1. i に 1 を代入する
  2. i が 5 以下ならループを続ける
  3. i を表示
  4. i を 1 ずつ インクリメント(変数の値を 1 増やす) する
  5. ループの先頭に戻り繰り返す
  6. i が 6 になり最初の行に戻ると i <= 5 が False になり終了する

次に示すのは、ユーザーが名前を入力するまで、入力を促すループである。

i = '' while not i: i = input('名前を入力してください : ') print(f'おかえりなさい! {i} さん!') # 名前を入力してください : # 名前を入力してください : 花子 # おかえりなさい! 花子 さん!

break

break 文はループを抜けるときに使う。次に示すのは、input()関数を使い、キーボードの入力で stop が入力されるまで、先頭の文字を大文字に変換させる無限ループである。stop が入力されると break 文が返されループを抜ける。

while True の部分が無限ループになる。このループを終了させるには、ループ内に if 文を置いて、条件が満たされたら break 文を呼び出す。

while True: s = input('何か入力してください : ') if s == 'stop': break print(s.capitalize()) # 何か入力してください : abc # Abc # 何か入力してください : stop

continue

continue は次のループに移る処理である。ループを抜けるのではなく、次のイテレーション(反復処理の 1 回分)をすぐに再開したい場合は、continue を使う。現在の繰り返しをその時点で終了し、次の繰り返しの先頭にジャンプするものである。

次に示すのは、入力欄で、奇数の数値を入れると自乗し、偶数だとスキップされ、stop と入力すると終える処理である。

while True: i = input('数字を入力してください : ') if i == 'stop': break number = int(i) if number % 2 == 0: continue print(number * number) # 数字を入力してください : 2 # 数字を入力してください : 3 # 9 # 数字を入力してください : 4 # 数字を入力してください : 5 # 25 # 数字を入力してください : stop

else

else 節は、while ループが終了したものの、見つからなかったときに実行される。

i = 0 while i < 3: print(f'{i}') i += 1 else: print('end') # 0 # 1 # 2 # end

else と break

else は break 文でループを抜ける際には実行されない。while ループが break せずに終了したとき、else 節に渡される。

次に示すコードは、リストの要素数だけループを行い、要素に偶数があれば break、なければ else が返る。

numbers = [11, 83, 215, 899] i = 0 while i < len(numbers): n = numbers[i] if n % 2 == 0: print('偶数発見') break i += 1 else: print('偶数が見つからない') # 偶数が見つからない

Python おすすめ本

スポンサード リンク

Comments

Leave a Comment

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください