def get_lotto_nums(drwno):
url = f'https://www.dhlottery.co.kr/common.do?method=getLottoNumber&drwNo={drwno}'
response = requests.get(url)
output = response.json()
result = []
result = [output[f'drwtNo{i+1}'] for i in range (6)]
# result.append(output['bnusNo'])
return tuple(result)
저 위에 url로 숫자를 넣어 들어가면 해당 회차 로또 정보를 얻을 수 있다.
결과값은 튜플로 넣어서 변하지 않도록 해주자.
output = get_lotto_nums(1100)
output
(17, 26, 29, 30, 31, 43)
결과가 잘 나오는 것을 확인할 수 있다.
from tqdm.auto import tqdm #코드 진행상황 알려줌
# 당첨 번호 싸그리 모아오기
numbers = []
for drwno in tqdm(range(1, 1108+1)):
result = get_lotto_nums(drwno)
numbers.append(result)
16분에 걸쳐 다 받았다.
위 함수는 결과값으로 (숫자6개) 튜플을 계속 반환해 주니, 이것을 모두 result라는 리스트에 담아주는 것.
len(numbers)
확인해 보니 1108로 잘 들어왔다.
nums = [i for i in range(1, 46)]
#nums는 1부터 45까지의 숫자를 담은 리스트
#랜덤 번호 생성기
def generate_nums():
return tuple(sorted(random.sample(nums, 6)))
generate_nums()
#튜플안에 있는 애를 설명해보면, random.sample(nums, 6) <
#이 코드는 nums 리스트에서 중복되지 않는 6개의 숫자를 무작위로 선택하여 리스트로 반환하라는 의미.
def final11(numbers):
while True:
lotto_nums = generate_nums()
if lotto_nums in set(numbers):
continue
else:
break
return lotto_nums
#final11 함수는 numbers라는 1108개의 번호집합과 중복되지 않는 로또 번호를 생성한다.
#먼저 lotto_nums는 방금 만든 함수의 결과값이므로 임의로 생성한 6개의 숫자 튜플이다.
#만약 이 튜플이 1108개의 numbers 안에 있는 번호들의 집합들 중 겹치지 않는지 확인을 하는데,
#안겹치는 경우 결과값을 반환해준다.
lotto_num = final11(numbers)
lotto_nums
이렇게 하면 추천번호가 나온다.
[1, 6, 11, 16, 22, 28]
결과는 이렇게 나왔다.