'int' object pas itérable
j'ai essayé d'obtenir la somme de la liste qui a changé ses valeurs à partir d'une chaîne de int à l'aide d'une fonction
player_hand = []
def card_type(player_hand):
card_value = 0
if player_hand[0] == 'A':
card_value = 11
if player_hand[0] == 'J':
card_value = 10
if player_hand[0] == 'Q':
card_value = 10
if player_hand[0] == 'K':
card_value = 10
if player_hand[0] == '2':
card_value = 2
if player_hand[0] == '3':
card_value = 3
if player_hand[0] == '4':
card_value = 4
if player_hand[0] == '5':
card_value = 5
if player_hand[0] == '6':
card_value = 6
if player_hand[0] == '7':
card_value = 7
if player_hand[0] == '8':
card_value = 8
if player_hand[0] == '9':
card_value = 9
if player_hand[0] == '1':
card_value = 10
def player_hit(card_deck):
rando = random.randint(0,len(card_deck)-1)
player_hand.append(card_deck[rando])
card_deck.remove(card_deck[rando])
et puis essayer de trouver la somme de la liste des joueurs à l'aide de
card_total = 0
print('Player was handed:')
for i in range(2):
print(player_hit(card_deck))
for i in len(player_hand)-1:
print('\n',sum(card_type(player_hand[i])))
mais j'ai une erreur
for i in len(player_hand)-1:
TypeError: 'int' object is not iterable
je ne comprends pas quel est le problème parce que ive pris les valeurs et les convertir en int est déjà ainsi que vérifié la liste de l'indice de gamme. S'il vous plaît aider
Vous devez vous connecter pour publier un commentaire.
len(player_hand) - 1
est juste un entier, mais le code que vous avez écrit essaie de boucler sur elle. Vous avez besoin d'un objet iterable objet pour effectuer unfor
boucle. Essayez ceci:Une alternative serait de l'itération directement sur
player_hand
car il est itératif, comme cela:card_type
fonction s'attend à une séquence de caractères (une "main") plutôt que d'un seul caractère que vous êtes de passage. Ce sera effectivement le travail, étant donné que même une seule chaîne de caractères est une séquence de type, mais il suggère que la conception est un peu foiré (probablementcard_type
devrait s'attendre à une carte unique comme argument et passez la[0]
d'indexation). Aussi,player_hit
retourneNone
(car il n'y a pasreturn
états), mais vous imprimez le résultat.Ici est un objet-version orientée qui peut être plus facile de travailler avec: