前回の記事では、「●回繰り返す」について解説しました。今回は「●まで繰り返す」について解説いたします。
▼これまでの連載
Google Colaboratoryの環境について:https://i-learn.jp/article/5655
(1)プリント文:https://i-learn.jp/article/5669
(2)変数:https://i-learn.jp/article/5713
(3)●回繰り返す:https://i-learn.jp/article/5761
1. Scratchの繰り返し「●まで繰り返す」
Scratchにも繰り返しがありました。Scratchの繰り返しにはいくつか種類があります。今回はそのうち「●まで繰り返す」をPythonで扱いたいと思います。
今回も前回と同様、「a」という変数を作り、次のようなコードを作ってみました。
プログラムの動きは前回と同じで、実行すると、ネコが1から10までの数字を言います。
これをPythonで実行してみたいと思います。
2. Pythonの繰り返し
こちらの記事をご覧いただきながら、Google Colaboratoryで次のように書いてみてください。
今回の●まで繰り返すは、Pythonではwhile文を使います。
こんなコードを書いてみました。
続いて、実行ボタン(コードの横に表示されている右向きの三角)を押して、実行してみましょう。
はい。1から10までの数字が表示されました。
2-1. 条件が違うことに注意
さて、鋭い方なら先ほどのScratchのコードと、Pythonのコードがちょっと違うことにお気づきだと思います。
そこで、ScratchとPythonで上記の赤枠の部分の設定を変えて、プログラムが動くかどうか?を実験してみました。
結果はこのようになりました。
ScratchとPythonで動作が異なりました。
Scratchの「●まで繰り返す」は条件が偽(False)の間だけ動作して、条件が真(True)になった時に繰り返しが止まります。
しかし、Pythonのwhile文は条件が真(True)の間だけ動作して、条件が偽(False)の時には繰り返しが停止します。
この部分が挙動が異なるので気をつけましょう。
Scratchの「●まで繰り返す」は「真になるまで」。
Pythonのwhile文はは「真の間」。
と、意味が異なるのですね。
Pythonでは、「●まで繰り返す」は「while文」に似ている。でも条件に注意!
3. まとめ
Scratchの「●まで繰り返す」はPythonで似たものとして「while文」がありますが、意味が少し違うので気をつけましょう。
またwhile文はif文に書き換えられる場合もあるので、書き換えられるかどうか?も勉強しても面白いと思います。
今回のコードはこちらです。
https://colab.research.google.com/drive/1ZhwWM0z0vEMbunCYqysHOfacrL0Y4ccA?usp=sharing
PythonとScratchも似ているところ、違っているところがありますが、意味をよく考えれば間違えることもないと思います。