У меня есть ошибка типа с> = и переменная - PullRequest
0 голосов
/ 07 марта 2019
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 голосов
/ 07 марта 2019

Поскольку один из ваших операторов 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)
0 голосов
/ 07 марта 2019

Проблема в том, что вы используете операторы 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, и вам, вероятно, следует попробовать перехват для ввода целых чисел.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...