/ / Erreur étrange dans python 3.2 - python, python-3.x, erreur de syntaxe

Erreur étrange dans python 3.2 - python, python-3.x, erreur de syntaxe

Le code suivant permet de trouver la moyenne d'un ensemble de nombres en entrée.

#!/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)

Cependant, chaque fois que j'exécute le programme, l'entrée même numérotée me donne une erreur même si je saisis un nombre. Voici l'exemple de sortie.

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

Cependant, ce code fonctionne bien si je décommente la ligne avant l'instruction else:. Quelqu'un peut-il me dire ce qui se passe ici?

Merci d'avance.

Réponses:

1 pour la réponse № 1

Votre problème est une question de copier / coller.

La ligne

number = int(line)

Génère l'erreur

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

Cela signifie que la ligne

line = input("integer: ")

Doit avoir reçu l'entrée:

"integer: 6"

Et la seule façon dont il aurait pu recevoir ceci, est si c'est ce que vous avez entré. De toute évidence, vous ne seriez pas assez stupide pour type dans "entier: 6". Par conséquent, la seule raison qui explique que cela se produise est que vous avez coupé et collé votre entrée précédente sans vous rendre compte que vous en avez trop quand vous copiez, ce qui m’arrive tout le temps.