Вы, вероятно, можете сделать это без функции, но я чувствую, что ваше следующее задание будет заключаться в расширении функциональности кода для выполнения чего-то еще.В приведенном ниже примере я попытался закодировать правила, которые вы, похоже, используете.
- Откажитесь от масти карты, вы, кажется, не используете это, если я что-то пропустил.
- Если счет уже не превышает какое-то число
score_threshold
туз считается за 11, иначе 1. - Количество лицевых карт равно 10, число числовых карт равно их количеству.
Итакзатем мы можем закодировать эти правила в функции:
def process_cards(cards, score_threshold):
score = 0
face_cards = ["Jack", "Queen", "King"]
for x in cards:
card = x.split()[0] # Discard suit
if card in face_cards: # Face cards are ten
score = score + 10
elif card == "Ace":
# Score based on score_threshold arg
if score <= score_threshold:
score = score + 11
else:
score = score + 1
# If it's a digit, pass through that number to score
elif card.isdigit():
score = score + int(card)
# Everything else is an error case
else:
print("Invalid card!")
# Make the score accessible outside the function
return score
p = process_cards(["Queen of Spades", "Ace of Hearts"], 9)
print(p) # 11
В конце мы можем присвоить значение return
этой функции переменной, а затем использовать его для всего, что будет дальше.