TypeError(不可解析的类型:int()< = NoneType())

时间:2014-04-29 12:06:05

标签: python types

这是我第一次用Python编写代码,可以使用一些帮助。我使用的是Python 34,根本无法理解发生了什么。

def roll(v):
    x = input()
    return (x + v)

def startGame():
    v = 0
    while 0 <= v: # error points to this line
        v = roll(v)  

print("Thanks for playing")

我声明v是一个值为0的整数。但是当我尝试将它与另一个整数进行比较时,它会给出错误消息unorderable types: int() <= NoneType() 我可以用一些指导.. 感谢

2 个答案:

答案 0 :(得分:2)

我将您发布的代码放入python 3 shell中,但它在其他地方失败了。你的x = input()产生一个字符串,而python不知道如何将字符串转换为数字,除非你明确告诉它如何。

这样:

def roll(v)
    # Lets try to parse userinput
    try:
        x = int(input())
    # sometimes users don't get it that "a" is no int
    except ValueError:
        x = 0
    return (x+v)

def roll(v)
    hasProducedNumber = False
    x = 0
    # we keep nagging for a number till no valueerror arises
    while not hasProducedNumber:
        try:
            x = int(input())
            hasProducedNumber = True
        except ValueError:
            print("Please provide a number")

    return (x + v)

如果这不是您问题的解决方案,我需要实际产生错误的相关代码:)

答案 1 :(得分:0)

尝试:

def roll(v):
    x = int(input('Please insert value of x: '))
    return (x + v)