如何修复“ZeroDivisionError:浮点数除以零”

新手上路,请多包涵

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

ZeroDivisionError:浮点数除以零

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

方法 calcularBeta1

 def calcularBeta1(self, lista):
    actual = lista.nodoInicio
    sumaXY = 0
    sumaX = 0
    sumaY = 0
    sumaXCuadrada = 0
    totalElementos = 0
    while actual != None:
        dato1 = actual.dato1
        dato2 = actual.dato2
        sumaXY += dato1 * dato2
        sumaX += dato1
        sumaY += dato2
        sumaXCuadrada += math.pow(dato1, 2)
        totalElementos += 1
        actual = actual.siguienteNodo

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

LecturaArchivo 类

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)

原文由 Héctor García 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1k
2 个回答

ZeroDivisionError 发生在您尝试将数字除以 0 时,正如您所知,这在数学上是不可能的,只需更改被除数的值即可。

原文由 J_Zoio 发布,翻译遵循 CC BY-SA 4.0 许可协议

不要除以零。

在它抱怨的表达中

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

它将是 totalElementossumaXCuadrada - math.pow(sumaX, 2) 的结果为零。

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

原文由 Ouroborus 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题