为什么我会收到错误:“TypeError: can't multiply sequence by non-int of type 'float'”?

Why do I get the error: "TypeError: can't multiply sequence by non-int of type 'float'"?

提问人:Ccamp 提问时间:4/25/2022 最后编辑:DharmanCcamp 更新时间:4/25/2022 访问量:897

问:

我正在尝试编写一个计算器来打印相对和绝对误差。在算法的最后一步中,我需要创建一个新列表来保留 Y 的新值,但我收到错误:

TypeError:无法将序列乘以“float”类型的非整数

代码如下:

#Metodo de minimos cuadrados 

#Crear lista
lstx = []
lsty = []

#Numero de elementos den el input 
n = int(input("¿Cuantos valores desea ingresar?"))

#Arreglo de x
for i in range (0,n):
        x = float(input("Ingrese los valores de x: "))
        lstx.append(float(x))
sumx = sum(lstx)

#Arreglo de y
for a in range (0,n):
        y = float(input("Ingrese los valores de y: "))
        lsty.append(float(y))
sumy = sum(lsty)

#Generamos lista de xy
lstxy = [x*y for x,y in zip(lstx,lsty)]
sumxy = sum(lstxy)

#Generamos lista de x^2
lst2 = [n**2 for n in lstx]
sum2 = sum(lst2)

#Calcular la pendiente
m = (sumxy - (sumx*sumy)/n) / (sum2 - (sumx*sumx)/n)

#Calcular la intercepción
promx = sumx / len(lstx)
promy = sumy / len(lsty)
b = promy - (m*promx)

#Obtener los nuevos valores de y
new = [(m*lstx)+b]
newY = []
for item in new:
        newY.append(float(item))
        
python 数组 列表 浮点

评论

0赞 mkrieger1 4/25/2022
为什么你认为你不应该得到这个错误?

答:

0赞 Oleg Lysytskyi 4/25/2022 #1

由于 Python 有很多不同的数据类型,例如 int、float、list...——你不能在任何地方使用它们的协作。您可以使用 type() 函数来获取变量的数据类型并查看问题所在。

print(type(m))
print(type(lstx))
print(type(b))

“m”和“b”变量是浮点数。“LSTX”是列表。你可以将整数与列表相乘不能用列表浮点),你不能在列表和不列表之间做加号运算。