1~10までの値を足し算したい時、1 + 2 + 3 + …としているととても時間がかかります。1~10までならまだ手で打って対応できますが、1~1000までとなるととても対応できません。
そんな時にループ処理を使うと簡単に解決できます。ここではfor文を取り上げて考えたいと思います。
for文の基本の形
for文を作るときは次のように書きます。
for 変数名 in イテラブルオブジェクト:
繰り返し行う処理
ポイントとして、次の7つがあります。

①forで書き始め、その後に半角スペースを1つ書きます。
②変数名を入れます。②の変数名は⑦の繰り返し行う処理の中で使われる変数名になる事が多いです。
③inを書きます
④繰り返し行う処理の元となるオブジェクトが置かれる事が多いです。
⑤:(コロン)で一文の終わりを区切ります。
⑥半角スペース4個をつけてインデントします。
⑦繰り返し行う処理を記述します。
1~10までの足し算をfor文で
さて、では実際にfor文を使ってみましょう。ここでは、1~10までを足した時をみていきます。まずは、地道に一つずつ足していきたいと思います。
x = 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10
print(x)
'''
【実行結果】
55つづいて、for文を使ってみていきましょう。1~10までのリストを使って足し算をしてみます。
num = [1,2,3,4,5,6,7,8,9,10]
sum = 0
for x in num:
sum = sum + x
print(sum)
'''
【実行結果】
55
先ほどと同じ結果になりました。これだけではよくわからないと思いますので、ループ処理が行われている時に、変数xの値がどのように変化しているか見ていきたいと思います。ループ処理中のxの値を出力してみます。
num = [1,2,3,4,5,6,7,8,9,10]
for x in num:
print(x)
'''
【実行結果】
1
2
3
4
5
6
7
8
9
101回目の処理ではxの値にリストnumの一番始めの数値である1が代入されます。続いて、2回目のループ処理に入ります。2回目では、リストの2番目の数値である2が代入されます。続いて、3回目では・・・と続きます。
range()関数を用いたループ処理
上記のリストを用いた方法だと、結局は必要な数値を入力しないといけないので、ループ処理を用いてもあまり効率的ではありません。1~1000までの総和を取りたい時など現実的ではありません。そんな時には、range()関数を用いると効率的にコードを書くことができます。
range()関数はrange(stop)もしくはrange(start,stop,step)(stepは省略できる。省略した場合は1とみなされる)と書くことができます。range(stop)とした場合は0からスタートになります。また、stopの数値の1つ前の値までが渡されます。
▼関連記事:【Python】range()関数の使い方
では、先ほどのコードをrange()関数を使って書いてみましょう。
for x in range(11):
print(x)
'''
【実行結果】
0
1
2
3
4
5
6
7
8
9
10startの値を指定しなかったので、0から出力されました。また、stepの値を指定しなかったので、1とみなされています。加えて、11の1つ手前の数値の10まで出力されました。
これを用いて0~10までの総和をとってみましょう。
sum = 0
for x in range(11):
sum = sum + x
print(sum)
'''
【実行結果】
55range()関数を用いると1~1000の総和も簡単に調べることができます。
sum = 0
for x in range(1001):
sum = sum + x
print(sum)
'''
【実行結果】
500500for文の基本的な作り方と使い方をまとめました。for文で使われるcontinueやbreakについても下記記事でまとめていますので、ご参照ください。


コメント