我应该做什么,以纠正这段代码,请?作为输出,我必须获得无效的输入,然后获得最大值和最小值。

问题描述 投票:0回答:1
minimum = None
maximum = None
try:
    num = input("Enter a number: ")
    if num == done : break
except:
    print ("Invalid input")      

fval = float (num)
if fval > maximum:
        maximum = fval 
if minimum is None:
        minimum = fval
elif fval < minimum:
        minimum = fval
print("Maximum is", maximum)
print("Minimum is", minimum)

我想解决的问题陈述如下:写一个程序,反复提示用户输入整数,直到用户输入'done'。一旦输入'done',打印出最大和最小的数字。如果用户输入的不是有效的数字,则用tryexcept捕捉,并发出适当的消息,忽略这个数字。输入7、2、bob、10和4,并匹配下面的输出。

python try-except
1个回答
0
投票
minimum = 10e+10 # cannot compare None and float
maximum = -10e+10
while True:
    try:
        num = input("Enter a number: ")
        if num == 'done' : break # your break is not in any loop
    except:
        print ("Invalid input")      

    fval = float (num)
    if fval > maximum:
            maximum = fval 
    # if minimum is None: # not needed
    #         minimum = fval
    if fval < minimum:
            minimum = fval
    print("Maximum is", maximum)
    print("Minimum is", minimum)
Enter a number: 2
Maximum is 2.0
Minimum is 2.0
Enter a number: 10
Maximum is 10.0
Minimum is 2.0
Enter a number: done

0
投票

所以,如果你想突破它,你需要使用一个while循环,同时你需要把done的值变成一个字符串。如果你运行你的代码,你会得到这个错误。

if num == 'done': break
                     ^
SyntaxError: 'break' outside loop

好吧,这可能是你正在寻找的东西

minimum = 10e+10  # cannot compare None and float
maximum = -10e+10


while True:
    num = input("Enter a number: ")
    try:
        if num.isnumeric() or float(num):
            fval = float(num)
            if fval > maximum:
                maximum = fval
            # if minimum is None: # not needed
        #         minimum = fval
            if fval < minimum:
                minimum = fval
            print("Maximum is", maximum)
            print("Minimum is", minimum)
            continue
    except Exception as e:
        if num != 'done':
            print("Invalid input")
            continue
        elif num == 'done':
            break
© www.soinside.com 2019 - 2024. All rights reserved.