Программа не войдет, если заблокировать - PullRequest
0 голосов
/ 03 мая 2018

Я пытаюсь создать текстовую игру, в которой словари используются в качестве блоков "переключения регистра" (о чем я узнал на этом сайте). Я не в этой части. Однако мне интересно, почему этот код ниже не будет выполняться game_main() в операторе if.

Это сужается до проблемы ans == 1, но при вводе 1 и распечатывании его перед сравнением он пропускает if и каждый раз переходит к оператору else.

Итак, я думаю, проблема в том, что я не знаю, к какому типу переменной относится переменная ans, и что мне нужно привести ее к определенному типу. Или мне нужно принудительно использовать определенный тип ввода для пользователя ... Или вы все тоньше, чем я, и, возможно, у вас есть отличный способ исправить это!

Я новичок в Python и действительно знаю только Java.

print ("Welcome to _________!")
ans = input("1. Start\n2. How to play\n3. Not now (exit)\n\n")

print ("\nYou have entered " + ans) 

try:
    if (ans == 1 or ans == "1"):
        game_main()
    elif (ans == 2):
        print (dict_startmenu[2])
    elif (ans == 3):
        print (dict_startmenu[3])
    else:
        print("*****else block")

except Exception as e:
    print("fatal error in start block")

1 Ответ

0 голосов
/ 03 мая 2018

Вы должны определить целое число при вводе 1,2 или 3

ans = int(input("1. Start\n2. How to play\n3. Not now (exit)\n\n "))

распечатать:

print ("\nYou have entered "), ans

тогда:

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