- 人工知能Ai 第5回 While文(list構文あり)
はいそれでは第5回
人工知能Aiのプログラミング講座をはじまめます。
(テンション高めにお願いいたします。)
今回はWhile文について説明したいと思います。
この動画を最後ませ見てくださいましたら
あなたは、世の中に出ている製品の仕組みの理解ができるようになります。
今回もpythonを使用してAnacondaのspyderで説明したいと思います。
プログラミングをすると、同じ処理をあるいは似たような処理を繰り返し行いたい場合があります。
例えば、一例としてストーブを想像してください。
ストーブでは、設定温度より室内温度が低い場合に
石油を燃焼し続けて、室内を暖かくしなければなりません。
もし燃焼を止めてしまいますと、極寒の地に住む人は
危険な状態に陥ってしまうためです。
———————————————————————————————————————
ここで、今まで学んできた知識で
設定温度より、室内温度が低い場合に石油を燃焼し続けるプログラムを作成することは困難です。
皆さんはおそらくこのように記載すると思います
●●● if ストーブスイッチ==ON :
●●● 石油を燃焼
●●● 石油を燃焼
●●● 石油を燃焼
●●● 石油を燃焼
●●● 石油を燃焼
●●● 石油を燃焼
●●● 石油を燃焼
●●● 石油を燃焼
●●● 石油を燃焼
●●●
このように何回も書いてもよいのですが、実際に書くと疲れてしまいます。
その上、中の処理に変更などがあった場合に全て変更しなければなりません。
つまり、たくさんの書き直しになります。
では燃焼し続けるにはどうしたら良いかと言いますと、While文を使用します。
While文を用いて一定の条件がクリアされるまで、燃焼という処理をすれば良いのです。
While文の基本式はこのように記載します。
●●● while 条件:
●●● 繰り返したい処理
●●●
ですので、今回の場合ですとこのように記載できます。
●●● while 設定温度>室内温度:
●●● 石油を燃焼 #繰り返される処理
●●●
—————————————————————————————————————
通常、プログラムは上から下に向かって走ります。
WhileではこのWhileの条件をクリアするまで、ずっとループします。ですのでこのプログラムは室内温度が設定温度以上になるまで
この石油を燃焼を何度も実行されることになります。
ただ、注意しなければならないのが、逆を言いますと
この条件をクリアできなければ、ずっとループすることになり無限ループ状態になということです。
つまりプログラムとしては燃焼しかできないプログラムになってしまいます。
●●●たいち担当)プログラム実行と停止を示す。
今は私たちは開発者の環境でプログラムテストしているため、このように手動で、プログラムを止めることができていますが。製品として、納品するもであれば、極めて注意が必要です。
はいでは、実際にプログラムを書いて見ましょう。
わかりやすくするため
画面に出力したいと思います。
試しにこのように記載して見ます。
●●● a = 1
●●● while a < 10 :
●●● print(“watson”)
●●● a +=1
●●●
●●●
これで実行して見たいと思います。
そうするとこのようにwatsonが9個表示されました。
どういうことかと言いますと
まず、変数 a には変数の宣言時に1が代入されています。
そしてこのwhileの条件文で当然 a は1ですので、10より小さいため
このwhileの中の処理を行います。
ワトソンを表示します、その後 a をインクリメントします。
ですので、ここで a は2という値になっています。
そしてwhileの条件文に戻ります。しかし当然 a は 2ですので10より小さいため
このwhileの中の処理を行います。
このようにして処理を繰り返します。
While文を抜けるときはこのwhileの条件を満たさなくなったときで
今回であれば a が10になったときに抜けます。
ですので、表示は全部で9文となります。
——————————————————————————————————
■ここで少し実務応用編です
この後に問題を読み上げます、ぜひ皆さんも動画を止めて実際に考えて見ください。
問題を読み上げましたら、しばらくして解答解説を行います。
それでは問題です。
5科目のテスト成績をwhile文を用いて、
5科目全て60点以上なら合格
一つでも60点未満であれば不合格と表示できるプログラムを記載してください。
※テストの成績は自由にお決めください。
もう一度読ませて頂きます。
5科目のテスト成績をwhile文を用いて、
5科目全て60点以上なら合格
一つでも60点未満であれば不合格と表示できるプログラムを記載してください。
※テストの成績は自由にお決めください。
はい、それでは解説をしていきます。
まず前回勉強しましたlistを使って5科目の成績をまとめてみましょう。
このように記載します。
studentA_test=[60,61,82,76,99]
答え確認をするために60点未満もあるリストを作っておきましょう
studentB_test=[60,61,82,50,99]
次に全てが60点以上なら合格、1つでも60点未満であれば不合格と表示とあります。
つまり成績一つ一つを確認しなければなりません。
書き方は二通りあります。
ちょっとずるいですが今回は裏道のみご紹介します。
このように書くことができます。
■修正↓↓↓
studentA_test=[60,61,82,76,99]
studentB_test=[60,61,82,50,99]
count=0
while 5>count:
count+=1
if studentA_test[count]<60
print(‘不合格’)
break
else
print(‘合格’)
これで実行しますとこのように
合格のみが出力されました。
ここで、studentA_testをstudentB_testに変更して実行してみますと
このように不合格が出力されました。
もうすでにwhileやこのブレイクについては説明しましたの割愛します。
この最後のelse文というのはwhile文にかかっておりましてwhile文の条件を満たさなくなった時
につまり最後に一回通ります。
つまりここでのelse文の使い方は、while文で全ての科目確認したところbreak処理をすることがなかった。
つまり不合格の学科がなかったので、最後に合格を表示しますという使い方です。
これは教科書などには載っていませんので、是非覚えて置いてください。
はい、今回はWhile文についてということで
ストーブを例にしたWhile文の仕組みから、
実際にWhile文を用いて繰り返し処理を行って見ました。
また、応用編として、裏技もご紹介しました。
次回の講座ではfor文についての内容となっています是非ご覧ください。本日と違った繰り返し処理をご紹介しています。
- はい以上で、人工知能Ai講座のプログラミング講座を終了と致します。ご静聴ありがとうございました。