Почему это печатается, если и еще? - PullRequest
0 голосов
/ 12 марта 2019

Итак, я работаю над игрой в блэкджек для своего класса python, и мне трудно с моим оператором if, if, else, когда я спрашиваю игрока, хотят ли они ударить.Это такая маленькая и глупая вещь, но я не могу на всю жизнь понять, почему это происходит.

def playerDraw():
    getinput = True

    while getinput == True:

        print("do you want another card?")
        temp = input("Type y for yes, n for No:       ")


        if temp == 'y' or temp == 'Y':
            playerTurn = False
            getinput = False
            print("yes")


        if temp == 'n' or temp == 'N':
            playerTurn = False
            getinput = False
            print("no")
        else:
            print("try again")

Я спрашиваю пользователя, хотят ли они взять другую карту или завершить свой ход.Когда пользователь вводит «да», он печатает новую карточку, а затем также печатает «повторить попытку», а когда пользователь вводит «нет», он только печатает заканчивает ход.
Почему в первом операторе if это происходит?также напечатать тело кода else?

1 Ответ

0 голосов
/ 12 марта 2019

В вашем исходном коде вводится второй if (для 'n' или 'N') независимо от того, что происходит в первом if.Вам необходимо использовать elif, как показано ниже:

def playerDraw():
    getinput = True

    while getinput == True:

        print("do you want another card?")
        temp = input("Type y for yes, n for No:       ")

        if temp == 'y' or temp == 'Y':
            playerTurn = False
            getinput = False
            print("yes")

        elif temp == 'n' or temp == 'N':
            playerTurn = False
            getinput = False
            print("no")
        else:
            print("try again")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...