본문 바로가기

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

6일차) 최신 회차부터 이전 10회까지 가져오기

안녕하세요! 오늘은 파이썬을 사용해 로또 번호를 쉽게 확인하는 방법에 대해 이야기해보려 합니다. 특히, 최신 회차 번호부터 이전 10회까지의 당첨 번호를 가져오는 간단한 코드를 함께 살펴보겠습니다.

## 1. 로또의 기본

한국의 로또는 매주 토요일에 추첨이 이루어지며, 1부터 45까지의 숫자 중에서 6개를 무작위로 선택하게 됩니다. 그래서 오늘은 이 로또 번호를 자동으로 가져와서 확인하는 코드를 만들어 보겠습니다!

## 2. 코드 소개

이 코드는 두 개의 주요 함수를 포함하고 있습니다. 하나는 최신 회차 번호를 계산하는 함수이고, 다른 하나는 특정 회차의 로또 당첨 번호를 가져오는 함수입니다. 아래 코드를 함께 보시죠.

import requests
from datetime import datetime

def get_latest_draw_no():
    # 로또 1회차 기준 날짜 (2002년 12월 7일)
    first_draw_date = datetime(2002, 12, 7)
    
    # 오늘 날짜
    today = datetime.today()
    
    # 첫 회차 기준으로 경과한 일 수 계산
    days_passed = (today - first_draw_date).days
    
    # 매주 토요일에 추첨 (7일에 한 번씩 진행되므로 7로 나눔)
    draw_no = (days_passed // 7) + 1
    
    return draw_no

def get_lotto_winning_numbers(draw_no):
    # 공공데이터포털 로또 API URL
    url = f"https://www.dhlottery.co.kr/common.do?method=getLottoNumber&drwNo={draw_no}"
    
    # API로부터 데이터 가져오기
    response = requests.get(url)
    data = response.json()
    
    if data["returnValue"] == "success":
        # 로또 번호 출력
        winning_numbers = [data[f"drwtNo{i}"] for i in range(1, 7)]
        bonus_number = data["bnusNo"]
        return winning_numbers, bonus_number
    else:
        return None, None

# 최신 회차 번호 계산
latest_draw_no = get_latest_draw_no()
print(f"오늘 날짜 기준 최신 로또 회차 번호는: {latest_draw_no}회차 입니다.")

# 최신 회차와 이전 10회 로또 번호 가져오기
lotto_results = {}
for i in range(latest_draw_no, latest_draw_no - 11, -1):
    numbers, bonus = get_lotto_winning_numbers(i)
    if numbers:
        lotto_results[i] = {
            "winning_numbers": numbers,
            "bonus_number": bonus
        }

# 결과 출력
for draw_no, result in lotto_results.items():
    print(f"{draw_no}회차: 당첨 번호: {result['winning_numbers']}, 보너스 번호: {result['bonus_number']}")



### 3. 코드 설명

- **최신 회차 번호 계산하기**:
  - `get_latest_draw_no` 함수는 로또 첫 회차 기준 날짜인 2002년 12월 7일부터 오늘까지의 경과 일수를 계산하여 최신 회차 번호를 반환합니다.

- **로또 번호 가져오기**:
  - `get_lotto_winning_numbers` 함수는 특정 회차 번호를 입력받아 해당 회차의 당첨 번호와 보너스 번호를 API를 통해 가져옵니다. 요청이 성공적으로 이루어지면 로또 번호를 리스트로 반환합니다.

- **결과 출력**:
  - 마지막으로 최신 회차부터 이전 10회까지의 당첨 번호를 출력합니다. 각 회차의 당첨 번호와 보너스 번호를 확인할 수 있습니다.

### 4. 결과 예시

코드를 실행하면, 예를 들어 아래와 같은 결과를 볼 수 있습니다:

오늘 날짜 기준 최신 로또 회차 번호는: 1141회차 입니다.
PS C:\Users\hpyst> & E:/python/python.exe e:/workspace_python/hello.py
오늘 날짜 기준 최신 로또 회차 번호는: 1141회차 입니다.
1141회차: 당첨 번호: [7, 11, 12, 21, 26, 35], 보너스 번호: 20
1140회차: 당첨 번호: [7, 10, 22, 29, 31, 38], 보너스 번호: 15
1139회차: 당첨 번호: [5, 12, 15, 30, 37, 40], 보너스 번호: 18
1138회차: 당첨 번호: [14, 16, 19, 20, 29, 34], 보너스 번호: 35
1137회차: 당첨 번호: [4, 9, 12, 15, 33, 45], 보너스 번호: 26
1136회차: 당첨 번호: [21, 33, 35, 38, 42, 44], 보너스 번호: 1
1135회차: 당첨 번호: [1, 6, 13, 19, 21, 33], 보너스 번호: 4
1134회차: 당첨 번호: [3, 7, 9, 13, 19, 24], 보너스 번호: 23
1133회차: 당첨 번호: [13, 14, 20, 28, 29, 34], 보너스 번호: 23
1132회차: 당첨 번호: [6, 7, 19, 28, 34, 41], 보너스 번호: 5
1131회차: 당첨 번호: [1, 2, 6, 14, 27, 38], 보너스 번호: 33



이처럼 간단하게 최신 로또 번호를 확인할 수 있습니다!

### 5. 마치며

이번 포스트를 통해 파이썬으로 로또 번호를 쉽게 가져오는 방법을 알아보았습니다. 로또 번호 추첨에 대한 데이터를 쉽게 확인할 수 있으니, 여러분도 코드를 활용해 재미있는 프로젝트를 만들어보세요! 로또 당첨의 행운이 함께하길 바랍니다! 🎉

이 코드에 대해 궁금한 점이나 추가하고 싶은 내용이 있다면 언제든지 댓글로 남겨주세요. 감사합니다!