在python中找到最大和最小的数字

时间:2017-07-20 09:50:09

标签: python-3.x

我是编程新手,如果我的代码是正确的,请告诉我。

我正在尝试编写一个程序,该程序会反复提示用户输入整数,直到用户输入“done”为止。输入“完成”后,打印出最大和最小的数字。如果用户输入除有效号码以外的任何内容,请使用try / except捕获并发出相应的消息并忽略该号码。

largest = None
smallest = None
while True:
        num = input("Enter a number: ")
        if num == 'done':
            break
        try:
            fnum = float(num)
        except:
            print("Invalid input")
            continue
      lst = []
numbers = int(input('How many numbers: '))
for n in range(numbers):

    lst.append(num)
print("Maximum element in the list is :", max(lst), "\nMinimum element in the list is :", min(lst))

2 个答案:

答案 0 :(得分:1)

您的代码几乎是正确的,您需要更改几件事:

lst = []
while True:
    user_input = input('Enter a number: ')
    if user_input == 'done':
        break
    try:
        lst.append(int(user_input))
    except ValueError:
        print('Invalid input')

if lst:
    print('max: %d\nmin: %d' % (max(lst), min(lst)))

另外,既然你说你是编程新手,我会解释我做了什么,以及为什么。

首先,无需在开头将largestsmallest设置为None。我实际上从来没有把这些值放在变量中,因为我们只需要它们来打印它们。

然后,您的所有代码都与try/except block完全相同。在这里,我尝试将用户输入转换为整数,并将其一次性附加到列表中。如果其中任何一项失败,请打印Invalid input。我的except部分略有不同:它说except ValueError。这意味着“如果发生ValueError,则仅运行以下代码”。在捕获错误时要特别注意,因为except本身会捕获所有错误,包括我们不期望的错误,并希望查看是否出现错误。< / p>

我们不想在这里使用continue,因为continue表示“跳过剩下的代码并继续下一个循环迭代”。我们不想在此处跳过任何内容。

现在让我们谈谈这段代码:

numbers = int(input('How many numbers: '))
for n in range(numbers):
    lst.append(num)

根据您的解释,无需从用户那里获得更多输入,因此不需要此代码。将int(input())放在try/except块中也是一个好主意,因为如果用户输入其他而不是数字,int(input())将会出错。< / p>

最后,print声明:

print('max: %d\nmin: %d' % (max(lst), min(lst)))

在python中,您可以使用“字符串格式化运算符”,百分比(%)符号将数据放入字符串。您可以使用%d填写数字%s来填写字符串。如果向下滚动一点,Here是在百分比之后放置的完整字符列表。它也很好地解释了它,但这里有一些例子:

print('number %d' % 11)

x = 'world'
print('Hello, %s!' % x)

答案 1 :(得分:0)

user_list = []

while True:
    user_input = int(input())

    if user_input < 0:
        break

    user_list.append(user_input)
  
print(min(user_list), max(user_list))