Returns 意外值

Returns unexpected value

我为我正在参加的在线课程编写了这段代码,您无法 post 编写代码并在那里获得特定帮助。我希望这里有人会有所帮助。 代码 -

largest = None
smallest = None
numI = 0
while True:
    num = raw_input("Prompt you")
    if num == "done":
        break
    try:
        numI = int(num)
    except:
        print "Invalid input"
        continue
    if numI >= largest or numI < smallest:
        if numI > largest:
            largest = numI
        else:
            smallest = numI 

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

为什么会 return "Minimum is None"? 我尝试了两个 If 循环,一个 If 和 Elif,现在是这个嵌套循环。无论我似乎没有达到最小值的设置。

非常感谢任何帮助。

(代码已上交并评级,所以你不能破坏那部分:))

x < None 将始终 return 为假,因此在您的 While True: 语句中您需要添加

if largest==None:
    largest=numI
if smallest==None:
    smallest=numI

代码:

largest = None
smallest = None
numI = 0
while True:
    num = raw_input("Prompt you")
    if num == "done":
        break
    try:
        numI = int(num)
    except:
        print "Invalid input"
        continue
    if largest==None:
        largest=numI
    if smallest==None:
        smallest=numI
    if numI > largest or numI < smallest:
        if numI > largest:
            largest = numI
        else:
            smallest = numI 

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

注意使用 print('Maximum is ' + str(largest)) 是一种很好的做法,因为它与 3.4

交叉兼容

在python2中,None小于一切。所以你的 numI < smallest 条件永远不会通过。您应该显式测试 None,以便 numI 设置为初始传递中的第一个值,然后它可以正常更新。

此外,您应该只使用两个独立的检查:

if largest is None or numI > largest:
    largest = numI
if smallest is None or numI < smallest:
    smallest = numI