简体   繁体   中英

While loop won't terminate

Learning Python. This task is to allow the user to enter numbers as long as the number isn't -99. If the sentinel -99 is entered, the user will no longer be able to enter numbers, and the largest and smallest numbers that have already been entered will be displayed. When I enter the number -99, however, the loop continues to ask for new numbers.

#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:

Solved. I forgot to add the variables inside the ()...I'm not sure what these are called, but I do understood their function. Are they called placeholder variables?

#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()

Modify your while loop to update number variable; the value of number is not changing inside the loop

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM