teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

ご指摘いただいたように、停止の条件を加えてみました。

2021/02/02 11:47

投稿

studioperon
studioperon

スコア1

title CHANGED
File without changes
body CHANGED
@@ -28,30 +28,49 @@
28
28
  おそらく、関数の引数のリストのポインタが、Cell丸ごとではなく要素を直接指し示す、
29
29
  もしくは要素だけ再帰呼び出しをかける、などできたらうまくいくのではないか、と素人ながら考えているのですが、何かアイデアをいただけたらと思って投稿させていただきました。
30
30
 
31
+
32
+
33
+ 追記
34
+ TypeError が出たのですが
35
+ これは、「関数の呼び出し部分が整数値でない」という意味であっていますか?
36
+
37
+ 少し調べましたがエラーメッセージを正しく解釈できているかわかりません。
38
+ また、これに対する解決案も何かありましたらよろしくお願いします。
39
+
40
+
31
41
  ### 発生している問題・エラーメッセージ
32
42
 
33
- ```
34
-
35
- Traceback (most recent call last):
43
+ > Traceback (most recent call last):
36
44
  File "<stdin>", line 1, in <module>
37
- File "main.py", line 30, in eval_poly
45
+ File "main.py", line 28, in eval_poly
38
- return eval_poly(p.next, b) * b + p.info
46
+ return a * eval_poly(p.next, a) + p.info
39
- File "main.py", line 30, in eval_poly
47
+ File "main.py", line 28, in eval_poly
40
- return eval_poly(p.next, b) * b + p.info
48
+ return a * eval_poly(p.next, a) + p.info
41
- File "main.py", line 30, in eval_poly
49
+ File "main.py", line 28, in eval_poly
42
- return eval_poly(p.next, b) * b + p.info
50
+ return a * eval_poly(p.next, a) + p.info
43
- [Previous line repeated 1 more time]
44
- AttributeError: 'NoneType' object has no attribute 'next'
51
+ TypeError: unsupported operand type(s) for *: 'int' and 'NoneType'
45
- ```
46
52
 
47
- ### 該当のソースコード
48
- def eval_poly(p,b):
49
- return eval_poly(p.next, b) * b + p.info
50
53
 
51
54
 
55
+ ### 該当のソースコード
56
+ ```python
57
+ def eval_poly(p,a):
58
+ if p is None:
59
+ return None
60
+ else:
61
+ return a * eval_poly(p.next, a) + p.info
62
+
63
+ ```
52
64
  ### 試したこと
53
65
 
66
+ ```python
67
+ def eval_poly(p,b):
68
+ return eval_poly(p.next, b) * b + p.info
69
+ ```
70
+ というコードでは、
54
- eval_polyで引数にとるリストpについて、p.infoの値を別の変数に代入したりもしてみましたが、肝心の再帰性の部分が機能しないことには変わりませんでした。
71
+ AttributeError: 'NoneType' object has no attribute 'next'
72
+ のメッセージが出ました。これは再帰呼び出しの停止条件がなかったためだと
73
+ ご指摘をいただきました。
55
74
 
56
75
  ### 補足情報(FW/ツールのバージョンなど)
57
76