<aside> 💡 열거형*(enumeration)*이란 특정 종류의 데이터에 정해진 값들 중 하나만 들어갈 수 있도록 하는 것을 말합니다. 파이썬의 열거형은 enum 패키지를 통해 제공됩니다.

</aside>

만약 열거형이 없다면…

today = "Monday"

if today == "MONDAY":
    print("오늘은 월요일")
    
    
MON, TUE, WED, THU, FRI, SAT, SUN = 1, 2, 3, 4, 5, 6, 7
ROCK, PAPER, SCISSORS = 1, 2, 3

today = MON
today = ROCK

열거형 사용

from enum import Enum, unique, auto

# unique 데코레이터 : 겹치는 값이 없는지 확인
# ⚠️ 겹치게 하고 실행해 볼 것
@unique
class Weekday(Enum):
    MONDAY = 1
    TUESDAY = 2
    WEDNESDAY = 3
    THURSDAY = 4
    FRIDAY = 5
    SATURDAY = 6
    SUNDAY = 7

# auto : 자동으로 값 할당
class Hand(Enum):
    ROCK = auto()
    PAPER = auto()
    SCISSORS = auto()
for day in Weekday:
    print(day.name, day.value)

for hand in Hand:
    print(hand.name, hand.value)
today = Weekday.MONDAY
# today = Weekday.SUNDAY

tomorrow = Weekday((today.value + 1) % 7) # 값으로 열거형 객체 생성

pass
def determine_winner(player_one, player_two):
    win_map = {
        Hand.ROCK: Hand.SCISSORS,  # 바위는 가위를 이김
        Hand.PAPER: Hand.ROCK,     # 보는 바위를 이김
        Hand.SCISSORS: Hand.PAPER  # 가위는 보를 이김
    }
    
    if player_one == player_two:
        return "Draw"
    elif win_map[player_one] == player_two:
        return "Player One Wins"
    else:
        return "Player Two Wins"

player_one_hand = Hand.ROCK
player_two_hand = Hand.SCISSORS
game_result = determine_winner(player_one_hand, player_two_hand)

질문 / 오류신고 / 기타 제안하기