提问人:Ccamp 提问时间:4/25/2022 最后编辑:DharmanCcamp 更新时间:4/25/2022 访问量:897
为什么我会收到错误:“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'"?
问:
我正在尝试编写一个计算器来打印相对和绝对误差。在算法的最后一步中,我需要创建一个新列表来保留 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))
答:
0赞
Oleg Lysytskyi
4/25/2022
#1
由于 Python 有很多不同的数据类型,例如 int、float、list...——你不能在任何地方使用它们的协作。您可以使用 type() 函数来获取变量的数据类型并查看问题所在。
print(type(m))
print(type(lstx))
print(type(b))
“m”和“b”变量是浮点数。“LSTX”是列表。你可以将整数与列表相乘(不能用列表浮点),你不能在列表和不列表之间做加号运算。
评论