我有calcularBeta1
方法。运行程序时,出现以下错误:
ZeroDivisionError: float division by zero
resultadoB1 = (sumaXY - ((sumaX * sumaY ) / totalElementos )) / (sumaXCuadrada - math.pow(sumaX, 2) / totalElementos)
class LecturaArchivo:
datosArchivo = ListaEnlazada()
operaciones = Operaciones()
xTemporal = 0
yTemporal = 0
nombreArchivo = input('Nombre del archivo: ')
archivo = open(nombreArchivo, "r")
lineas = archivo.read()
datos = lineas.split(',')
datoProxy = float(input('Proxy: '))
while lineas:
lineas = archivo.readlines()
xTemporal = datos[0]
yTemporal = datos[1]
datosArchivo.agregarNodoFinal(float(xTemporal), float(yTemporal))
print(datos)
sumaElementos = sum(datosArchivo.obtenerNodos())
mediaElementos = operaciones.media(sumaElementos, datosArchivo.tamano())
beta1 = operaciones.calcularBeta1(datosArchivo)
print('Beta1: ', beta1)
beta0 = operaciones.calcularBeta0(beta1, media)
print('Beta0: ', beta0)
yk = operaciones.calcularYK(beta0, beta1, datoProxy)
print('Regresión Líneal: ', yk)
当你试图把一个数除以0时,
ZeroDivisionError
就发生了,你知道这在数学上是不可能的,只要改变被除数的值。在不要被零除。在
在它抱怨的表达中
要么是}的结果为零。在
totalElementos
,要么是{在计算公式之前,您需要添加代码来处理这些情况的可能性。在
Python无法将数字除以0。如果您试图除以0,python将抛出一个
ZeroDivisionError
,这就是发生在您身上的情况。解决这个问题的最好方法是不除以零。可以使用if
语句确保值不为零。在相关问题 更多 >
编程相关推荐