質問編集履歴

1

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

2021/02/02 11:47

投稿

studioperon
studioperon

スコア1

test CHANGED
File without changes
test CHANGED
@@ -58,53 +58,91 @@
58
58
 
59
59
 
60
60
 
61
+
62
+
63
+
64
+
65
+ 追記
66
+
67
+ TypeError が出たのですが
68
+
69
+ これは、「関数の呼び出し部分が整数値でない」という意味であっていますか?
70
+
71
+
72
+
73
+ 少し調べましたがエラーメッセージを正しく解釈できているかわかりません。
74
+
75
+ また、これに対する解決案も何かありましたらよろしくお願いします。
76
+
77
+
78
+
79
+
80
+
61
81
  ### 発生している問題・エラーメッセージ
62
82
 
63
83
 
64
84
 
65
- ```
85
+ > Traceback (most recent call last):
86
+
87
+ File "<stdin>", line 1, in <module>
88
+
89
+ File "main.py", line 28, in eval_poly
90
+
91
+ return a * eval_poly(p.next, a) + p.info
92
+
93
+ File "main.py", line 28, in eval_poly
94
+
95
+ return a * eval_poly(p.next, a) + p.info
96
+
97
+ File "main.py", line 28, in eval_poly
98
+
99
+ return a * eval_poly(p.next, a) + p.info
100
+
101
+ TypeError: unsupported operand type(s) for *: 'int' and 'NoneType'
66
102
 
67
103
 
68
104
 
69
- Traceback (most recent call last):
70
105
 
71
- File "<stdin>", line 1, in <module>
72
-
73
- File "main.py", line 30, in eval_poly
74
-
75
- return eval_poly(p.next, b) * b + p.info
76
-
77
- File "main.py", line 30, in eval_poly
78
-
79
- return eval_poly(p.next, b) * b + p.info
80
-
81
- File "main.py", line 30, in eval_poly
82
-
83
- return eval_poly(p.next, b) * b + p.info
84
-
85
- [Previous line repeated 1 more time]
86
-
87
- AttributeError: 'NoneType' object has no attribute 'next'
88
-
89
- ```
90
106
 
91
107
 
92
108
 
93
109
  ### 該当のソースコード
94
110
 
95
- def eval_poly(p,b):
111
+ ```python
96
112
 
97
- return eval_poly(p.next, b) * b + p.info
113
+ def eval_poly(p,a):
98
114
 
115
+ if p is None:
99
116
 
117
+ return None
100
118
 
119
+ else:
101
120
 
121
+ return a * eval_poly(p.next, a) + p.info
122
+
123
+
124
+
125
+ ```
102
126
 
103
127
  ### 試したこと
104
128
 
105
129
 
106
130
 
131
+ ```python
132
+
133
+ def eval_poly(p,b):
134
+
135
+ return eval_poly(p.next, b) * b + p.info
136
+
137
+ ```
138
+
139
+ というコードでは、
140
+
107
- eval_polyで引数にとるリストpについて、p.infoの値を別の変数に代入したりもしてみましたが、肝心の再帰性の部分が機能しないことには変わりませんでした。
141
+ AttributeError: 'NoneType' object has no attribute 'next'
142
+
143
+ のメッセージが出ました。これは再帰呼び出しの停止条件がなかったためだと
144
+
145
+ ご指摘をいただきました。
108
146
 
109
147
 
110
148