Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python으로 카드 덱 섞기 – itertools와 random 라이브러리 활용법

Python에서 카드 덱(deck)을 섞어야 할 때는 itertoolsrandom 패키지를 함께 사용하면 됩니다. 특히 random 라이브러리에는 데이터를 무작위로 섞어주는 shuffle() 메서드가 내장되어 있어, 별도의 복잡한 로직 없이 간단하게 카드를 셔플할 수 있습니다.

예제 코드

import itertools, random

my_deck = list(itertools.product(range(1, 11), ['Spade', 'Heart', 'Diamond', 'Club']))
print("카드를 섞는 중입니다")
random.shuffle(my_deck)
print("카드를 무작위로 뽑습니다")
print("뽑은 카드는 다음과 같습니다:")
for i in range(5):
    print(my_deck[i][0], "of", my_deck[i][1])

실행 결과

카드를 섞는 중입니다
카드를 무작위로 뽑습니다
뽑은 카드는 다음과 같습니다:
1 of Diamond
5 of Diamond
4 of Club
2 of Spade
4 of Heart

※ 실행할 때마다 무작위로 결과가 달라지므로 위 출력은 예시입니다.

코드 설명

  • 패키지 임포트: 먼저 필요한 itertoolsrandom 모듈을 가져옵니다.
  • 덱 생성: itertools.product() 메서드를 사용해 숫자(1~10)와 문양(Spade, Heart, Diamond, Club)의 모든 조합으로 이루어진 카드 덱을 리스트 형태로 만듭니다.
  • 셔플: 생성된 리스트를 random 라이브러리의 shuffle() 메서드로 무작위 순서로 섞습니다.
  • 메시지 출력: 진행 상황을 알려주는 안내 문구를 화면에 표시합니다.
  • 반복 출력: 섞인 덱에서 앞의 5장을 반복문으로 순회하며 하나씩 꺼냅니다.
  • 결과 표시: 뽑힌 카드의 숫자와 문양을 콘솔에 출력합니다.

추가 팁

실제 표준 52장 덱을 만들고 싶다면 range(1, 11) 대신 range(1, 14)를 사용하고, J·Q·K·A를 문자열로 추가하면 됩니다. 또한 카드를 한 장씩 뽑아 제거하려면 my_deck.pop() 메서드를 활용하는 것도 좋은 방법입니다.