0

我想知道如何修复我的程序,它要求用户输入任何数字。

要终止程序,请输入 -99。就输入而言,一切都很顺利,直到我点击 -99 以停止程序,使其变为最小值。这是我的代码。最小值的最终答案不能是 -99。

s = -99
n = 1
minimum = None
maximum = None
print ("Enter a series of numbers")
print ("Enter -99 to quit.")
while n != s:
    n = float(input("Number: "))
    if minimum is None or n < minimum:
        minimum = n
    if maximum is None or n > maximum:
        maximum = n
    print ("The maximum is: ", maximum)
    print ("The minimum is: ", minimum)
4

2 回答 2

1
1. n = 1
2. 1 == -99 ?
3. n = new input
4. set new minimum from n
5. n == -99?

首先 (4.) 你设置新的最小值n(也是 if n==-99),然后 (5.) 你测试它是否是停止的值。

我建议将循环更改为无限循环 ( while True),然后测试它是否为 -99(在这种情况下打破循环),然后再设置新的最小值/最大值。

s = -99
n = 1
minimum = None
maximum = None
print ("Enter a series of numbers")
print ("Enter -99 to quit.")
while True:
    n = float(input("Number: "))
    if n == s:
        break
    if minimum is None or n < minimum:
        minimum = n
    if maximum is None or n > maximum:
        maximum = n
    print ("The maximum is: ", maximum)
    print ("The minimum is: ", minimum)
于 2013-02-25T08:37:09.100 回答
-1

您需要在循环结束时检查数字是否为 -99。你也想在循环之前得到 n 。此外,您需要在浮点数上使用 try 块,以防输入非浮点数(浮点数在此处引发异常,不返回无):

import sys

s = -99
n = 1
minimum = None
maximum = None
print ("Enter a series of numbers")
print ("Enter -99 to quit.")
try:
    n = float(input("Number: "))
except ValueError:
    sys.exit("You did not enter a float!")

while n != s:
    minimum = n if minimum is None else min(n, minimum)
    maximum = n if maximum is None else max(n, maximum)
    print ("The maximum is: ", maximum)
    print ("The minimum is: ", minimum)
    try:
        n = float(input("Number: "))
    except ValueError:
        sys.exit("You did not enter a float!")
于 2013-02-25T08:41:54.547 回答