我有calcularBeta1辦法。當我運行該程序時,出現此錯誤:ZeroDivisionError:浮點除以零 resultadoB1 = (sumaXY - ((sumaX * sumaY ) / totalElementos )) / (sumaXCuadrada - math.pow(sumaX, 2) / totalElementos)方法calcularBeta1def 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講座檔案類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)
3 回答

幕布斯7119047
TA貢獻1794條經驗 獲得超8個贊
Python 無法將數字除以 0。如果您嘗試除以 0,python 會拋出一個ZeroDivisionError
,這就是您遇到的情況。修復它的最佳方法是不除以零。您可以使用if
語句來確保值不為零。

慕運維8079593
TA貢獻1876條經驗 獲得超5個贊
不要除以零。
在它抱怨的表達中
resultadoB1 = (sumaXY - ((sumaX * sumaY ) / totalElementos )) / (sumaXCuadrada - math.pow(sumaX, 2) / totalElementos)
要么要么totalElementos
結果sumaXCuadrada - math.pow(sumaX, 2)
為零。
在嘗試計算該公式之前,您需要添加代碼來處理這些情況的可能性。
添加回答
舉報
0/150
提交
取消