【Day8】Python入門 4.2:for 文

目次

要約

本日は、Pythonで以下を学びました。

繰り返しの基本構造

while文

無限ループ

状態による繰り返し

繰り返しによるリストの作成

繰り返しによるリスト要素の利用

#繰り返しによるリストの作成、参照を行ってみましょう
count = 0
student_num = int(input('学生の数を入力してください>>'))
score_list = list()
while count < student_num:
    count += 1
    score = int(input(f'{count}人目の試験の得点を入力してください>>'))
    score_list.append(score)
print(score_list)
total = sum(score_list)
print(f'平均点は{total / student_num}点です')

count = 0
while count < len(score_list):
    if score_list[count] >= 60:
        print(f'{count+1}人目:合格')
    else:
        print(f'{count+1}人目:不合格')
    count += 1

はじめに

前回は繰り返しの基本構造について学びました。

​今回は、for 文について学習します。


for 文

for 文による繰り返し

前回はwhile文を使ってリストの要素を順に参照する構文を作りました。

しかし、この方法は繰り返しの条件やカウンタ変数の操作を明示的にコーディングする必要があり、

無限ループやIndexErrorを起こしやすいというリスクがあります。

そこで、リストなどのデータの集まりについて、先頭から末尾まで順に参照する場合には、

より安全かつエレガントな記述ができるfor 文がよく利用されます。

#for文を使って、参照する
scores = [80, 20, 75, 60]
for data in scores:
    if data >= 60:
        print('合格')
    else:
        print('不合格')

for 文では、繰り返し条件を記述しなくても、自動的にリストの先頭から末尾まで順に繰り返しが行われていきます

また、カウンタ変数を指定する必要もないため、無限ループの発生や間違った条件での繰り返しを心配する必要もありません。

ケースバイケースでwhileとforを使い分けるといいかも知れないですね!


for 文の基本構造

for 文もwhile 文と同様に、直後のブロックを繰り返し実行します。

このブロックをfor ブロックといいます。

for 文を繰り返す回数はリストの要素数で決まりリストの要素を先頭から順に取得

forの直後に記述した変数に代入します

for 文でリストの全要素を参照する

for 変数 in リスト:

  繰り返し処理

リストだけでなく、タプルやディクショナリ、セットなど、ほかのコンテナでもfor 文は利用可能です

なお、セットのように順序を持たないコンテナの場合、代入される要素の順序は保証されません。


for 文による決まった回数の繰り返し

決まった回数を繰り返す場合、for 文 + range関数を利用するとラクにループを記述できます

range関数

range(n)

※0以上n未満までの範囲の整数列に評価される

for 文で決まった回数を繰り返す

for 変数 in range(n):

  繰り返し処理

※繰り返しはn回実行される。

for文 + range()による繰り返しの文を作ってみましょう。

#for文 + range()を使って繰り替えし処理を行う
for num in range(3):
    print('オラ')
print('やれやれだぜ')

for 文を使うと、ループ処理だから毎回頭から処理して1行ずつprintしているのかな?
癖を覚えたうえで使っていく必要がありそう!


while 文とfor 文の使い分け

繰り返し回数の目途が立つときはfor 文目途が立たないときはwhile 文を使うと良いでしょう

while文 と for文 の使い分け

・while 文:繰り返す回数の目途が立たないときに使う。

・for 文:繰り返す回数の目途が立つときに使う。


まとめ

本日は、Pythonで以下を学びました。

for 文

for 文による繰り返し

for 文の基本構造

for 文による決まった回数の繰り返し

while文 と for文の使い分け

次回は「繰り返しの制御」を扱っていきます。


for でも while でも、イメージしたプログラミングが書けるようになりたいですね!

目次