Coursera Python:为每个人分配编程5.2

问题描述 投票:-1回答:1

我一直在学习Coursera课程,用Python编程为每个人编写。但第7周的任务之一5.2引起了我的注意。

目标是当用户输入他想要的所有数字时,输入一些数字并输入完成。之后,输出应该是他输入的最大数字和最小数字。

这是问题所在。如果我输入负数,则不会显示。假设我输入:32,55,10,-2 76.输出应为76和-2。但真正发生的是打印出76和10。

你们知道为什么会这样吗?

这是代码。

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

        num = int(num)

        for number in range(num):

            if largest is None or largest < num:
                largest = num
                continue
            elif smallest is None or smallest > num:
                smallest = num       
    except ValueError:
        print("Please, enter only numbers.")

print ("Maximum", largest)
print ("Minimum", smallest)
python numbers variable-assignment
1个回答
3
投票

那么,问题是,如果它不是一个列表,为什么要迭代一个int?你可以宁愿用循环来做:

largest = None
smallest = None
while True:
    try:
        num = input("Enter a number: ")
        if num == "done":
            break
        print (num)
        num = int(num)
        if largest is None or largest < num:
            largest = num
        elif smallest is None or smallest > num:
             smallest = num
    except ValueError:
        print("Please, enter only numbers.")

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

输出:

Enter a number: 12
12
Enter a number: 56
56
Enter a number: 34
34
Enter a number: -2
-2
Enter a number: 17
17
Enter a number: done
Maximum 56
Minimum -2
© www.soinside.com 2019 - 2024. All rights reserved.