循环不退出并且不在最后打印结果

时间:2017-05-04 10:21:24

标签: python python-3.x

如果输入的下一个数字是Up,Down或与第一个相同,我希望创建一个输出代码。我希望它在输入“0”时退出。我还希望它在退出时以“0”而不是每次输入数字时打印“向上”,“向下”或“相同”结果。(如果用户输入:4,6,1,1 ,然后0退出,最终输出将是Up,Down,同样打印。)请告诉我我错过了什么,这是我到目前为止:

firstNumber = input('Please enter your first number:')

nextNumber=input('Enter the next number(0 to finish)')

while nextNumber !=0:

    if firstNumber<nextNumber:
        print ('Up')

    elif firstNumber>nextNumber:
        print ('Down')

    elif firstNumber==nextNumber:
        print ('Same')

    firstNumber = nextNumber

    nextNumber=input('Enter the next number(0 to finish)')

2 个答案:

答案 0 :(得分:2)

您正在比较字符串,而不是数字。

您应该将输入转换为int()的整数。

这里:

try:
    firstNumber = int(input('Please enter your first number:'))
    nextNumber = int(input('Enter the next number(0 to finish)'))
except ValueError:
    # Handle cast error here
    pass
while nextNumber !=0:
    ...

注意

正如blubberdiblub所解释的那样:

  • < >比较字符串的指针代码,表示"8" < "10"返回False8 < 10返回True

答案 1 :(得分:0)

<强>输入

  

然后函数从输入中读取一行,将其转换为字符串(剥离尾部换行符),然后返回该行。

所以使用

int(input(...))