如何修复“零除法错误:浮点除零”

2024-05-06 00:33:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我有calcularBeta1方法。运行程序时,出现以下错误:

ZeroDivisionError: float division by zero

 resultadoB1 = (sumaXY - ((sumaX * sumaY ) / totalElementos )) / (sumaXCuadrada - math.pow(sumaX, 2) / totalElementos)

计算方法1

^{pr2}$

讲师班

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)

Tags: floatprintbeta1operacionesdatosbeta0archivolineas
3条回答

当你试图把一个数除以0时,ZeroDivisionError就发生了,你知道这在数学上是不可能的,只要改变被除数的值。在

不要被零除。在

在它抱怨的表达中

resultadoB1 = (sumaXY - ((sumaX * sumaY ) / totalElementos )) / (sumaXCuadrada - math.pow(sumaX, 2) / totalElementos)

要么是totalElementos,要么是{}的结果为零。在

在计算公式之前,您需要添加代码来处理这些情况的可能性。在

Python无法将数字除以0。如果您试图除以0,python将抛出一个ZeroDivisionError,这就是发生在您身上的情况。解决这个问题的最好方法是不除以零。可以使用if语句确保值不为零。在

相关问题 更多 >