이 프로그램을 실행하는 데 지겹지 만 15 행에서 위의 오류가 발생합니다. 하나의 표현식을 사용하는 preorder 산술 표현식을 평가하는 프로그램 표준 입력과 출력 결과타입 오류 슬라이스 인덱스는 정수 또는 없음 또는 __index__ 메소드가 있어야합니다.
return (preOrder(lst [ 1 : ((len(lst)+1)/2) ]) + preOrder(lst [ (len(lst) + 1)/2 : ]))
을에서 여기 내 프로그램
def preOrder(lst) :
if len(lst) == 3 :
if lst[0] == '+' :
return lst[1] + lst[2]
elif lst[0] == '-' :
return lst[1] - lst[2]
elif lst[0] == '*' :
return lst[1] * lst[2]
elif lst[0] == '/' :
return lst[1]/lst[2]
elif lst[0] == '%' :
return lst[1] % lst[2]
else :
if lst[0] == '+' :
return (preOrder(lst [ 1 : ((len(lst)+1)/2) ]) + preOrder(lst [ (len(lst) + 1)/2 : ]))
elif lst[0] == '-' :
return preOrder(lst [ 1 : ((len(lst)+1)/2) ]) - preOrder(lst [ (len(lst) + 1)/2 : ])
elif lst[0] == '*' :
return preOrder(lst [ 1 : ((len(lst)+1)/2) ]) * preOrder(lst [ (len(lst) + 1)/2 : ])
elif lst[0] == '/' :
return preOrder(lst [ 1 : ((len(lst)+1)/2) ])/ preOrder(lst [ (len(lst) + 1)/2 : ])
elif lst[0] == '%' :
return preOrder(lst [ 1 : ((len(lst)+1)/2) ]) % preOrder(lst [ (len(lst) + 1)/2 : ])
pre = ['+', '+', 6, 3, '-', 8, 4]
print ("preorder:")
print (pre)
print (preOrder(pre))
그리고 그것이 내 시스템에서 작동하는지 궁금해. :) –