- ベストアンサー
Pythonの機械学習コードでエラーが消えません
- Pythonの機械学習のコードでエラーが消えません。プログラムを書き、エラーを消していったが最後に残ったエラーが解決できません。
- 動画を元にプログラムを部分ごとに分割して実行し、エラーを解消していったが、最後のエラーが解決できません。
- エラーを解消するために、一部のコードを確認し、上手く動くことを確認したが、連結後にエラーメッセージが表示されます。素因数分解や条件分岐を使って解決しようとしましたが、うまくいきません。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
いやあの、デバッグまではしませんので自分でやりたいように組んでくださいね? ただいくつかアドバイス > for tnt in range(1,big_num): # while True にしたかったんですが、繰り返し変数を利用したかったので big_num で代用します。 ここの件は、 tnt = 0 while True tnt += 1 こうすれば1ずつ増えて永久ループするので、big_numなんて定義しなくて済みます。 でもその次、 > odd = 2*tnt-3 > even = 2*tnt-4 odd と even が必ずtotal_list 要素数の範囲に収まる計算式にするか、範囲外になってしまうときは total_list[x] へのアクセスをしない、というような組み方をする必要があるでしょう。 あるいは1ループに total_list が2要素ずつ増えるのであれば、その式のままでもいいかもしれませんが。
その他の回答 (1)
- asciiz
- ベストアンサー率70% (6803/9674)
ちょっとprintデバッグしてみました 61行を含むif文の前で、 print(total_list, odd, even) を入れて実行したところ、以下の表示になりました。 C:\Users\xxxxxxxx\Desktop\python>python gakusyuu.py [286.3096629213483] -1 -2 [286.3096629213483, 286.5959725842696] 1 0 [286.3096629213483, 286.5959725842696, 286.5139993611875] 3 2 Traceback (most recent call last): File "gakusyuu.py", line 76, in <module> random_leaner() File "gakusyuu.py", line 61, in random_leaner elif total_list[odd]-total_list[even] < 0: IndexError: list index out of range ループ三回目で、total_list の要素は3つとなっています。 要素が3つであるリストの取れるインデックス値は、0・1・2までです。 ところが odd = 3 となっていて、total_list[3] にアクセスしようとしてしまいますから、範囲外エラーが出ています。 プログラム全体を見たわけではないので何をしたいかはよくわかっていませんが、とりあえず。
お礼
回答ありがとうございます!
お礼
ありがとうございます。 後はなるだけ自力でやってみます。