두 개의 개별 덱으로 카드 덱을 나눌 수 있도록 여러 번 클래스 메서드를 반복하고 싶습니다. 내가 d1=Deck()
다음에 deck1 = d1.deal()*26
에 추가하여 [: 26] 및 [26 :] (분명히 목록에만 해당)을 시도했지만 둘 다 작동하지 않았습니다. 방금 클래스를 만드는 법을 배웠습니다.파이썬에서 클래스 메서드 반복하기
원하는 출력은 deck1=["""26 random cards"""]
및 deck2=["""26 random cards"""]
입니다.
관련 코드는 : 당신이 작업을 특정 횟수를 반복 할 때마다
import random
suits = ['H','C','S','D']
ranks = ['A']+list(map(str,range(2,10)))+['X','J','Q','K']
values = [14]+list(range(2,14))
class Card:
def __init__(self,suit,rank):
self.suit=suit
self.rank=rank
self.value=values[ranks.index(self.rank)]
def __str__(self):
return "*------*\n|{0}{1} |\n| |\n| {0}{1}|\n*------*".format(self.rank,self.suit)
def __gt__(self,other):
return self.value > other.value
def __lt__(self,other):
return self.value < other.value
def __eq__(self,other):
return self.value == other.value
class Deck:
"""This class is for creating deck"""
def __init__(self):
self.deck=[]
for suit in suits:
for rank in ranks:
self.deck.append(Card(suit,rank))
self.shuffle()
def __str__ (self):
tmp=''
for card in self.deck:
tmp+=str(card)+'\n'
return tmp
def shuffle(self):
random.shuffle(self.deck)
def deal(self):
return self.deck.pop()
감사합니다! 패트릭의 대답보다 간단합니다. –