问题描述
这是我第一次用 Python 编写代码,可能需要一些帮助.我正在使用 Python 34,根本无法理解发生了什么.
This is my first time writing code in Python and could use some help. I am using Python 34 and simply cannot understand what is going on.
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()代码>我可以使用一些指导..谢谢
I declare v to be an integer with a value of 0. But when I try to compare it to another integer, it gives me the error message unorderable types: int() <= NoneType()
I could use some guidance..Thanks
推荐答案
我将您发布的代码放入 python 3 shell,但它在其他地方失败.你的 x = input() 产生一个字符串,python 不知道如何将字符串转换为数字,除非你明确告诉它如何.
I placed the code you posted into a python 3 shell but it fails somewhere else. Your x = input() produces a string, and python doesn't know how to convert strings to numbers unless you explicitly tell it how.
所以:
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)
如果这不是您问题的解决方案,我需要实际产生您的错误的相关代码:)
If this is not a solution to your problem I need relevant code that actually produces your error :)
这篇关于类型错误(不可排序的类型:int() <= NoneType())的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!