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

J.F*_*ipe -1 python numbers variable-assignment

我一直在学习 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)
Run Code Online (Sandbox Code Playgroud)

Inc*_*nnu 5

好吧,问题是如果 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)
Run Code Online (Sandbox Code Playgroud)

输出:

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
Run Code Online (Sandbox Code Playgroud)