Je suis assez nouveau dans Python, et ce qui me rend fou de mon problème, c’est que j’ai l’impression que c’est très simple. Je continue à avoir une erreur à la ligne 8. Je veux juste que ce programme prenne les chiffres saisis par l’utilisateur et imprime le plus grand et le plus petit, et je veux qu'il annule la boucle s'ils entrent négatif 1.
'int' object is not iterable
est l'erreur.
print "Welcome to The Number Input Program."
number = int(raw_input("Please enter a number: "))
while (number != int(-1)):
number = int(raw_input("Please enter a number: "))
high = max(number)
low = min(number)
print "The highest number entered was ", high, ".\n"
print "The lowest number entered was ", low, ".\n"
raw_input("\n\nPress the enter key to exit.")
Le problème est que number
est une int
. max
et min
nécessitent tous deux des listes (ou autres éléments itérables) - vous devez donc ajouter number
à une liste comme celle-ci:
number = int(raw_input("Please enter a number: "))
num_list = []
while (number != int(-1)):
num_list.append(number)
number = int(raw_input("Please enter a number: "))
high = max(num_list)
low = min(num_list)
Juste comme une note après avoir lu la réponse de dr jimbob - ma réponse suppose que vous ne voulez pas vouloir rendre compte de -1 lorsque vous trouvez high
et low
.
En effet, chaque fois que vous passez un argument entier à max et min et que python ne sait pas quoi en faire.
Ether passe au moins deux arguments:
least_number = min(number1, number2,...,numbern)
ou un iterable:
least_number = min([number1, number2, ...,numbern])
Voici le doc
Vous devez changer le numéro en une liste de numéros. Par exemple.,
print "Welcome to The Number Input Program."
numbers = []
number = int(raw_input("Please enter a number: "))
while (number != -1):
numbers.append(number)
number = int(raw_input("Please enter a number: "))
high = max(numbers)
low = min(numbers)
print "The highest number entered was ", high, ".\n"
print "The lowest number entered was ", low, ".\n"
raw_input("\n\nPress the enter key to exit.")
Comme mentionné par une autre réponse , min
et max
peut également prendre plusieurs arguments. Pour omettre la liste, vous pouvez
print "Welcome to The Number Input Program."
number = int(raw_input("Please enter a number: "))
high = low = number
while (number != int(-1)):
number = int(raw_input("Please enter a number: "))
high = max(high, number)
low = min(low, number)
print "The highest number entered was ", high, ".\n"
print "The lowest number entered was ", low, ".\n"
raw_input("\n\nPress the enter key to exit.")