类型错误(不可比较的类型:int() <= NoneType())

2 投票
2 回答
18713 浏览
提问于 2025-04-18 04:44

这是我第一次用Python写代码,需要一些帮助。我正在使用Python 3.4,但我实在搞不懂发生了什么。

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

尝试一下:

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

我把你发的代码放进了Python 3的环境里,但它在别的地方出错了。你的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)

如果这不是解决你问题的方法,我需要你提供相关的代码,这样我才能看到你遇到的错误 :)

撰写回答