前回、バイブルである、『退屈なことはPythonにやらせよう』をちゃんと学習の原則に従ってやり直すことを決意しました。
p.23の2章からスタート。「入力しましょう」、とか「試してみましょう」とあったら、まずいう通りに手を動かしてやってみましょう。頭の中で考えてるだけよりはるかにクリアになってきます。これをサボってはいけません。
で、p.49ですが、以下のコードの話し。
はじめ、このnot nameの意味がよくわかりませんでした。だって、whileって例えばwhile A = B: みたいに後ろに式が来ると思っていたから。でも、この説明によると、
while not name: は、while name != 0 と同じ意味らしい。
同様に、if num_of_guests: も、if num_of_guests != 0:と同じ意味で、「if num_of_gestsが0でないなら」という意味らしい。え?最初の方は、name = ""とあったから納得だけど、こっちは何で?
なんでも、「ブール型以外に条件式としてTrueやFalseと同等とみなされるデータ型があります。0や""(空文字)を条件式として用いるとFalseとみなされ、他の値ならTrueとみなされます」「num_of_guestsの値が0でなければ、条件式はTrueとみなされるので、(ifの)プログラムは実行されます」とあります。うーややこしい。わからない。
先輩にききました。以下説明。
まず、Trueは1のこと、Falseは0のことです。
で、例えば、
になる。
そして、if 1: というのは、「もしTrue」ならということ。
もう一度問題のコードをみると、
となっている。つまり、
int(input())で0を打つと、num_of_guestsが0になるということであり、その結果こいつがFalseになること。
で、ifとは、「条件式がTrueのとき実行され、Falseならスキップされる」(p.31)なのだ。だから、ここで0が打たれると、ifプログラムはスキップされると。
なるほどー!
そういうことかと思いつつ、自分の頭の鈍さにショックをうける。
こっちの方が読みやすいというが、私は慣れるまで時間がかかりそうです。
p.23の2章からスタート。「入力しましょう」、とか「試してみましょう」とあったら、まずいう通りに手を動かしてやってみましょう。頭の中で考えてるだけよりはるかにクリアになってきます。これをサボってはいけません。
で、p.49ですが、以下のコードの話し。
はじめ、このnot nameの意味がよくわかりませんでした。だって、whileって例えばwhile A = B: みたいに後ろに式が来ると思っていたから。でも、この説明によると、
while not name: は、while name != 0 と同じ意味らしい。
同様に、if num_of_guests: も、if num_of_guests != 0:と同じ意味で、「if num_of_gestsが0でないなら」という意味らしい。え?最初の方は、name = ""とあったから納得だけど、こっちは何で?
なんでも、「ブール型以外に条件式としてTrueやFalseと同等とみなされるデータ型があります。0や""(空文字)を条件式として用いるとFalseとみなされ、他の値ならTrueとみなされます」「num_of_guestsの値が0でなければ、条件式はTrueとみなされるので、(ifの)プログラムは実行されます」とあります。うーややこしい。わからない。
先輩にききました。以下説明。
まず、Trueは1のこと、Falseは0のことです。
で、例えば、
になる。
そして、if 1: というのは、「もしTrue」ならということ。
もう一度問題のコードをみると、
となっている。つまり、
int(input())で0を打つと、num_of_guestsが0になるということであり、その結果こいつがFalseになること。
で、ifとは、「条件式がTrueのとき実行され、Falseならスキップされる」(p.31)なのだ。だから、ここで0が打たれると、ifプログラムはスキップされると。
なるほどー!
そういうことかと思いつつ、自分の頭の鈍さにショックをうける。
こっちの方が読みやすいというが、私は慣れるまで時間がかかりそうです。
No comments:
Post a Comment