Странные результаты Python
Так что у меня есть этот код
class Deck(): deck=[] for i in range(1,15): deck.append(Card("red","heart",i)) deck.append(Card("red","diamond",i)) deck.append(Card("black","club",i)) deck.append(Card("black","spade",i)) #make our deck random random.shuffle(deck) #removing cards with number 11 because 1 and 11 cards are the same for i in deck: if i.number==11: deck.remove(i) #hand class creates hands of 5 cards, taking items from the list created in deck class class Hand(): def get_hand(): #check if there are enough cards to make a new hand if len(Deck.deck)<5 : print("No more hands to deal") else: #get the first 5 items from our deck iterator = islice(Deck.deck, 5) #show the hand created for i in iterator: print('{} {} {}'.format(i.number,i.type,i.colour)) #delete the shown card from the deck Deck.deck.remove(i)
После того как я начну спамить
Hand.get_hand()
пока в моей колоде из 52 карт не останется меньше 10 карт, он будет печатать не другую руку из 5 карт, а 4 карты. Что здесь не так?
Что я уже пробовал:
Я попытался подправить его.
if len(Deck.deck)<5 :линия, но никаких результатов