- くだすれPython(超初心者用) その27©2ch.net
471 :デフォルトの名無しさん[age]:2015/10/10(土) 13:53:22.01 ID:/rn3qk7+ - >>456
「みんなのPython第3版」は持っています。時々、部分的に参照しています。 連想配列のことも、この本の後ろの索引には載ってましたが、「ディクショナリはハッシュ(連想 配列に似ている)」みたいに書かれているだけでした。 >>462 さっそく、その方法を今、試してみました。range(446)のfor文から print months を対話シェルで実行してみたところ、 [33,28,36,43,41,43,39,36,40,32,40,36] と表示されていました。 私が、こういう感じのものが見えない部分で計算・表示されているのでは?と脳裏に イメージしていたのと同様のものが、実際に表示されてて、嬉しかったです。 ありがとうございます。教えていただいたように、コードが分からない時には、 print文で、小さくチェックして動作検証を行うというスタイルを試すようにしてみます。 「small is beautiful」というプログラミング言語に関する格言もあるようですし。 まさに、pythonの対話シェルの仕様など、その利点を生かせそうです。 ちなみに上記のリストの要素の値を全部足してみたところ、447になっているので、 range(446)=447 ということで、乱数がインデックスに配分されてインクリメント +1された値も、当然ながら無事に合致してました。
| - くだすれPython(超初心者用) その27©2ch.net
475 :デフォルトの名無しさん[age]:2015/10/10(土) 15:06:45.71 ID:/rn3qk7+ - >>473
range(10)だと、0〜9の意味なので、 range(446)たと、0〜445になって、 各インクリメントごとに+1の仕様なので、ご指摘の疑問のように 計446になっていてよさそうなものなのに、でも、理由が分かりました。 別の計算をしてリストの要素のひとつに1が入った状態のまま合計してしまったので +1増えた状態で計算してしまったみたい。 なので、もう一度、対話シェルを使ってやり直してみると、 months[34,34,39,33,34,38,27,41,33,46,46,41] で各要素を合計したところ、446になったので=range(446)で、今度は合ってますね。 たぶん、インデックスの数え方が0から始まるので+1なっていてもいいのだと、 勘違いしていたので、range(446)=447でOKなのだと、誤解していました。 ご指摘、ありがとうございます。
|
|