pythonにて、再帰的合計関数の勉強をしております。
テキストにて、『1つ目の要素と、残りの要素の合計』の算出方法を学んでいるのですが、
『1つ目の要素と、2つ目の要素と、残りの要素の合計』も同じ方法でできるのかと考えたところ、
以下エラーとなりました。
なぜエラーとなるのか、エラー解消方法を教えて頂きないでしょうか。
言葉不足な点があるかと思いますが、どうぞよろしくお願いします。
==↓以下、エラーとなった内容========================================================
【Editer】
marbles = [10,13,39,14,41,9,3]
def recursive_compute_sum(lists):
if len(lists) == 0:
return 0
else:
first = lists[0]
second = lists[1]
rest = lists[2:]
sums = first + second + recursive_compute_sum(rest)
return sums
sums = recursive_compute_sum(marbles)
print('The total is', sums)
【shell】
Traceback (most recent call last):
File "C:/Users/USER/Desktop/python/ch8/tests_sum.py", line 15, in <module>
sums = recursive_compute_sum(marbles)
File "C:/Users/USER/Desktop/python/ch8/tests_sum.py", line 11, in recursive_compute_sum
sums = first + second + recursive_compute_sum(rest)
File "C:/Users/USER/Desktop/python/ch8/tests_sum.py", line 11, in recursive_compute_sum
sums = first + second + recursive_compute_sum(rest)
File "C:/Users/USER/Desktop/python/ch8/tests_sum.py", line 11, in recursive_compute_sum
sums = first + second + recursive_compute_sum(rest)
File "C:/Users/USER/Desktop/python/ch8/tests_sum.py", line 9, in recursive_compute_sum
second = lists[1]
IndexError: list index out of range
==↓以下、勉強内テキストより========================================================
【Editer】
marbles = [10,13,39,14,41,9,3]
def recursive_compute_sum(lists):
if len(lists) == 0:
return 0
else:
first = lists[0]
rest = lists[1:]
sums = first + recursive_compute_sum(rest)
return sums
sums = recursive_compute_sum(marbles)
print('The total is', sums)
【shell】
The total is 129
回答1件
あなたの回答
tips
プレビュー