python - 正弦函数之和 - 类型错误浮点对象不可迭代
问题描述
我正在尝试开发一个计算正弦之和的函数。
我尝试的第一个功能是:
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()
需要一个可迭代的作为参数,但在S1
你传递给它一个浮点数。
这是解决方案:
def S1(t1, n1, T1):
results = []
for i in range(1, n1 + 1):
results.append((1 / (2 * i - 1)) * sin(2 * (2 * i - 1) * pi * t1 / T1))
return (4 / pi) * sum(results)
推荐阅读
- c - 为什么我的巴比伦算法 2 不适用于 n=65?
- openssl - OpenSSL - 我在生成 CRL 时出错(创建序列号索引时出错:(2,7,9))
- r - 如果原假设为真,则绘制治疗效果的抽样分布
- amazon-web-services - 在 AWS SAM/Cloudformation 模板中管理阶段和生产环境以及 CI/CD 支持
- angular8 - 为什么绝对重定向和相对重定向在角度路由中的前缀路径匹配表现不同
- python - 如何在 python 中提取字符串中的 JSON 数据?
- tfs - 如何启用 CC.NET Build 以下载 Nuget pckages
- spring-boot - Intellij 无法解决 Spring Boot 项目的依赖关系
- django - 如何在 Django 的 SerializerMethodField 中返回查询集
- php - phpunit - 如何将属性作为对象进行测试