DESIGNMAP

  1. TOP
  2. 公開講座
  3. ゼロから始めるPython入門
  4. whileによる繰り返し処理 ー ゼロから始めるPython入門【Vol.8】

whileによる繰り返し処理 ー ゼロから始めるPython入門【Vol.8】

今回はwhileを使った繰り返し処理を学んでいきます。

Atomを起動します。[ファイル]メニュー→[新規ファイル]をクリックします。[ファイル]メニュー→[保存]をクリックします。Vo.3につくった「python-study」フォルダ内に、「while1.py」というファイル名で保存します。

num = 1

while num < 6:
    print(num)
    num = num + 1

実行すると

1
2
3
4
5

と出力されます。

while 条件式:
	繰り返し処理

という書式です。条件式がTrueを返したならば、繰り返し処理が実行され、再度条件式に巻き戻されます。前回学んだforと違い終了条件を自分で書かないと、繰り返しがとまりません。

if文と同じく:の後の行はインデントをいれます。

うっかり

num = 1

while num < 6:
    print(num)

と書いてしまうと条件式が永久にTrueを返してしまうので、繰り返しがとまりません。延々と「1」が出力されてしまいます。もし永久ループになってしまったら[Ctrl]+ [C]で強制終了ができます。

if文と同じくelseが使えます。

num = 1

while num < 6:
    print(num)
    num = num + 1
else:
    print("繰り返しが終わりました。")
1
2
3
4
5
繰り返しが終わりました。

繰り返しを途中でやめる

forと同じくbreakを使うと、途中で繰り返しをやめることができます。

num = 1

while num < 6:
    if num == 3:
        break
    print(num)
    num = num + 1
else:
    print("繰り返しが終わりました。")

実行すると2までが出力されます。

1
2

繰り返しの特定の回をスキップする

forと同じくcontinueで特定の回をスキップできます。

num = 1

while num < 6:
    if num == 3:
        num = num + 1
        continue
    print(num)
    num = num + 1
else:
    print("繰り返しが終わりました。")
1
2
4
5
繰り返しが終わりました。

終了条件を成り立たせるためのコード(num = num + 1)を2箇所書かないと、うまくいかないところが難しいです。

数字当てゲームを作ろう

ifとwhileを覚えると作れるプログラムが増えます。
試しに数字当てゲームをつくってみましょう。1から5の数字を当ててもらうゲームです。「expect_number.py」というファイル名で保存します。

import random

random_num = random.randint(1, 5)

while True:
    num = int(input(&quot;1から5までの数字を入力してください。&quot;))

    if num == random_num:
        print(&quot;当たりです。&quot;)
        break
    else:
        print(&quot;外れました。&quot;)
        print(&quot;もう一度入力してください。&quot;)

まだ未学のところがありますが、大きなポイントはwhileifです。
while True:なので、条件式は常に成り立ちます。breakが実行されないと何度も繰り返されます。

ゲームオーバー機能も追加してみます。

import random

random_num = random.randint(1, 5)
count = 0

while True:
    num = int(input("1から5までの数字を入力してください。"))

    if num == random_num:
        print("当たりです。")
        break
    else:
        print("外れました。")
        print("もう一度入力してください。")
        count = count + 1

    if count == 5:
        print("ゲームオーバー")
        break

5回失敗するとゲームオーバーになります。
今回のゲームは解答例以外にも様々な書き方ができると思います。いろいろ考えてみてください。

input()関数はユーザーの入力値を受け付ける関数です。関数については後の回に学習します。

ランダムな数は乱数と呼ばれます。乱数を生成するのに、Pythonではrandomというモジュールを使います。モジュールは外部のプログラムの部品です。詳しくは後の回で説明します。

import random

でrandomモジュールを読み込んでいます。

random.randint(1, 5)

randomモジュールのrandint()関数を呼び出しています。1から5までのランダムな整数が生成されます。

スポンサーリンク

関連記事

プロフィール

DESIGNMAP
制作ディレクター。
お問い合わせ