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ď č. 1Váš 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.