Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python问题,类型错误:“quot&引用;浮点对象不能解释为整数;。Can';t返回“中的函数值”;至于;环_Python_Function - Fatal编程技术网

Python问题,类型错误:“quot&引用;浮点对象不能解释为整数;。Can';t返回“中的函数值”;至于;环

Python问题,类型错误:“quot&引用;浮点对象不能解释为整数;。Can';t返回“中的函数值”;至于;环,python,function,Python,Function,我需要创建函数g(n),它给出从1到n(包括1和n)的十进制数的总和 然后我必须创建一个3x5矩阵,其中行和列是g的函数(I*j-2*I^pi),I和j是行和列的索引。这就是我目前所做的: import numpy as np import matplotlib.pyplot as plt def g(n): return np.sum(range(1,n+1)) M = np.ones([3,5]) for i in range(3): for j in range(5

我需要创建函数g(n),它给出从1到n(包括1和n)的十进制数的总和

然后我必须创建一个3x5矩阵,其中行和列是g的函数(I*j-2*I^pi),I和j是行和列的索引。这就是我目前所做的:

import numpy as np
import matplotlib.pyplot as plt

def g(n):
    return np.sum(range(1,n+1)) 

M = np.ones([3,5])

for i in range(3):
    for j in range(5):
        M[i,j] = g(i*j - 2*i**np.pi)  
主要问题是内核说“float”对象不能解释为整数


任何帮助都将是伟大的,为我糟糕的英语抱歉,我想说,编码对我来说是一个非常新的话题,所以真的任何帮助都是伟大的。非常感谢

问题在于将
float
参数传递给
g
函数的
for
循环中,该函数随后用作
range()
的参数,该函数只取
int
。尝试:

将numpy导入为np
将matplotlib.pyplot作为plt导入
def g(n):
返回np.和(范围(1,n+1))
M=np.one([3,5])
对于范围(3)中的i:
对于范围(5)内的j:
M[i,j]=g(int(i*j-2*i**np.pi))
编辑: 有点猜测,但也许这就是你想要的:

将numpy导入为np
def g(n):
返回np.和(范围(1,n+2))
M=np.one([3,5])
对于范围(3)中的i:
对于范围(5)内的j:
M[i,j]=g(整数(整数(i*j-2*i**np.pi,0)))

round
将对数字进行四舍五入,而不是截断它,并且将
g
-s上限提高到
n+2
将确保捕获
n+1

您不能调用
范围(f)
其中
f
是一个浮点,这就是您得到的选择。我想你应该使用
int(n)+1
而不是
n+1

欢迎使用SO!这个标题几乎毫无意义——更具体一些会让你更容易得到帮助。谢谢。如果可以的话,请将您的标题更改为有用的:)
i*j-2*i**np.pi
对于i,j=2,0等于-17.64995565 g应该返回什么?@splash58应该返回什么,谢谢您我在哪里更改标题的名称,对不起,我是新来的谢谢@grzegorz,现在它没有给我错误,但是矩阵中的值不是它应该得到的,它大部分是0,你能澄清一下吗,你想通过
g
函数得到什么?只需添加-
范围(1,n+1)~1,2,…,n
。此外,负上限的
范围将返回空白。