無限ループってあるよね
Loop(ループ) = 繰り返し
Pythonで繰り返し同じ処理をしたり、条件によって繰り返しを止めたりするやり方を勉強するよ~
コンピュータは同じ処理を何度も繰り返して行ったりすることが得意なので、pythonコードをうまくかければ、
「ボタンを押しておけば、あとは勝手にパソコンがやってくれる」
という、自動化アプリを作ったりするのにめちゃくちゃ役立ちます。
次のコードを300回繰り返し表示してみよう。
print("イケメンリッキー")
この文字を見るのも嫌だというそこの卑屈なきみたちは、嫉妬は良くないけど、まぁ気持ちはわかる。だから早く終わらせたいよね。
ではどうやってこのめんどくさい作業を終わらせるかだけど、
・300回頑張って打つ
・300回頑張ってコピペ
とか、非イケメンの君たちにはこれくらいしか考えつかないだろう。かわいそうに
コピペをしているうちに、何回コピペしたか忘れてもう一回数え直したりしなくちゃいけないけど、可哀想な君たちはそうするしかないだろうね。
イケメンたちは以下のやり方でスマートに解決するので、指を加えてみてなさい。
for i in range(繰り返し回数):
繰り返したい処理
これを使って300回printするには
for i in range(300):
print("イケメンリッキー")
繰り返したい処理のところにはprint以外でも、繰り返したい内容を書けるから、例えばこんなのをやってみよう
print(10 + 5*30) でいいじゃんというツッコミは、正しいんだけど今回はfor文の練習なので、forを使ってやってみよう
まずは変数の準備と、for文の構えから
number = 10
for i in range(10):
# 繰り返したい処理
あとは繰り返し内容を考えるだけ。「5を足す」という処理を繰り返すわけなので、これでおk
number = 10
for i in range(10):
number = number + 5
これでもいいんだけど、もうちょっとおしゃれな書き方をしよう。
変数numberに5を足して、number自身が大きくなる(numberが5→10→15となる)とき、こういう書き方ができます。これは算数や数学では使わない書き方です。
# 5増やす場合
変数 += 5
# 5減らす場合
変数 -= 5
こういうpython特有の書き方を知ってると、「お、こいつできる!」てなるので、積極的に使っていこう
number = 10
for i in range(10):
number += 5
さて、これだと、処理はされてるかもしれないけど、実際に結果(=160)が表示されていないから、ちゃんとできたかどうか確認できない。ここで問題
aの結果はこんな感じ(前半省略)

bの結果はここうなる
この2つのコードを比較してみよう
number = 10
for i in range(10):
number += 5
print(number)
|
number = 10
for i in range(10):
number += 5
print(number)
|
右のコードはnumber += 5 だけインデントが入っているのは、繰り返すのはそれだけ。じゃあprint(number)はいつ実行されるかというと、for文の繰り返しが終わったあとに実行される。
このコードはどうなる??
for i in range(10):
for j in range(2):
print("リッキー")
print("イケメン")
for文の中に for文が入ってる!
繰り返し処理の中で別の繰り返しを行うと、こんな感じになります。
・①リッキーと2回表示
・②イケメンと表示
①と②のセットを10回表示

気になるならprintすればいいじゃあないか!元ネタが気になる人は「ジョジョ プロシュート」で検索!
list()ていうのが入ってるけど、今はきにしないでおいて。
print(list(range(10)))
# 結果:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
0スタートの、9までの数字のリストができます、
range(9)だと0から8
range(8)だと0から7
さて問題、0から9までの数字リストには、数字は何個入ってるでしょう
小さい子に、「10回繰り返しやってね」と言った時に、両手を広げて10を作って、一本ずつ指をおりながら数えていくのを想像してみよう。リッキーにもこういうかわいらしい時期がありました。
for i in range(10): となったときに、コンピュータも、0から9の数字リストを作って、「今何回目かな」と確認しながら処理を進めていくわけ。

じゃなくて。
このコードを実行してみましょう。
for i in range(10):
print(i)
# 結果:
0
1
2
3
4
5
6
7
8
9
さっきのrange()を見てみると、わかりやすい。
iというのは、コンピュータが「今何回目だっけ?」というのを、range()で作られたリストを見ながら確認するための変数なわけ。
iは、工夫すると、こういう使い方もできるよ!
・イケメン5か条を出力
print("イケメン五ヶ条")
for i in range(5):
print(f"その{i}:いけめんであること!")
# 結果:
その0:イケメンであること!
その1:イケメンであること!
その2:イケメンであること!
その3:イケメンであること!
その4:イケメンであること!
これだと、その0から始まってしまっておかしいので、ちょっと工夫
print("イケメン五ヶ条")
for i in range(5):
print(f"その{i + 1}:いけめんであること!")
# 結果:
その1:イケメンであること!
その2:イケメンであること!
その3:イケメンであること!
その4:イケメンであること!
その5:イケメンであること!
イケメンになるには、イケメンであることが前提なわけです!

以下の出力を、for文を使って実装してみよう
①「私の戦闘力は0!」から、「私の戦闘力は53!」(53万までやらないこと!)
②「私の戦闘力は!53」から、「私の戦闘力は0!」
③「私の戦闘力は0!」から、2ずつ上がっていき、「私の戦闘力は52!」まで