我有> =和一个变量的类型错误

时间:2019-03-07 02:47:20

标签: python python-3.x variables input int

gclass = int(input(""))

if gclass == 1:
    gclass = "Knight"
    knight()
if gclass == 2:
    gclass = "Sorcerer"
    sorcerer()
if gclass == 3:
    gclass = "Archer"
    archer()
if gclass == 4:
    gclass = "THE CHOSEN ONE"
    chosenone()
if gclass >= 5:
    print("Don't do that. ENDING GAME")
    time.sleep(3)
    exit()
if gclass == "":
    print("Don't do that. ENDING GAME")
    time.sleep(3)
    exit()
print("You chose:",gclass,)

这是不起作用的代码,错误

File "main.py", line 115, in <module>
    if gclass >= 5:
TypeError: '>=' not supported between instances of 'str' and 'int'

我不明白,因为在代码之前没有int,但是现在它可以了,而且它们都无法正常工作,或者我也希望它们如此。我是一个初学者,正在制作一个简单的游戏,所以任何复杂的事情对我来说可能都太复杂了,但是我可以理解一些基本的知识。

2 个答案:

答案 0 :(得分:0)

问题是应该使用ifelif语句时使用else语句。这样,您的代码就会起作用。

gclass = int(input(""))

if gclass == 1:
    gclass = "Knight"
    knight()
elif gclass == 2:
    gclass = "Sorcerer"
    sorcerer()
elif gclass == 3:
    gclass = "Archer"
    archer()
elif gclass == 4:
    gclass = "THE CHOSEN ONE"
    chosenone()
else:
    print("Don't do that. ENDING GAME")
    time.sleep(3)
    exit()
print("You chose: " + gclass)

对于将来的"",对于int值也是不可能的,您应该尝试输入int。

答案 1 :(得分:0)

当您的if语句之一将gclass变量更改为字符串时,就会发生错误。

您可以使用如下所示的新变量,例如gclass_text

import time

gclass = int(input(""))

if gclass == 1:
    gclass_text = "Knight"
    knight()
if gclass == 2:
    gclass_text = "Sorcerer"
    sorcerer()
if gclass == 3:
    gclass_text = "Archer"
    archer()
if gclass == 4:
    gclass_text = "THE CHOSEN ONE"
    chosenone()
if gclass >= 5:
    print("Don't do that. ENDING GAME")
    time.sleep(3)
    exit()
if gclass == "":
    print("Don't do that. ENDING GAME")
    time.sleep(3)
    exit()

print("You chose:", gclass_text)