Проблема с блэкджеком: приведенный ниже код не выполняет оператор else, а снова повторяет условие elif - PullRequest
0 голосов
/ 12 февраля 2020
def blackjack(a,b,c):
    nums = (a,b,c)
    for (nums) in range(1,21):
        if (a+b+c)<=21:
            return (a+b+c)
        if (a+b+c)>21 & (a==11 or b==11 or c == 11):
            return(a+b+c-10)
        else:
            return('BUST')

1 Ответ

0 голосов
/ 12 февраля 2020

Либо окружите первое выражение в вашем втором, если заключить в скобки:

def blackjack(a,b,c):
    nums = (a,b,c)
    for (nums) in range(1,21):
        if (a+b+c)<=21:
            return (a+b+c)
        if ((a+b+c)>21) & (a==11 or b==11 or c == 11): #fixed line
            return(a+b+c-10)
        else:
            return('BUST')  

Еще один способ pythoni c - использовать оператор and. Также рассмотрите возможность использования if-elif-else, так как нет ни первого, ни второго способа, если операторы будут истинными одновременно.

Найдите приведенный ниже фиксированный код:

def blackjack(a,b,c):
    nums = (a,b,c)
    for (nums) in range(1,21):
        if (a+b+c)<=21:
            return (a+b+c)
        elif (a+b+c)>21 and (a==11 or b==11 or c == 11):
            return(a+b+c-10)
        else:
            return('BUST')

...