第7回 python入門 for文について説明したいと思います。
この動画を最後ま見てくださいましたら、あなたはエンジニアが苦労するプログラムもサッとコーディングできるようになります。
今回もpythonを使用してAnacondaのspyderで説明したいと思います。
リストやタプルの要素を順番にアクセスする方法として、pythonにはfor文というとても便利なものがあります。具体的に言いますと、for文はリストやタプルの全体の要素の1要素ずつに対して、繰り返し処理を行うことができるものというイメージです。
では、実際にプログラムを確認してみましょう。♪( ´θ`)ノ
for文の基本文はこのように記載します。
for 変数 in データの集まり:
繰り返す処理
for文は、条件式の先頭で宣言しておいた一時的な変数に、要素を1要素ずつを自動的に入れ、インデントされた処理を行います。試しにこのように書いて見ます。
test = [ 10, 20 , 30 , 40, 50 ]
total = 0
for p in test :
total = total + p
average = total/5
print(total) #合計
print(average) #平均値
順番に説明していきます。このtestというlistから最初に、先頭の要素を一つ取り出し、変数pに入れます。今回ですとpには10が入ります、その後にこの中括弧内の処理を行います。ここでは total = total + p が実行されます。今トータルは0でpは10が代入されていますので左辺のtotalには10が代入されます。インデントの処理が終わりましたら、pには次の要素が代入されます。今回ですとpには20が入ります。これをlistの要素がなくなるまで、行います。ですので、ここではトータル150になり、アベレージは30点になるはずです。
それでは実行して見たいと思います。
そうしますとtotalは150、averageは30点と出力されたことが確認できます。
そしてfor文が面白いところはリスト以外でも使用できることです。複数の各要素を格納できる型に対してもfor文が使えます。今現在は各要素についても使えるということを覚えておいてください。少しだけ触れて見ます。
このように書いてみます。
str = “ watson”
for p in str :
print(p)
この場合も文字列strから一文字ずつ取り出し、それをpに入れてprintで出力します。これを実行して見ますと
縦にwatsonと表示されました。これは要素を1つずつ取り出したため縦に表示されています。for文を使用しますとwhile文よりもスッキリして見えますね、while文では条件式で何度繰り返すかを判断しないといけなければなりませんでした。for文ではそれさえ不要になっており書き方も簡単になっております。しかし、逆を言いますと全てに対して繰り返し処理を行なってしまうという弱点があります。
ここで紹介するのがbreak文です。break文は今回で言いますと、watsonという全ての文字を表示するのではなく、watまでの表示をしたい場合などのような時に使用します。難しく言いますと、「特定のデータに特定の結果が出力され次第、繰り返し処理止める」という意味です。
このように使用します。
str = "watson"
for p in str :
print(p)
if p=="t":
break
print("END")
順番に説明していきます。変数strにwatsonという6文字の文字列を代入します。その後にfor文の処理でstrの先頭、つまりwを変数pに代入します。for文の繰り返し処理ではprint変数pですので、当然wが表示されます。その後にif文の処理にうつりまして変数pの値はwですのでbreak文は処理されず、先頭のfor文に戻ります。これをそれぞれの要素で繰り返すのですが、変数pにstrの3番目の要素つまり、tが代入された時if文の条件を満たしますので、break文を処理します。break文を処理をした後はfor文を抜けたprint(“END”)が実行されます。
はい、それでは、実行してみましょう。
このようにwatまでしか表示されませんでした。
ここで少し応用編です。5科目のテストで全科目が60点以上なら合格、1つでも60点未満の科目があった場合に不合格と知らせるプログラムを作成してみてくだいさい。※テスト点数は任意で決めてください。
是非皆さんも考えてください。
はい、それでは答えを記載します
test_studentA = [61,60,59,80,90]
test_studentB = [60,60,60,60,60]
print("あなたの今期のテストの結果は")
for test_score in studentA_test:
if test_score<60:
print("不合格")
break
else:
print("合格")
print("です")
試しに生徒Aで実行してみますとこのように出力されました。
生徒Bで実行してみますとこのように出力されました。
はい、今回はfor文についてということでfor文の仕組みから、実際にfor文を用いて各要素に対して繰り返し処理を行って見ました。また補足説明としてbreak文も説明させていただきました。
次回の講座ではこれまで後回しにしてきましたクラスとオブジェクトについての内容となっています。是非ご覧ください。
以上で、python入門7を終了と致します。ご静聴ありがとうございました。✌︎(‘ω’✌︎ )
コメント