La suma simple de números con 4 decimales no se hace correctamente. Por ejemplo, 0,2222 + 0,6666 = 0,88879999999999999. El código sería el siguiente:
fname = input("Enter file name: ")
fh = open(fname)
contador = 0
ncfs = 0
for line in fh:
if not line.startswith("X-DSPAM-Confidence:"):
continue
contador = contador + 1
sc = line.find(":")
nc = line[sc+1:]
ncse = nc.strip()
ncf = float(ncse)
ncfs = ncfs + ncf
media = ncfs/ contador
print("Average spam confidence:", media)
Para ver donde se produce el error, no haría falta más que imprimir las variables: ncf
y ncfs
.
Mi objetivo no es lograr un resultado final, si no entender por que sucede esto así. Les agradezco la ayuda o explicación de por qué sucede esto. Un saludo.