/ / Podivná chyba v Pythone 3.2 - python, python-3.x, syntaktická chyba

Podivná chyba v Pythone 3.2 - python, python-3.x, chyba syntaxe

Nasledujúci kód slúži na nájdenie priemeru danej zadanej množiny čísel.

#!/usr/bin/env python3
print("Enter some integers")
count = 0
total = 0
while True:
line = input("integer: ")
if (line):
try:
number = int(line)
except ValueError as err:
print(err)
continue
total += number
count += 1
#print("Post",line)
else:
break
if count:
print("Count is ",count ,"Total is ",total,"Mean is ",total/count)

Avšak vždy, keď spustím program, dokonca očíslovaný vstup mi dáva chybu, aj keď zadávam číslo. Nasledovná je výstupná vzorka.

Enter some integers
integer: 4
integer: 5
invalid literal for int() with base 10: "integer: 5"
integer: 5
integer: 6
invalid literal for int() with base 10: "integer: 6"
integer:
Count is  2 Total is  9 Mean is  4.5

Tento kód však funguje správne, ak oddelím riadok pred vyhlásením else:. Môže mi niekto povedať, čo sa tu deje?

Vopred ďakujem.

odpovede:

1 pre odpoveď č. 1

Váš problém je otázka rezania a vlepovania.

Čiara

number = int(line)

Generuje chybu

invalid literal for int() with base 10: "integer: 6"

To znamená, že linka

line = input("integer: ")

Musí sa prijať vstup:

"integer: 6"

A jediný spôsob, ako to mohol dosiahnuť, je to, ak ste to zadali. Samozrejme, že by si nebol taký šeredný typ v "integer: 6". Z tohto dôvodu je to jediný dôvod, prečo ste skrátili a vložili svoje predchádzajúce vstupy, bez toho, aby ste si všimli, že ste mali veľa, keď ste skopírovali, čo je niečo, čo sa mi stane po celú dobu.