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,但是现在它可以了,而且它们都无法正常工作,或者我也希望它们如此。我是一个初学者,正在制作一个简单的游戏,所以任何复杂的事情对我来说可能都太复杂了,但是我可以理解一些基本的知识。
答案 0 :(得分:0)
问题是应该使用if
和elif
语句时使用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)