Мое возвращаемое значение всегда распечатывает в общей сложности 20 независимо от того, какие карты находятся в user_hand. Любая причина в том, почему?Возврат всегда дает мне то же значение
suits = ["Heart", "Diamond", "Spade", "Club"]
ranks = ['A', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K']
deck = [(suit, rank) for rank in ranks for suit in suits]
random.shuffle(deck,random.random)
user_hand = []
dealer_hand = []
user_hand.append(deck.pop())
dealer_hand.append(deck.pop())
user_hand.append(deck.pop())
dealer_hand.append(deck.pop())
def handtotal (hand):
total = 0
for rank in hand:
if rank == "J" or "Q" or "K":
total += 10
elif rank == 'A' and total < 11:
total += 11
elif rank == 'A' and total >= 11:
total += 1
elif rank == '2':
total += 2
elif rank == '3':
total += 3
elif rank == '4':
total += 4
elif rank == '5':
total += 5
elif rank == '6':
total += 6
elif rank == '7':
total += 7
elif rank == '8':
total += 8
elif rank == '9':
total += 9
return total
print ("Your current hand is {}".format(user_hand))
print ("This provides you with a total of:")
print (handtotal(user_hand))
'ранга == "J" или "Q" или "K"' возвращает истину, вы хотите сделать 'ранг в [ "J", "Q" , "K"] ' – fredtantini
Возможный дубликат [Как проверить одну переменную на несколько значения?] (http://stackoverflow.com/questions/15112125/how-do-i-test-one-variable-against-multiple-values) – fredtantini
Вы действительно должны работать над сокращением вашей ошибки до минимально возможного кода. Это могло бы объяснить вам, какая строка была неправильной. – Teepeemm