저는 입력 방정식과 입력 변수를 사용하여 합계를 취하는 sigsum() 함수를 만듭니다. 여기에 지금까지 가지고 무엇 : 기능의setattr()을 사용하여 문자열을 변수로 변환
def sigsum(eqn, index, lower=0, upper=None, step=1):
if type(step) is not int:
raise TypeError('step must be an integer')
elif step < 1:
raise ValueError('step must be greater than or equal to 1')
if upper is None:
upper = 1280000
if lower is None:
lower = -1280000
if (upper - lower) % step:
upper -= (upper - lower) % step
index = lower
total = 0
while True:
total += eqn
if index == upper:
break
index += step
return total
사용법 :
print(sigsum('1/(i+5)','i'))
>>> 12.5563
내 현재의 문제는 기능 지역 이름 공간 안에 존재하는 변수 '는 식'과 '지수'로 변환된다. 나는 exec를 사용하는 것이 좋은 생각이 아니며 아마도 setattr()이 작동 할 수도 있다고 들었다. 누구든지 나를 도울 수 있습니까? 감사합니다. . eqn
를 들어 내가 람다 함수를 사용하는 것이 좋습니다
ok. 나는 그런 생각을하지 않았다. 만약 내가 람다를 사용한다면 어떻게 나중에 eqn을 부를 수 있을까요? 현재 sigsum()이 여전히 작동합니까? –