Mi lehet a hiba ebben a Python 3 programkódban?
fname = input("Enter file name: ")
fh = open(fname)
fhText = fh.read()
count = 0
summary = 0
confidence = 'X-DSPAM-Confidence: 0.8475'
numberPosition = confidence.find('0')
for line in fhText:
if not line.startswith("X-DSPAM-Confidence:"):
continue
count = count + 1
number = float(line[numberPosition:])
summary = summary + number
average = summary / count
print("Average spam confidence:", average)
Többször is lefuttattam, jól írtam be az inputnál a fájl nevét.
Valamiért nem változik a count változó értéke, pedig a keresett string benne van a vizsgált fájl szövegében. (Traceback-nél azt írja, nullával való osztás van a kódban.)
Erre semmi szükség:
fhText = fh.read()
a for pedig helyesen:
for line in fh:
Nem futattam le, de ránézésre ezzel van porbléma.
Rosszul olvasod be a filet. Ezt nem igy kell. Ha kiiratod a line valtozot, akkor latni fogod, hogy a sorokat karakterekre szedte szet. Igy kell file/t beolvasni:
with open(fname) as fh:
for line in fh:
print(line)
Akkor kezd el debugolni.
Azt látod, hogy az átlag nem jó.
Hány sort talál meg? Megtalálja mindent?
Amikor a number változóba beolvasod a konfidencia értékeket, akkor ott jó értéke van?
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!