0
링크 된 목록을 반복하는 함수를 작성하려고하면 홀수를 모두 합한 다음 합계를 표시합니다. 여기 내가 지금까지 가지고있는 것입니다 :파이썬에서 연결된 목록과 패턴 사용
from List import *
def main():
array = eval(input("Give me an array of numbers: "))
ArrayToList(array)
print(array[0])
print(array[1])
print(array[2])
print(array[3])
print(sumOdds(array))
def isOdd(x):
return x % 2 != 0
def sumOdds(array):
if (array == None):
return 0
elif (isOdd(head(array))):
return head(array) + sumOdds(tail(array))
else:
return sumOdds(tail(array))
main()
실제로 합계를 인쇄 할 수는 없습니다. 아무도 나를 도와 줄 수 있니? 파이썬에서
$ python3 1.py
Give me an array of numbers: [11, 5, 3, 51]
Traceback (most recent call last):
File "1.py", line 22, in <module>
main()
File "1.py", line 10, in main
print(sumOdds(array))
File "1.py", line 19, in sumOdds
return head(array) + sumOdds(tail(array))
File "1.py", line 18, in sumOdds
elif (isOdd(head(array))):
File "/Users/~/cs150/practice3/friday/List.py", line 34, in head
return NodeValue(items)
File "/Users/~/cs150/practice3/friday/List.py", line 12, in NodeValue
def NodeValue(n): return n[0]
TypeError: 'int' object is not subscriptable
특히'import' 문 ('head'와'tail'은 어디에 정의되어 있습니까?)과'List.py' 파일 (오류 메시지에서 언급)을 포함하여 완전한 코드를 게시해야합니다. – Gilles
ArrayToList 란 무엇입니까? – Bucket
게시 한 추적을보십시오. 'sumOdds'는 자신을 호출 한 다음'head()'를 호출하려고 시도했고 그 함수의 어딘가에서'NodeValue'를 호출해야했습니다. 이 'NodeValue' 함수는리스트 나 다른 subscriptable 데이터 타입을 전달해야하지만'int'가 전달되었습니다 – jshanley