为什么while循环无法正常执行

时间:2020-10-21 19:18:30

标签: python

我正在尝试编写一个基本代码,提示用户输入数字列表作为单独的输入,然后识别最大和最小数字。如果用户输入的不是数字,则代码应返回“无效输入”消息。该代码似乎在两个输入中都运行了一次,但是while输入似乎被完全破坏了,我不确定它出了什么问题。

largest = None
smallest = None

try:
    num1 = input("Enter a number: ")
    num1 = int(num1)
    largest = num1
    smallest = num1

    while True:
        num = input("Enter a number: ")
        if num == "done" :
            break
        if num > largest:
            largest = num
        if num < smallest:
            smallest = num
        else: continue
except:
    print('Invalid input')



print("Maximum is ", largest)
print("Minimum is ", smallest)

3 个答案:

答案 0 :(得分:1)

如果检查退出条件为“ done”,并且输入不是“ done”,则将字符串转换为整数。 然后所有if条件都将正确运行,并且while循环应该运行。

createCanvas()

答案 1 :(得分:0)

这是一种简单的方法:

lst = []
while True:
    try: 
        lst.append(int(input("enter a number: ")))
    except:
        break

print(f"max is {max(lst)}")
print(f"min is {min(lst)}")
enter a number: 10
enter a number: 22
enter a number: 11
enter a number: 22
enter a number: 4
enter a number: done
max is 22
min is 4

答案 2 :(得分:0)

除了其他更正:

largest = None
smallest = None

try:
    num1 = int(input("Enter a number: "))
    largest = num1
    smallest = num1

    while True:
        num = input("Enter a number: ")
        if str(num) == "done" :
            break
        if int(num) > largest:
            largest = num
        if int(num) < smallest:
            smallest = num
        else: continue
except:
    print('Invalid input')

print("Maximum is ", largest)
print("Minimum is ", smallest)