Address
304 North Cardinal St.
Dorchester Center, MA 02124
Work Hours
Monday to Friday: 7AM - 7PM
Weekend: 10AM - 5PM
Address
304 North Cardinal St.
Dorchester Center, MA 02124
Work Hours
Monday to Friday: 7AM - 7PM
Weekend: 10AM - 5PM
今回のPython入門レベル解説のネタは、ずばりwhile文です。ですが、その基本的な考え方・使い方の説明は以前の記事「Pythonのwhile文の使い方と基本的な考え方」で書いていますので、そちらをご覧ください。
今回はそのwhile文について、初心者レベルのちょっとした小ネタの記事です。それはwhile文と例外との関係です。
まず次のコードを見て下さい。while文の最も基本的なレベルものです。
def loop():
i=0
while i<=3:
print(f'{i}回目です')
# raise Exception
i += 1
loop()
実行結果は、
0回目です
1回目です
2回目です
3回目です
では次に、上のコードを少しだけ改変します。
def loop():
i = 0
while 1: # 「while True:」と同じ意味
print(f'{i}回目です')
i += 1
if i == 4:
raise Exception
loop()
実行結果は、
0回目です
1回目です
2回目です
3回目です
Traceback (most recent call last):
File "<stdin>", line 1, in <module> File "<stdin>", line 7, in loop
Exception
変数iが4のところ、つまりコード上の4回目(0から数えているので実際は5回目)のところで、エラーが出ています。
これは、
raise Exception
このように、raise文を使ってエラーを発生させているからですね。
このように例外が発生すると、while文でそこで中止することがわかりました。
なお、上コード中の
while 1: # 「while True:」と同じ意味
の「while 1」ですが、
Python上、1とは、特殊なオブジェクトであるTrueと同じ意味を持ちます。確かめてみましょう。
bool(1)
これを実行すると、
True
となります。また、逆に、
int(True)
とすると、
1
となります。
while文は、
while 式:
の式がTrueと評価される間はずっとループします。
そして特殊オブジェクトのTrueは、それ自体Trueという結果を返します。よって、
while True:
は、内部の処理で工夫しないと基本的に無限ループとなります。そのTrueが1と同じなので、
while 1:
も基本的には無限ループとなります。
なお、数字0は特殊なオブジェクトのFalseと同じ意味となります。bool()やint()を使って確かめてみてくださいね。
ちなみにraise文やtry文~excpet節の使い方、そして特殊なオブジェクトのTrue/Falseについては次の過去記事で解説を書いてありますので、読んで見てください。
Pythonをプロから短期間で合理的にマスターするなら、やはり動画による学習方法がわかりやすくオススメです。世界最大級のオンライン学習サイトUdemy(ユーデミー)【PR】ではPythonのプログラミング講座が入門~応用レベルまで幅広く展開されています。
Udemyの動画講座では講師に質問が可能、動画なのでプログラムの動きがわかりやすく理解しやすい、わかりにくいところを何度も繰り返し再生できる、プログラミングスクールよりもはるかに安いというメリットがあります。
その中でも次のような講座がおすすめです。
他にも多数のプログラミング講座があるのでぜひ活用し、合理的に短期間でプログラミングを身に着けましょう。