我如何解决TypeError:'>' 'int'和'list'的实例之间不支持?

时间:2017-12-09 14:23:48

标签: python python-3.x

这是代码,我只是不知道为什么即使在阅读过去的答案之后错误也会出现。

import random
rand = random.sample(range(10), 1)
print(rand)

guess = input('Try guessing a number between 0-10! ')


for num in str(guess):
    if rand > guess:
        print('The number is too low! Try again!')
    elif rand < guess:
        print('The number is too high! Try again!')
    else:
        print("You got it!")

2 个答案:

答案 0 :(得分:0)

对于此问题,只需将random.sample(range(10), 1)替换为random.randint(1,11)random.choice(range(10))即可。 random.sample返回一个列表。您想要返回一个整数,因此您可以进行比较。

另外,您的错误描述似乎不正确。看来你应该得到:

Traceback (most recent call last):
File "<pyshell#11>", line 2, in <module>
    if rand>guess:
TypeError: unorderable types: list() > str()

要避免这种情况,请使用int()功能将输入转换为数字,然后从上方进行其他更改。

答案 1 :(得分:0)

尝试替换

rand = random.sample(range(10), 1)

使用

rand = random.randint(0, 10)

您的代码正在尝试将列表与字符串进行比较。你需要比较两个相同的。还要先尝试猜测整数:

guess = int(input('Try guessing a number between 0-10! '))

并删除str(猜测) - 只是猜测,因为它现在是一个整数