본문 바로가기

크롤링

로또 번호 추출 코드 예제

로또 번호 추출 예제 코드

# random 모듈을 사용한다.
import random

# 반복문을 이용한다.
# 6번 반복해서 수행한다.
for n in range(6):
    # 1에서 45 사이의 숫자 하나를 랜덤으로 뽑아서 출력해 본다.
    print(random.randint(1,45))

# sample 함수를 이용하여 1에서 45까지 숫자 중, 6개를 랜덤으로 뽑는다.
random.sample(range(1,46),6)

# range를 이용해서 1부터 45까지의 모든 숫자를 리스트로 변환하여 dest_numbers 변수에 담는다.
dest_numbers = list(range(1,46))
# lotto 라는 빈 자료형을 만든다. ([])
lotto = []
# lotto에 담긴 갯수가 6개보다 작으면 계속 실행한다.
while len(lotto) < 6:
    # dest_numbers 에서 임의로 1개의 숫자를 뽑아서 num 변수에 담는다.
    num = random.choice(dest_numbers)
    # 만약 num 이 lotto 에 없다면,
    if num not in lotto:
        # lotto 에 num 을 추가한다.
        lotto.append(num)
# lotto에 있는 숫자를 정렬한다.
lotto.sort()
# lotto를 출력해 본다.
print(lotto)

# 5번 반복 수행한다.
for i in range(5):
    # lotto_sample 변수에 1에서 45까지 숫자 중, 6개를 랜덤하게 뽑아서 담는다.
    lotto_sample = random.sample(range(1,46),6)
    # lotto_sample 을 정렬한다.
    lotto_sample.sort()
    # lotto_sample 을 출력한다.
    print(lotto_sample)

# 특정 조건이 없는한, 반복한다 - while문
while True:
    # 사용자에게 게임횟수를 입력 받아서 cnt 변수에 담는다 ('게임 횟수를 입력하세요')
    cnt = input('게임 횟수를 입력하세요')
    # 만약, cnt가 숫자 값이라면
    if cnt.isdigit() == True:
        # cnt를 int로 변환해서 그 숫자만큼 반복한다 - for문
        for n in range(int(cnt)):
            # lotto_sample 변수에 1에서 45까지 숫자 중, 6개를 랜덤하게 뽑아서 담는다
            lotto_sample = random.sample(range(1,46),6)
            # lotto_sample를 정렬한다
            lotto_sample.sort()
            # lotto_sample를 출력한다
            print(lotto_sample)
        # break
        break
    # 아니면,
    else:
        # '숫자만 입력해주세요'를 출력한다
        print('숫자만 입력주세요')

while True:
    cnt = input('몇게임을 하시려나요?')
    lotto_numbers = []
    if cnt.isdigit() == True:
        for i in range(int(cnt)):
            lotto_sample = random.sample(range(1,46),6)
            lotto_sample.sort()
            lotto_numbers.append(lotto_sample)
        break
    else:
        print('숫자만 입력하세요')
print(lotto_numbers)

# 판다스 이용해서 저장
import pandas as pd
df = pd.DataFrame(lotto_numbers)
df.columns =['첫번째번호','두번째번호','세번째번호','네번째번호','다섯번째번호','여섯번째 번호']
# 구글 드라이브에 저장
df.to_csv('/content/drive/My Drive/Colab Notebooks/lotto_number.csv')

# 함수로 리팩토링
def get_lotto_numbers(cnt):
    lotto_numbers = []
    for i in range(int(cnt)):
        lotto_sample = random.sample(rangeg(1,46),6)
        lotto_sample.sort()
        lotto_numbers.append(lotto_sample)
    print(lotto_numbers)

while True:
    cnt = input('몇게임을 하시려나요?')
    if cnt.isdigit() == True:
        get_lotto_numbers(cnt)
        break
    else:
        print('숫자만 입력하세요')        

# 함수 호출해서 사용
get_lotto_numbers(20)