【问题标题】:While loop won't terminate虽然循环不会终止
【发布时间】:2017-10-02 02:14:04
【问题描述】:

学习 Python。此任务是允许用户输入数字,只要数字不是 -99。如果输入哨兵-99,用户将无法再输入数字,并且会显示已经输入的最大和最小数字。但是,当我输入数字 -99 时,循环会继续要求输入新数字。

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

编辑:

解决了。我忘了在 () 中添加变量...我不确定这些变量叫什么,但我确实了解它们的功能。它们被称为占位符变量吗?

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

【问题讨论】:

  • 你说的是数字...数字的值没有改变
  • 我添加了如下所示的一行,但没有帮助:(
  • 你需要对输入做一些事情。也许您可以以某种方式将其更改为 int 。开始工作,弄清楚如何做到这一点
  • @RSon1234 最终导致模块中缺少变量。谢谢提示
  • 酷。祝你好运

标签: python sorting while-loop


【解决方案1】:

修改你的while循环来更新数字变量; 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 ## this line in particular

【讨论】:

  • 让我预测下一条评论:“这仍然行不通!”提示:intput 在 Python 3 中返回 str
猜你喜欢
  • 2013-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-16
  • 1970-01-01
  • 2014-06-06
相关资源
最近更新 更多