2017-10-02 1 views
0

Apprentissage de Python. Cette tâche permet à l'utilisateur d'entrer des nombres tant que le nombre n'est pas -99. Si la sentinelle -99 est entrée, l'utilisateur ne sera plus en mesure d'entrer des nombres, et les plus grands et les plus petits nombres qui ont déjà été saisis seront affichés. Quand j'entre le nombre -99, cependant, la boucle continue à demander de nouveaux nombres.La boucle ne s'arrête pas

#main module 
def main(): 

    #Instructions for user 
    print ("This program will allow the user to enter several numbers, 
    positive ") 
    print ("or negative, and sort the largest and smallest numbers from 
    them.") 

    #First number entered by user 
    inputNum = input ("Enter a number other than -99 to be sorted: ") 


    #variables 
    number = inputNum 
    small=number 
    large=number 

    #while loop for getting/sorting numbers 
    while number != -99: 
     if number < small: 
      small = number 
     elif number > large: 
      large = number 
     inputNum = input("Enter a number other than -99 to be sorted: ") 


    lgSm() 


#Module for displaying large and small numbers 
def lgSm(): 
    print ("The largest number you entered is: ", large) 
    print ("The smallest number you entered is: ", small) 


main() 

Edit:

Résolu. J'ai oublié d'ajouter les variables à l'intérieur du() ... Je ne suis pas sûr de ce que ceux-ci sont appelés, mais j'ai compris leur fonction. Sont-ils appelés variables d'espace réservé?

#main module 
def main(): 

    #Instructions for user 
    print ("This program will allow the user to enter several numbers, positive ") 
    print ("or negative, and sort the largest and smallest numbers from them.") 

    #First number entered by user 
    inputNum = int (input ("Enter a number other than -99 to be sorted: ")) 


    #variables 
    number=inputNum 
    small=number 
    large=number 


    while number != -99: 
     if number < small: 
      small = number 
     elif number > large: 
      large = number 
     inputNum = int (input("Enter a number other than -99 to be sorted: ")) 
     number = inputNum 

    lgSm(large, small) 


#Module for displaying large and small numbers 
def lgSm(lg, sm): 
    print ("The largest number you entered is: ", lg) 
    print ("The smallest number you entered is: ", sm) 

main()

+1

vous disent en nombre ... La valeur du nombre ne change pas – RSon1234

+0

j'ajouté une ligne comme indiqué ci-dessous, mais il n'a pas aidé :(Vous avez besoin –

+0

pour faire quelque chose avec l'entrée .Peut-être que vous pouvez le changer à un int en quelque sorte.Travailler à trouver comment faire cela – RSon1234

Répondre

1

Modifier votre boucle while mise à jour variable nombre; la valeur du nombre ne change pas dans la boucle

while number != -99: 
    if number < small: 
     small = number 
    elif number > large: 
     large = number 
    inputNum = int(input("Enter a number other than -99 to be sorted: ")) 
    number = inputNum ## this line in particular 
+0

Laissez-moi prédire le commentaire suivant: "Cela ne fonctionne toujours pas!" ASTUCE: 'intput' renvoie un' str' dans Python 3. – SethMMorton

+0

Vous avez raison @sethMMorton ça ne fonctionne toujours pas ... –

+0

lol .. maintenant ça devrait marcher. Ajout de cast à int –