首页 > 解决方案 > 如何找到不使用 min() 或 max() 的输入的最小和最大数

问题描述

我收到一门课程,要求我:“编写一个程序,反复提示用户输入整数,直到用户输入‘完成’。一旦输入‘完成’,打印出最大和最小的数字. 如果用户输入的不是有效数字,请使用 try/except 捕获它并发出适当的消息并忽略该数字。输入 7、2、bob、10 和 4 并匹配下面的输出。所需的输出是:

Invalid input
Maximum is 10
Minimum is 2

"

我没有学过 min() 和 max()。所以我想我不应该使用它。有一些给定的代码开始:

largest = None
smallest = None
while True:
    num = input("Enter a number: ")
    if num == "done" : break
    print(num)

print("Maximum", largest)

到目前为止,我已经能够通过这样做来完成最大的工作:

largest = None
while True:
    num = input("Enter a number: ")
    if num == "done":
        break
    try:
        number = int(num)
    except:
        print ("Invalid Input")
        break
    if largest is None:
        largest = number
    elif largest < number:
        largest = number
    elif largest > number:
        continue

print ("Maximum is", largest)

但是每当我尝试输入“最小”变量时,我不确定我应该如何制作它,因为如果我只是把它粘在里面,它会打印为 Minimum is None。

smallest = None
largest = None
while True:
    num = input("Enter a number: ")
    if num == "done":
        break
    number = int(num)
    if largest is None:
        largest = number
    elif largest < number:
        largest = number
    elif largest > number:
        continue
    elif smallest is None:
        smallest = number
    elif smallest > number:
        smallest = number
    elif smallest > number:
        continue

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

如果你能帮助我遵循我在这里使用的相同类型的代码,而不是使用 min()、max() 或其他更高级的代码,因为这是一个初学者的 Python 课程,那可能会很棒。

谢谢你!!!!<3

标签: pythonpython-3.xlist

解决方案


试试这个代码:

largest = None
smallest = None
while True:
    num = input("Enter a number: ")
    if num == "done":
        break
    try:
        number = int(num)
    except:
        print ("Invalid Input")
        break
    if largest is None:
        largest = number
    elif largest < number:
        largest = number
    elif largest > number:
        pass
    if smallest is None:
        smallest = number
    elif smallest < number:
        pass
    elif smallest > number:
        smallest=number

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

我也是新手,但我的观点是您使用“继续”而不是“通过”。它们是不同的。


推荐阅读