Coursera Python:面向所有人的编程作业 5.2

Coursera Python: Programming for everybody assignment 5.2

我一直在学习 Coursera 的课程,Python 为每个人编程。但是第 7 周的作业 5.2 中的一个引起了我的注意。

objective是让用户输入一些数字,当他输入所有他想要的数字时,就输入done。之后输出的应该是他输入的最大数和最小数。

问题来了。如果我输入负数,则不会显示。假设我输入: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)

好吧,问题是如果 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

好吧,这就是我的答案。试试这个。不明白的告诉我。

largest = None
smallest = None

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

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

此代码适用于您的作业

最大 = None 最小的 = None 而真实的: 尝试: num = input("请输入一个数字:") 如果 num == “完成”: 休息 # 打印 (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("Invalid input")

print("最大为",最大) print ("最小值是", 最小值)