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(もし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 を取得する必要があります。また、float 以外が入力された場合に備えて、float で try ブロックを使用する必要があります (float はここで例外を発生させ、None を返しません)。

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 に答える