我如何解决这个恼人的错误信息? (Python 3.6.1)

这个问题在这里已经有了答案:

  • 如何在Python中将字符串解析为float或int? 22个答案

  • 改变你的第一行

    usernum = int(input('Enter a number, Ill determine if its pos, neg, OR Zero.'))
    

    就像你usernumusernum是一个字符串值,因为input()总是返回Python 3.x中的字符串,并且你试图将它与整数进行比较。 所以先把它转换成一个整数。 我通过用int()类型转换来包围input调用来做到这一点。

    请注意,如果用户输入的不是整数,这会引发错误。 这可以通过异常处理来处理,而异常处理现在可能超出了你的范围。


    尝试:

    usernum = int(input('Enter a number, Ill determine if its pos, neg, OR Zero.'))
    if usernum < 0:
        print("Your number is negative.")
    if usernum > 0:
        print("Your number is positive.")
    if usernum == 0:
        print("Your number is zero.")
    

    input(...)创建字符串,所以你需要通过int(...)来使该字符串成为一个整数。 另外我建议你把ifs改成if,elif和else:

    usernum = int(input('Enter a number, Ill determine if its pos, neg, OR Zero.'))
    if usernum < 0:
        print("Your number is negative.")
    elif usernum > 0:
        print("Your number is positive.")
    else:
        print("Your number is zero.")
    

    这不是什么大不了的事情,但这样你只能执行你实际需要的代码。 因此,如果usernum小于0,则不评估下一个子句。 最后,您可以考虑添加用户输入错误更正:

    usernum = None
    while usernum is None:
        try:
            usernum = int(input('Enter a number, Ill determine if its pos, neg, OR Zero.'))
        except ValueError as ex:
            print("You didn't enter an integer. Please try again.")
    if usernum < 0:
        print("Your number is negative.")
    if usernum > 0:
        print("Your number is positive.")
    if usernum == 0:
        print("Your number is zero.")
    
    链接地址: http://www.djcxy.com/p/48435.html

    上一篇: How do I get around this annoying error message? (Python 3.6.1)

    下一篇: Changing values of dictionary to integers