TypeError:unorderable类型:int()> STR()

时间:2017-08-27 06:59:44

标签: python python-3.x input conditional typeerror

目标:与第一个项目类似,该项目也使用Python中的随机模块。该程序将首先随机生成用户未知的数字。用户需要猜出该号码是什么。 (换句话说,用户需要能够输入信息。)如果用户的猜测错误,程序应该返回某种错误的指示(例如,数字太高或太低)。如果用户猜对了,就会出现正面指示。您需要检查用户输入是否为实际数字的功能,以查看输入数字与随机生成数字之间的差异,然后比较数字。

这就是我所做的,但我不知道如何解决它:

enter image description here

1 个答案:

答案 0 :(得分:1)

在python3中,input返回一个字符串。您将此字符串直接传递给函数,并与从random.choice获得的整数进行比较。这就是:

In [535]: '1' > 2
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-535-6857a5c3feea> in <module>()
----> 1 '1' > 2

TypeError: unorderable types: str() > int()

结论:intstr无法比较。您需要通过调用int函数来转换输入。

your_guess = int(input(...)) 

然后,它应该工作:

In [536]: 1 > 2
Out[536]: False

然而,这只解决了一个问题。每次调用函数时,每次都会使用新值重新初始化number,这样如果您猜测一个数字并再次调用该函数,下次您将猜测一个完全不同的随机数。你需要在函数外设置numbers 然后然后调用函数,将猜测和随机数作为参数传递。