[英]How do I resolve the "TypeError: unorderable types: str() < int()" error?
[英]how do I fix this error in python 3.3? TypeError: unorderable types: str() < int()
我试图创建一个猜数字游戏,但收到“ guessestaken”错误,我从http://inventwithpython.com/IYOCGwP_book1.pdf第57页复制了代码。对不起,我对python有点陌生。
import random
guessestaken=0
print ("hello what ur name?")
myname=input()
number=random.randint(1,20)
print ("well " + myname + " i am thinking of a number guess it")
while guessestaken < 6 :
guessestaken=guessestaken+1
guess =input('take a guess')
guess = int(guess)
if guess <number:
print('too low')
if guess >number:
print ('too high')
if guess ==number:
break
if guess ==number:
guessestaken=str(guessestaken)
print ('good job ' + myname + ' you are right!')
print ('you guessed it in ' + guessestaken + ' guesses')
if guess !=number:
guessestaken = str(guessestaken)
print ("I am sorry but you couldn't get it right")
print ("you couldn't guess it in " + guessestaken + " guesses")
错误消息是(试图)通知您您正在尝试将str
与int
进行比较。 特别是,应该有一个回溯通知您错误发生的位置:
Traceback (most recent call last):
File "./tmp.py", line 8, in <module>
while guessestaken < 6 :
您会看到您将guessestaken
字符串显式转换为字符串:
guessestaken = str(guessestaken)
显然没有必要。 当您要打印猜测的数量时,可以使用+
内联(不建议使用它或“ pythonic”)或使用format
:
print('you guessed it in ' + str(guessestaken) + ' guesses')
print('You guessed it in {} guesses'.format(guessestaken))
您正在将guesstaken
转换为字符串以显示它
guessestaken=str(guessestaken)
然后while
循环检查是否
while guessestaken < 6 :
这会导致类型错误(python无法比较string和int )。 您应该简单地使用其他名称作为字符串,或者使用类似python的结构内联
print('You guessed it in {} guesses'.format(guessestaken))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.