Python问题,类型错误:“quot&引用;浮点对象不能解释为整数;。Can';t返回“中的函数值”;至于;环
我需要创建函数g(n),它给出从1到n(包括1和n)的十进制数的总和 然后我必须创建一个3x5矩阵,其中行和列是g的函数(I*j-2*I^pi),I和j是行和列的索引。这就是我目前所做的: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
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
。此外,负上限的范围将返回空白。