Python入門:while文(繰り返し)

  • 2019.11.13
  • (更新日:2020.03.19)
  • python
Python入門:while文(繰り返し)

while文による繰り返し処理は、for文に比べると少し難しく感じるかと思います。

for文の場合は、リストのように個数が決まっているデータにアクセスしたり、
決まった回数だけ処理したりする時に使われますが、処理の回数は決まっています。

しかし、while文による繰り返し処理は、条件が真(True)である間はずっとブロック内の処理を繰り返します。
そのため、意図せず無限のループを発生する可能性もあります。

初心者の方は、if文とfor文を上手く組み合わせる事が出来れば、問題ないと思いますので、
while文については、まずはザックリ理解する程度の気持ちで気楽に見てください。

while文完全解説

while文の基本的な書き方

while 文は指定した条件式が真の間、処理を繰り返し実行します。基本的な書式は次の通りです。

記述方法

while文の基本的な書き方

実際のコード

5回文字列を表示させるコード

 i = 0
 while i < 5:
     print(str(i)+'.タイガーマスク')
     i += 1 

実行結果

0.タイガーマスク
1.タイガーマスク
2.タイガーマスク
3.タイガーマスク
4.タイガーマスク

まず最初に、変数iは0に初期化します。
while 条件式は「変数iが5未満まで条件成立」です。

1回目の変数iは0なので条件が成立し、
Whileのブロック(繰り返したいコード)を実行します。
文章を出力後、変数iに1が足されます。
これをプログラムの世界で、インクリメントと呼びます。
インクリメントの意味は、増量 (increment)と言う意味ですが、プログラムでは、変数の値を1増やす演算のことです。
逆に1減らす演算はデクリメント ( decrement) と言います。

変数の値が0からスタートし、変数の値が4まで5回実行されました。
変数の値が5になった時点で、while文の条件が満たされませんので処理は正常に終了します。
タイガーマスクを連呼するのはキャシーさんです。
これがわかる人は、ごっつええ感じが好きなおっさんだと思います。

無限ループの作り方

For文は、リストの個数や処理の回数が決まっている為、無限に繰り返し処理を行う事はありませんが、
While文は記述を間違えると意図せず無限ループします。

先程のソースで無限ループを起こす場合は簡単です。
最終業のi += 1(インクリメント)を記述しなければ、無限ループして永遠に「タイガーマスク」を連呼し続ける生産性0のプログラムが完成します。

一応、Breakを活用すれば、処理を強制終了できますが、インクリメントの記述を忘れて、breakを設定するトンチンカンな事は非現実的ですね。

while文とelse文の組み合わせ

while文は指定した条件式が真の間、処理を繰り返し実行しますが、条件式が偽になった時に実行される処理をelseを使って記述することができます。

記述方法

無限ループの作り方

サンプルプログラム

それでは、みんな大好き「うまい棒 」 でサンプルプログラムを作ります。

「うまい棒のたとえはあきた! 」 と思っている方。

大丈夫。私も飽きています。

それではスタート。

エディタを使い、以下のコードを記述して、umaibo.pyで保存します。

money = 50
stock = 10

print("50円で買えるだけうまい棒を買います。")

while money > 0:
    money -= 10
    print("1本うまい棒を追加で買ったので残りのお金は" + str(money) + "円です。")
    stock += 1
   

else:
    print("うまい棒のストックは" + str(stock) + "本です。")

print("お金が無くなりました。")

50円という大金を片手に、買えるだけのうまい棒を買う少年という壮大なストーリーのプログラムです。

うまい棒のストックが10本あり、1本10円のうまい棒を大金が尽きるまで買い続け、何本になったかを発表する処理と思ってください。

書き終えたら、次のように処理を実行してください。

python3 umaibo.py

実行結果

50円で買えるだけうまい棒を買います。
1本うまい棒を追加で買ったので残りのお金は40円です。
1本うまい棒を追加で買ったので残りのお金は30円です。
1本うまい棒を追加で買ったので残りのお金は20円です。
1本うまい棒を追加で買ったので残りのお金は10円です。
1本うまい棒を追加で買ったので残りのお金は0円です。
うまい棒のストックは15本です。
お金が無くなりました。

簡単でしょ。

pythonカテゴリの最新記事