python - 在python中迭代整数时出错
问题描述
我正在尝试计算不同 n 的伯努利多项式。我收到一个错误,我无法迭代整数,我看过不同的帖子,但仍然无法正确处理。我读到我必须将整数更改为字符串才能迭代它们,但它仍然不起作用。你能帮我吗?
import scipy.special
def cub(x):
return x*x*x
def bernoulli(k,n,x):
a=scipy.special.binom(n, k)
return cub(k/n)*a*x**k*(1-x)**(n-k)
def suma(n,x):
s=0
for str(k) in range (0,n):
s=s+bernoulli(k,n,x)
return s
错误来自最后一段的迭代。当我将 str(k) 更改为 k 时,我得到错误 'int' object is not iterable。
解决方案
消除 for str(k) in range (0,n):
做了for k in range (0,n):
您不能在函数中转换迭代器
import scipy.special
def cub(x):
return x*x*x
def bernoulli(k,n,x):
a=scipy.special.binom(n, k)
return cub(k/n)*a*x**k*(1-x)**(n-k)
def suma(n,x):
s=0
for k in range (0,n):
s+=bernoulli(k,n,x)
return s
print(cub(10))
print(bernoulli(1, 2, 3))
print(suma(14, 2))
输出
cub 1000
bernoulli -1.5
suma -16376.826530612321
推荐阅读
- express - 如何使用条件验证 - “大于”和“小于”与 express.js 中的 express-validators?
- c++ - 向上转换为与私有继承的接口
- javascript - agGrid - 如何隐藏动态生成的列
- axapta - Max() 内连接
- python - 将 URL 发送到 Flask 端点会导致 500 错误
- vue.js - Vue3 单元测试:[Vue 警告]:组件缺少模板或渲染功能
- node.js - Express.js _ 如何使用两个静态视图目录?
- java - 有没有用Java制作钢琴图形的好方法?
- c# - 与多个应用程序共享 HidDevice
- json - Bash JSON 处理 - 如何测试数组中的所有对象是否都满足条件