首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TypeError:类型为'int‘的对象在使用sop.brute时没有len()

TypeError:类型为'int‘的对象在使用sop.brute时没有len()
EN

Stack Overflow用户
提问于 2018-05-18 06:36:42
回答 1查看 544关注 0票数 0

我使用Python3.6,我一直对这个问题感到困惑,因为time..so很长,这是我的代码。

代码语言:javascript
复制
def fo(x,y):
    z=np.sin(x)+0.05*x**2+np.cos(y)+0.05*y**2
    if output == True:
        print("%8.4f %8.4f %8.4f" % (x,y,z))
        return z

import scipy.optimize as sop

sop.brute(fo,(-10,10.1,5),(-10,10.1,5),finish = None)

下面是我遇到的错误:

代码语言:javascript
复制
Traceback (most recent call last):

  File "<ipython-input-12-c7886e35ff4b>", line 1, in <module>
    sop.brute(fo,(-10,10.1,5),(-10,10.1,5),finish = None)

  File "C:\ProgramData\Anaconda3\lib\site-packages\scipy\optimize\optimize.py", line 2811, in brute
    if len(lrange[k]) < 3:

TypeError: object of type 'int' has no len()

以下是另一次尝试:

代码语言:javascript
复制
r1=slice(-10,10.1,5)

r2=slice(-10,10.1,5)
sop.brute(fo,r1,r2,finish = None)

而错误是:

代码语言:javascript
复制
Traceback (most recent call last):

  File "<ipython-input-48-230c07265998>", line 1, in <module>
    sop.brute(fo,r1,r2,finish = None)

  File "C:\ProgramData\Anaconda3\lib\site-packages\scipy\optimize\optimize.py", line 2804, in brute
    N = len(ranges)

TypeError:'slice‘类型的对象没有len()

代码语言:javascript
复制
sop.brute(fo,(r1,r2),finish = None)

TypeError: fo() missing 1 required positional argument: 'y'

我是新来的,如果我问了一个愚蠢的问题,很抱歉,但我不能解决很多问题。

EN

回答 1

Stack Overflow用户

发布于 2021-02-01 08:56:55

代码语言:javascript
复制
def fo(p):
    x, y = p
    z = np.sin(x)+0.05*x**2+np.sin(y)+0.05*y**2
    if output == True:
        print('%8.4f %8.4f %8.4f' % (x,y,z))
    return z

解压元组,如代码中所示

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50405177

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档