需要从用户输入中查找最大和最小值

时间:2017-08-28 14:24:09

标签: python-3.x

输入也可能包含字符串,但代码应该继续,输入为7,2,bob,10,4

需要帮助才能从用户输入数据中找到最大和最小的数据,当前代码只打印最后一个条目

largest = None
smallest = None

while True:
    num = input("Enter a number: ")
    if num == "done" : break
    try:
        num = int(num)
    except:
        print ("Invalid input")

if largest is None:
    largest = num
elif num > largest:
    largest = num

if smallest is None:
    smallest = num
elif num < smallest:
    smallest = num


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

4 个答案:

答案 0 :(得分:0)

您只需使用min()max()功能即可。代码如下:

while True:
    num = input('Enter more than a number separated by a comma: ')
    n = num.split(',')
    print(n)
    if len(n) >= 2:
        for i in range(len(n)):
            highest = max(n)
            lowest = min(n)
        print('Highest number: ' + highest)
        print('Lowest number: ' + lowest)
    else:
        print("Please,  at least enter 2 numbers separated by ','")

<强>概要

  • 我们输入的输入存储在名为num

  • 的变量中
  • 我们使用逗号分隔输入值

  • 我们打印变种n,类型列表

  • 如果我们至少输入了两个不同的数字,我们将有一个for循环重复我们输入的数字

  • 我们将最高数字存储在名为highest

  • 的变量中
  • 我们将最小的数字存储在名为lowest

  • 的变量中
  • 我们打印出最高和最低的数字

我希望得到帮助

我已检查过代码并且有效:)

答案 1 :(得分:0)

两个问题: 首先,要获取最大数量和最小数量的if语句不在while true循环之外。因此,缩进最大和最小计算以将其包括在循环中。

第二,您的tryexcept将检查数字,并在使用字符串时显示invalid input……但其余部分仍在使用输入您的代码。您需要将continue添加到except块中才能再次开始while循环。

答案 2 :(得分:0)

程序将与以下程序代码一起使用:

largest = None
smallest = None

while True:
    num = input("Enter a number: ")
    if num == "done" : break
    try:
        num = int(num)
    except:
        print ("Invalid input")
        continue

    if largest is None:
        largest = num
    elif num > largest:
        largest = num
    if smallest is None:
            smallest = num
    elif num < smallest:
            smallest = num


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

答案 3 :(得分:0)

l = None
s = None
while True:
    num = input("Enter a number:")
    if num == "done":
        break
    try:
        fnum= int(num)
        if l is None:
            l = fnum
        elif fnum>l:
            l=fnum
        if s is None:   # get smallest value
            s = fnum
        elif fnum < s:
            s = fnum
    except:
        print("Invalid Input")
        
print("Maximum", l)
print("Smallest", s)