Python For Everybody Week7

Python For Everybody Week7

この記事は、過去の記事の続きですので、まだご覧になられてない方はこちらもどうぞ!

今回はこちら。

ついに最終週になりました!内容は、Loopですね。forとwhileが出てくるんだと思います。まだ全然pythonっぽくなくてつまらないけど、地道にこなしていきます!

whileはこうやって書いていきますよ~ってところから始まっていきますね。

while後に定義される条件がTRUEの限りずっと同じことを繰り返します。だから例えば

n = 5
while n > 0:
    print(n)

なんてコードを書いた暁には、パソコンが終わってしまいます(笑)

「これはnの値が0以上ならずっとprintし続ける」という条件なのですが、nの値ずっと変わらないですよね。

だから、n = n – 1という記述が大事になります。これがforとの違いでした。

あ、ちなみに今週は41分の動画量でした。

次は最大値や最小値を取り出す条件式を作っていきます。

こんな感じ。

どの言語でも一緒で、1つ1つ数字の大小ゲームをやっていって、もし値を更新したら、新しい数字を代入する。

っていうのの繰り返しです。数字取り出し系はだいたいそう。(笑)

for文の解説もありましたが、ちょっとめんどくさくなってきたので、今週のテストに行きましょう!

今週はついに80%でぎりぎりでした。もうちょっと丁寧にやればよかったけど、まぁ良いです!

そして、最終課題がこちら!

input()を使って、Userが”done”っていうまで数字を聞き続けろ!ちがうこと言ったら、”Invalid value”って表示させろ!あとは、try/exceptの文法を使って、変なこと言ったらやめさせろ!

っていう指示ですね。んで、僕が実際に書いたのがこちら

largest = None
smallest = None
while True:
    num = input("Enter a number: ")
    if num == "done" : break
        
    try:
        fnum = int(num)
    except:
        print('Invalid input')
        continue
        
    if largest == None and smallest == None:
        largest = fnum
        smallest = fnum
        
    elif fnum > largest:
        largest = fnum
    elif fnum < smallest:
        smallest = fnum
        
    
    
    #print(num)

print("Maximum is", largest)
print("Minimum is", smallest)

最初の定義がNoneで始まっていることに慣れず違和感でしたが、最大値と最小値をもってきたいとき、最初に比較する数字を決められないのが難しかったです。

たとえば、4,64,23,1

の中で一番小さいのは1だから、

最小値を探すときに、最初の数字を100に定義して

4は100より小さい? → YES

64は4より小さい? → NO

という風に進んで聞けると思うのですが、

最初の数字を-1とかにしてしまうと

Userの入れる数字は関係なく、最小値が-1になってしまいます。

Userが打ち込める数字が決まっていたらいいですけど、それだとスマートじゃないので、Noneで定義しています。

つまり、最初の条件分岐で、変数がNoneのときだけ、User Inputを格納することができるから、次からの比較がUser Inputのみで成り立つのです。

ちょっと、説明できてるか不明だけど、僕が理解したのはこういうこと!(笑)

文章が多くなってしまいましたが、、、

リクエストによると、7,2,bob,10,4,done

の順番に打ち込んでほしいそうなので打ち込んでいきます。

ちゃんとbobも打ちました(笑)

んでー、done!!!

無事ほしかった結果が出ました。

ここまでです!!!!

そしてついに!!!!

やりましたよ!!

初めてcourseraのコースを完走できました!

初めてやったのが、stanfordの機械学習で、むずくて挫折しちゃいましたけど、今回はちゃんとやり切れてよかったです

そういう意味でいうと、面倒くさがりの僕でもできたから、初めてのpythonコースとしては、完走しやすいコースだったんじゃないかなって思います。

じゃーーーん!

以下、4つのスキルが身に付きました。

そしてこちらが修了証!

かっこいいですね!とても満足です。よかったよかった。

こうやって、LinkedInの資格欄にも書くことができました。なんかいいですね!

これでもちろん終わりではありません。pythonコースはあと3,4つあるそうなので、頑張って他のも続けてみようと思います!

それではまた!