pour le problème suivant: Mon programme ne montre pas correctement les ANS. Quel est le problème ici?
Écrivez un programme qui invite à plusieurs reprises à un utilisateur pour des numéros entier jusqu'à ce que l'utilisateur entre effectué code>.
Une fois «fait» est entré, imprimez le plus grand et le plus petit des chiffres. de
Si l'utilisateur entre autre chose d'autre qu'un numéro valide l'attrape avec un essai / sauf et définissez un message approprié et ignorez le nombre. de
Cas d'entrée:
Entrez 7, 2, Bob, 10 et 4 et faites correspondre la sortie ci-dessous.
p> while True:
inp = input("Enter number: ")
if inp == "done":
print("done")
break
try:
inp_data = int(inp)
except:
print("Invalid input")
if smallest is None:
smallest = inp_data
elif inp_data < smallest:
smallest = inp_data
elif inp_data > largest:
largest = inp_data
print("largest", largest)
print("smallest", smallest)
3 Réponses :
Il vous manque quelques instructions lors de l'impression de la sortie.
Le code suivant a fonctionné pour moi.
largest = None smallest = None while True: num = input("Enter a number: ") if num == "done": break try: #print(num) num = int(num) if largest is None or largest < num: largest = num elif smallest is None or smallest > num : smallest = num except ValueError: print("Invalid input") continue print("Maximum is", largest) print("Minimum is", smallest)
Essayez ce code et merci plus tard
largest = None smallest = None while True: val = input("Enter a number: ") if val == "done": break try: val = int(val) if largest is None or val > largest: largest = val elif smallest is None or smallest > val: smallest = val except: print("Invalid input") continue print("Maximum is", largest) print("Minimum is", smallest)
Si vous incluez des relevés d'ELIF, ils ne seront pas cochés si la condition de l'instruction IF est vraie, donc si j'avais "elif le plus petit ...", il ne serait jamais coché de donner "Minimus n'en étant pas" en conséquence .
largest = None smallest = None while True: enter_num = input('Enter a number ') if enter_num == 'done': break try: num = int(enter_num) if largest is None or largest < num: largest = num if smallest is None or smallest > num: smallest = num except: print('Invalid input') continue print('Maximum is', largest) print('Minimum is', smallest)
Suggestion: Ne testez pas uniquement avec la séquence donnée des entrées. Essayez une variété de cas de test. Par exemple, essayez d'entrer uniquement "Terminé", essayez d'entrer uniquement un numéro, essayez d'entrer uniquement une entrée non valide, essayez d'entrer des numéros qui ne font qu'augmenter ou diminuer. Lorsqu'un test échoue, corrigez le script pour ce cas, puis testez d'autres.
Votre indentation est éteinte, tout dans le
tandis que la boucle code> doit être indentée à partir du
pendant la réalité code>
Vous cherche que
maximum est 10, minimum est 2 code> est correct, pour 7, 2, Bob, 10, 4. Non?
La section de sortie donnée n'est que la sortie attendue. Mais mon entrée donnée ne s'affiche pas comme ça.