본문 바로가기

파이썬으로 로또 1등 도전기

3일차) 로또번호 5개 랜덤 생성 및 제외 숫자 기능 추가

안녕하세요, 여러분! 오늘은 파이썬으로 재미있고 간단한 **로또 번호 생성기**를 만들어볼 거예요. 그런데! 그냥 번호를 랜덤으로 뽑기만 하면 조금 심심하겠죠? 그래서 **제외할 번호**를 설정해서 내가 싫어하는(!) 숫자들을 뺀 나머지로 번호를 생성할 수 있도록 기능을 추가해봤습니다. 지금부터 하나씩 살펴볼까요?

### 1. 로또 번호는 어떻게 뽑을까?

로또 번호는 **1부터 45**까지의 숫자 중에 **6개**를 랜덤으로 선택하는 방식이에요. 여기에 파이썬의 강력한 도구인 `random` 모듈을 사용하면 정말 간단하게 랜덤 번호를 생성할 수 있습니다.

먼저, 기본적인 번호 생성 코드를 만들어볼게요. 여기선 숫자들을 뽑고 보기 좋게 정렬까지 해볼 거예요:

import random

def generate_lotto_numbers():
    # 1부터 45까지의 번호 리스트 만들기
    numbers = list(range(1, 46))
    
    # 6개의 랜덤 번호 뽑기 (중복 없이!)
    lotto_numbers = random.sample(numbers, 6)
    
    # 번호를 오름차순으로 정렬
    lotto_numbers.sort()
    return lotto_numbers

# 드디어 로또 번호 추첨!
print("이번 주 내 당첨 번호:", generate_lotto_numbers())



위 코드를 실행하면, 매번 1부터 45 사이의 숫자 6개가 랜덤으로 선택되어 출력됩니다. 그런데 여기서 "나 이 번호 싫어! 제외하고 싶어!" 하는 번호가 있을 수 있겠죠?

그래서 **제외수 기능**을 추가해볼 거예요!



### 2. 싫은 번호는 빼자! (제외 숫자 설정하기)

제외 숫자를 설정하려면 어떻게 해야 할까요? 아주 간단합니다. 그냥 제외하고 싶은 번호를 미리 리스트로 만들어서 그 번호는 로또 추첨에 포함되지 않도록 해주면 됩니다. 예를 들어, 저는 **3, 15, 22, 35**를 뺄 거예요. 로직은 이렇습니다:

- 1부터 45까지의 번호를 리스트로 만든다.
- 내가 제외하고 싶은 숫자들을 그 리스트에서 제거한다.
- 남은 숫자들 중에서 6개를 랜덤으로 뽑는다.

짜잔! 이렇게 하면 나만의 "맞춤형" 로또 번호 생성기가 완성됩니다. 그럼 코드를 조금 더 수정해볼게요:

import random

def generate_lotto_numbers(excluded_numbers=None):
    # 제외할 번호가 없으면 빈 리스트로 초기화
    if excluded_numbers is None:
        excluded_numbers = []
    
    # 로또 번호는 1부터 45까지 가능
    numbers = list(range(1, 46))
    
    # 제외수는 numbers 리스트에서 제거
    numbers = [num for num in numbers if num not in excluded_numbers]
    
    # 6개의 번호를 랜덤으로 뽑습니다 (중복 없이!)
    lotto_numbers = random.sample(numbers, 6)
    
    # 보기 좋게 번호를 정렬
    lotto_numbers.sort()
    return lotto_numbers

# 제외할 번호 설정
excluded_numbers = [3, 15, 22, 35]

# 한 번에 5개씩 로또 번호를 뽑습니다.
for i in range(5):
    print(f"세트 {i+1}의 당첨 번호:", generate_lotto_numbers(excluded_numbers))


### 3. 한 번에 5세트의 로또 번호를 뽑아보자!

이제 이 로또 번호 생성기를 통해 **한 번에 5개의 세트**를 생성해볼게요. 다섯 번 반복해서 새로운 로또 번호들을 출력해주는 코드입니다.

- 먼저 `excluded_numbers`라는 변수에 **제외할 번호들**을 담아둡니다.
- 그런 다음 `generate_lotto_numbers()` 함수에 그 숫자들을 넣어주면 끝!

결과는 아래와 같이 나옵니다.

세트 1의 당첨 번호: [2, 6, 9, 27, 33, 44]
세트 2의 당첨 번호: [4, 7, 12, 30, 37, 45]
세트 3의 당첨 번호: [1, 5, 14, 25, 28, 42]
세트 4의 당첨 번호: [8, 13, 16, 20, 34, 43]
세트 5의 당첨 번호: [10, 11, 17, 19, 31, 41]



**3, 15, 22, 35**는 내가 싫어하는 번호라서 제외했는데, 잘 적용된 것 같죠? 😄



### 4. 마무리

이렇게 해서 파이썬으로 **로또 번호 생성기**를 만들어봤습니다. 기본적인 랜덤 추첨 기능에 제외할 번호까지 추가해서 원하는 번호를 만들 수 있죠! 이 코드를 조금 더 발전시키면 **보너스 번호**를 뽑거나, **역대 당첨 번호 분석** 등 다양한 기능도 추가할 수 있을 것 같아요.

파이썬의 강력한 기능을 이용해서 로또 번호 추첨도 이렇게 쉽게 할 수 있다니, 참 재미있지 않나요? 여러분도 직접 한 번 만들어보세요! 🤩



**혹시나!** 로또 당첨되면... 저랑 나누는 거 아시죠? (농담이에요 😉)

그럼 다음에 또 재미있는 파이썬 프로젝트로 돌아올게요!