본문 바로가기
Development/Python

[Python] 파이썬 로또 당첨번호 수집 & 통계 Tool 만들기

by 선인장 🌵 2022. 3. 20.
728x90
728x90

[Python] 파이썬 로또 당첨번호 수집 & 통계 Tool 만들기

얼마 전 로또 당첨번호 1회 1007회 최근까지 다운로드하는 방법이랑 당첨번호 통계에 대해서 작성한 적 있다.

그리고 간단히 SQLite를 이용해서 DataBase까지 만들어 보았다.

[ETC] 로또 당첨 번호 모든 회차 다운로드 하기

로또 당첨 번호 모든 회차 다운로드 저번 주 로또를 우연히 구매하고선 모든 회차의 당첨 번호를 다운로드할 수는 없을까 생각을 해보다가 현재 로또를 발행하고 있는 동행복권에서 다운로

happylie.tistory.com

[ETC] 로또 1회 ~ 1003회까지 당첨된 번호는?

로또 1회 ~ 1003회까지 당첨된 번호는? 오늘 시간으로 지금까지 발행된 1회 차부터 1003회 차까지 모든 당첨번호를 가지고 어떤 번호가 제일 많이 사용되고 45개 숫자가 얼마나 사용되었을까?라

happylie.tistory.com

[ETC] 로또 당첨 번호 데이터베이스 만들기

로또 당첨 번호 데이터베이스 만들기 이전에 로또 당첨 번호의 모든 회차를 다운로드하는 방법에 대해서 알아본 적이 있다. [ETC] 로또 당첨 번호 모든 회차 다운로드하기 [ETC] 로또 당첨 번호

happylie.tistory.com

그런데 계속적으로 수동으로 확인하고 최신 데이터를 매번 입력하는 게 번거로워 간단하게 파이썬을 이용해서 Tool을 만들어 보았다.

[Python] 파이썬 로또 당첨번호 수집 & 통계 Tool 만들기

1. 설치 방법

1.1 Git Clone

현재 해당 내용에 대해서 Github에 정리해서 올려놓았다.

GitHub - happylie/lotto_data: 로또 당첨번호 데이터베이스 & 업데이트 Tool

로또 당첨번호 데이터베이스 & 업데이트 Tool. Contribute to happylie/lotto_data development by creating an account on GitHub.

github.com

일단 해당 Tool을 사용하기 위해서는 Github를 통해서 Clone을 받도록 하자.

  • $ git clone https://github.com/happylie/lotto_data.git
# Github Clone 받기

$ git clone https://github.com/happylie/lotto_data.git

1.2 Requirements 설치

해당 Tool을 사용하기 위해서는 파이썬에 기본적으로 설치된 라이브러리 이외 추가적으로 설치가 필요한 라이브러리가 있다.

특별히 사용해야 하는 버전은 없으며, 현재 최신 버전으로 설치하여 구성하였다.

  • requests
  • bs4

그러나 각각 설치할 필요 없이 간단하게 pip 통해서 미리 설정된 requirements.txt 파일을 읽어 설치하면 된다.

  • $ pip install -r requirements.txt
# pip를 통한 설치

$ vi requirements.txt
requests
bs4

$ pip install -r requirements.txt

1.3 Requirements 설치 확인

그럼 이제 구동을 하기 위한 라이브러리가 설치되어 있는지 한번 살펴보도록 하자.

  • $ pip freeze
# pip를 이용한 설치된 라이브러리 확인

$ pip freeze                                       
beautifulsoup4==4.10.0
bs4==0.0.1
certifi==2021.10.8
charset-normalizer==2.0.12
idna==3.3
requests==2.27.1
soupsieve==2.3.1
urllib3==1.26.9

requests, bs4가 설치되면서 부수적으로 같이 설치되는 라이브러리들까지 잘 설치가 된 것을 확인할 수 있다.

728x90

2. 실행 방법

2.1 Help(도움말)

이제 실행할 준비가 다 되어있으니 실행해보도록 하자.

우선 정상적으로 구동이 되는지 먼저 Help(도움말) 옵션이 잘 구동되는지 확인하자.

  • $ python lotto_data.py -h
  • $ python lotto_data.py --help
# Help 옵션 확인

$ python lotto_data.py -h
usage: lotto [-h] [-d DB_PATH] [-i] [-s] [-t [TOP]] [-c [CUSTOM]] [-sr [SROUND]] [-er [EROUND]] [-exb] [-v]

로또 최신 당첨번호 입력 및 통계 Tool

optional arguments:
  -h, --help            show this help message and exit
  -d DB_PATH, --db DB_PATH
                        로또 당첨번호 DataBase Path
  -i, --insert          최신 로또 당첨번호 DataBase Insert
  -s, --stat            로또 당첨번호 통계
  -t [TOP], --top [TOP]
                        로또 당첨번호 전체 top 통계
  -c [CUSTOM], --custom [CUSTOM]
                        로또 당첨번호 Custom top 통계
  -sr [SROUND], --sround [SROUND]
                        로또 당첨번호 top 통계
  -er [EROUND], --eround [EROUND]
                        로또 당첨번호 top 통계
  -exb, --ex_bonus      보너스볼 제외
  -v, --version         show program's version number and exit

2.1 Help(도움말)
2.1 Help(도움말)

2.2 최신 로또 당첨번호 등록 하기

이제 최신 로또 당첨번호를 데이터베이스에 등록해보도록 하자.

해당 부분은 -i / --insert 옵션을 사용하면 된다.

  • $ python lotto_data.py -i
  • $ python lotto_data.py --insert
# -i / --insert 옵션을 통해 최신 당첨번호 등록하기

$ python lotto_data.py -i
정상적으로 1007회 로또 당첨 번호를 데이터베이스에 등록하였습니다.

2.2 최신 로또 당첨번호 등록 하기
2.2 최신 로또 당첨번호 등록 하기

글을 작성하는 시점인 1007회까지는 현재 데이터베이스에 등록되어 있다.

2.3 전체 당첨번호 통계 확인하기

이제는 등록되어 있는 당첨번호의 통계를 확인해보도록 하자.

전체 당첨번호 통계는 1회부터 등록되어 있는 당첨번호가 나왔던 부분을 제일 많은 나온 번호부터 순차적으로 나열하였다.

해당 부분은 -s / --stat 옵션을 사용하면 된다.

  • $ python lotto_data.py -s
  • $ python lotto_data.py --stat
# 1회부터 전체 당첨번호 통계

$ python lotto_data.py -s
### 1회 ~ 1007회 전체 통계 ###
43번 : 180개
1번 : 172개
27번 : 172개
34번 : 171개
17번 : 171개
13번 : 171개
39번 : 167개
4번 : 167개
33번 : 167개
12번 : 165개
18번 : 165개
20번 : 164개
2번 : 163개
10번 : 162개
14번 : 162개
24번 : 162개
37번 : 161개
40번 : 161개
38번 : 160개
26번 : 160개
31번 : 158개
16번 : 158개
7번 : 158개
3번 : 157개
11번 : 157개
21번 : 157개
15번 : 155개
45번 : 155개
42번 : 154개
8번 : 154개
36번 : 154개
6번 : 154개
44번 : 153개
19번 : 152개
35번 : 152개
5번 : 150개
30번 : 149개
25번 : 147개
28번 : 142개
32번 : 140개
23번 : 138개
41번 : 138개
29번 : 137개
9번 : 129개
22번 : 128개

2.3 전체 당첨번호 통계 확인하기
2.3 전체 당첨번호 통계 확인하기

2.4 전체 당첨번호 보너스볼 제외 통계 확인하기

2.3 항목에서는 전체 당첨번호에 대한 데이터를 통계를 보여주었다.

그러나 보너스볼이 없이 6개가 맞아야 1등 당첨이니 보너스볼을 제외하고 통계를 내어 보았다.

해당 부분은 -s / --stat 옵션을 동일하게 사용하면서 그 위에 -exb / --ex_bonus 옵션을 추가하여 사용하면 된다.

  • $ python lotto_data.py -s -exb
  • $ python lotto_data.py --stat --ex_bonus
# 1회부터 전체 당첨번호 통계(보너스볼 제외)

$ python lotto_data.py -s -exb
### 1회 ~ 1007회 보너스볼 제외 통계 ###
34번 : 152개
18번 : 148개
27번 : 146개
43번 : 146개
17번 : 145개
13번 : 145개
39번 : 145개
1번 : 143개
12번 : 142개
14번 : 142개
37번 : 141개
40번 : 141개
20번 : 140개
33번 : 140개
45번 : 140개
4번 : 139개
10번 : 139개
2번 : 136개
15번 : 136개
11번 : 136개
24번 : 136개
21번 : 136개
31번 : 135개
44번 : 135개
3번 : 134개
8번 : 134개
19번 : 134개
36번 : 134개
42번 : 133개
38번 : 133개
16번 : 133개
7번 : 133개
26번 : 132개
25번 : 130개
5번 : 130개
6번 : 126개
35번 : 125개
28번 : 124개
29번 : 124개
41번 : 123개
23번 : 121개
30번 : 121개
22번 : 114개
32번 : 114개
9번 : 106개

2.4 전체 당첨번호 보너스볼 제외 통계 확인하기
2.4 전체 당첨번호 보너스볼 제외 통계 확인하기

보너스볼을 포함한 것과 제외한 통계 데이터가 틀린 것을 확인할 수 있다.

728x90

2.5 당첨번호 Top 통계 확인하기

이제는 등록되어 있는 당첨번호의 통계를 전체로 확인하지 말고 내가 선택한 숫자만큼 확인해보도록 하자.

해당 부분은 -t / --top 옵션을 사용하면 된다.

옵션 뒤에 아무것도 작성하지 않으면 기본 6개 내용을 보여준다.

  • $ python lotto_data.py -t
  • $ python lotto_data.py --top
  • $ python lotto_data.py -t 10
# 당첨번호 Top 통계

$ python lotto_data.py -t
### 1회 ~ 1007회 Top 6 전체 통계 ###
43번 : 180개
1번 : 172개
27번 : 172개
34번 : 171개
17번 : 171개
13번 : 171개

$ python lotto_data.py -t 10
### 1회 ~ 1007회 Top 10 전체 통계 ###
43번 : 180개
1번 : 172개
27번 : 172개
34번 : 171개
17번 : 171개
13번 : 171개
39번 : 167개
4번 : 167개
33번 : 167개
12번 : 165개

2.5 당첨번호 Top 통계 확인하기
2.5 당첨번호 Top 통계 확인하기

2.6 당첨번호 Top 보너스볼 제외 통계 확인하기

이번에는 2.5 항목에서 확인한 내용에서 보너스볼을 제외하여 통계를 확인해보도록 하자.

해당 부분은 -t / --top 옵션을 동일하게 사용하면서 그 위에 -exb / --ex_bonus 옵션을 추가하여 사용하면 된다.

옵션 뒤에 아무것도 작성하지 않으면 마찬가지로 기본 6개 내용을 보여준다.

  • $ python lotto_data.py -t -exb
  • $ python lotto_data.py --top --ex_bonus
  • $ python lotto_data.py -t 10 -exb
# 당첨번호 Top 통계(보너스볼 제외)

$ python lotto_data.py -t -exb
### 1회 ~ 1007회 Top 6 보너스볼 제외 통계 ###
34번 : 152개
18번 : 148개
27번 : 146개
43번 : 146개
17번 : 145개
13번 : 145개

$ python lotto_data.py -t 10 -exb
### 1회 ~ 1007회 Top 10 보너스볼 제외 통계 ###
34번 : 152개
18번 : 148개
27번 : 146개
43번 : 146개
17번 : 145개
13번 : 145개
39번 : 145개
1번 : 143개
12번 : 142개
14번 : 142개

2.6 당첨번호 Top 보너스볼 제외 통계 확인하기
2.6 당첨번호 Top 보너스볼 제외 통계 확인하기

2.7 당첨번호 커스텀 Top 통계 확인하기

이제는 등록되어 있는 당첨번호의 통계를 원하는 회차, Top을 넣어서 사용하는 사람에 맞게 통계를 내어 보았다.

해당 부분은 -c / --custom 옵션을 사용하며 반드시 -sr / --sround, -er / --eround 옵션도 같이 사용해야 한다.

-sr / --sround는 시작 회차이고 -er / --eround는 마지막 회차이다.

-c 옵션 뒤에 아무것도 작성하지 않으면 기본 6개 내용을 보여주며, -sr 옵션 뒤에 아무것도 작성하지 않으면 1회를 넣어 준다.

  • $ python lotto_data.py -c -sr -er 100
  • $ python lotto_data.py -c 10 -sr 1000 -er 1007
# 당첨번호 커스텀 Top 통계

$ python lotto_data.py -c -sr -er 100
### 1회 ~ 100회 Top 6 전체 통계 ###
37번 : 23개
6번 : 23개
1번 : 22개
40번 : 21개
26번 : 21개
3번 : 20개

$ python lotto_data.py -c 10 -sr 1000 -er 1007
### 1000회 ~ 1007회 Top 10 전체 통계 ###
8번 : 4개
15번 : 4개
39번 : 3개
17번 : 3개
19번 : 2개
42번 : 2개
25번 : 2개
45번 : 2개
29번 : 2개
37번 : 2개

2.7 당첨번호 커스텀 Top 통계 확인하기
2.7 당첨번호 커스텀 Top 통계 확인하기

입력한 회차 그리고 Top 등에 따라서 해당에 관련된 정보만 나타내고 있다.

2.8 당첨번호 커스텀 Top 보너스볼 제외 통계 확인하기

이번에는 2.7 항목에서 확인한 내용에서 보너스볼을 제외하여 통계를 확인해보도록 하자.

해당 부분은 -c / --custom 옵션, -sr / --sround, -er / --eround 옵션 그 위에 -exb / --ex_bonus 옵션을 추가하여 사용하면 된다.

-c 옵션 뒤에 아무것도 작성하지 않으면 마찬가지로 기본 6개 내용을 보여주며, -sr 옵션 뒤에 아무것도 작성하지 않으면 1회를 넣어 준다.

  • $ python lotto_data.py -c -sr -er 100 -exb
  • $ python lotto_data.py -c 10 -sr 1000 -er 1007 -exb
# 당첨번호 커스텀 Top 통계(보너스볼 제외)

$ python lotto_data.py -c -sr -er 100 -exb
### 1회 ~ 100회 Top 6 보너스볼 제외 통계 ###
40번 : 21개
37번 : 20개
25번 : 18개
17번 : 18개
26번 : 17개
7번 : 17개

$ python lotto_data.py -c 10 -sr 1000 -er 1007 -exb
### 1000회 ~ 1007회 Top 10 보너스볼 제외 통계 ###
8번 : 4개
19번 : 2개
42번 : 2개
17번 : 2개
25번 : 2개
45번 : 2개
29번 : 2개
39번 : 2개
15번 : 2개
37번 : 2개

2.8 당첨번호 커스텀 Top 보너스볼 제외 통계 확인하기
2.8 당첨번호 커스텀 Top 보너스볼 제외 통계 확인하기

3. 예제 Code

이제 사용 방법에 대해서 다 알아보았다.

계속적으로 해당 Tool을 업데이트를 할 예정이며, 업데이트를 하고 나면 업데이트를 한 내용에 대해서 다시 작성하도록 하겠다.

해당 Tool이 얼마나 도움이 될지는 모르겠지만 해당 Tool로 혹은 해당 데이터를 이용해서 좋은 결과가 있기를 바라며.... 🙏🏻🙏🏻🙏🏻

이후 해당 Tool에 문제가 있거나 아니면 추가할 기능이 필요하다면 해당 Github Issues에 등록해 주면 확인하도록 하겠다.

GitHub - happylie/lotto_data: 로또 당첨번호 데이터베이스 & 수집 & 통계 Tool

로또 당첨번호 데이터베이스 & 수집 & 통계 Tool. Contribute to happylie/lotto_data development by creating an account on GitHub.

github.com

728x90
728x90


🌵댓글

 

loading