【发布时间】:2021-07-14 17:38:15
【问题描述】:
我正在尝试开发一个计算正弦和的函数。
我尝试的第一个函数是:
def S(t,n,T):
return (4/pi)*sum((1/(2*i-1))*sin(2*(2*i-1)*pi*t/T) for i in range(1,n+1))
然后当我使用以下参数调用函数时,我得到了0.2381 的答案:
S(0.01*2*pi,3,2*pi)
由于我对 Python 比较陌生,因此我尝试将此代码修改为:
def S1(t1,n1,T1):
s1 = 0
for i in range(1,n1+1):
s1 = s1 + (4/pi)*sum((1/(2*i-1))*sin(2*(2*i-1)*pi*t1/T1))
return s1
但是当我使用相同的参数调用函数 S1 时,我收到一条错误消息:
TypeError: 'float' object is not iterable.
有人可以解释这是为什么吗?我查看了与此 TypeError 相关的其他一些答案,但我不明白。
【问题讨论】:
-
你希望从
sum((1/(2*i-1)) ...得到什么? -
您可能只想摆脱 sum(),因为您在 for 循环中明确求和。
-
欢迎来到 SO;如果下面的某个答案解决了您的问题,请接受 - 请参阅 What should I do when someone answers my question?