본문 바로가기
코딩 따라하기

로또번호 생성기 따라하기 (Coding Lottery Number Generator)

by 전자남성 2020. 11. 17.

로또번호 생성기 따라하기 (Coding Lottery Number Generator)

 

이번에 할 코딩은 로또 번호 생성기입니다.

저는 간단히 Lottery.py로 파일을 만들었습니다.

 

우선 한국의 로또에 대해 간단히 설명하고 들어가 보겠습니다.

한국 로또번호는 1부터 45의 숫자까지 뽑을 수 있습니다.

그리고 한 게임에 뽑을 수 있는 숫자는 6개입니다.

뽑은 6개의 숫자는 절대 중복되지 않습니다.

6개 중에 하나가 보너스인데 이것은 굳이 신경 쓰지 않으셔도 됩니다.

 

 

import random

LotteryNumber = []

while len(LotteryNumber) < 6 :

V = random.randint(1,45)

if V not in LotteryNumber:

LotteryNumber.append(V)

 

print(LotteryNumber)

 

1행은 파이썬에서 랜덤 패키지를 읽어옵니다.

2행은 LotteryNumber라는 List를 만든 겁니다. [] 안에는 array 형식의 리스트가 들어갑니다.

 

3행의 len은 문자열 길이를 구할 때 사용합니다. 예를 들어 len('235')3이 출력되고 len('')1이 출력됩니다.

len은 리스트 타입에서도 동일하게 적용됩니다. 따라서 3행의 배열은 6보다 작으니 [a], [b], [c], [d], [e] 5개가 출력됩니다.

3행 맨 처음 while문은 조건이 참인 동안 코드를 계속 반복하라는 것을 의미합니다.

for문을 사용하면 중복된 숫자가 나올 수 있기 때문에 while문을 사용합니다.

 

4행은 1행에서 랜덤 패키지를 읽어온 것과 연결됩니다. 4행의 random.radint(x,y)는 x에서 y사이의 랜덤 한 정수를 반환합니다. 로또가 1부터 45까지라서, random.radint(1,45)로 설정합니다.

 

5행은 3행과 연결되어 중복되지 않는 6개 숫자가 뽑히게 됩니다.

[1]을 처음에 뽑는다면 이제 기존의 random.radint(1,45)에는 [1]이 없는 것이죠.

, V not in LotteryNumber가 되는 것입니다.

저는 이 부분이 굉장히 헷갈렸습니다.

 

6행의 append는 기존 리스트에 원소를 추가하는 기능을 가집니다.

예를 들어 [4]가 출력되고 다음에 [5]가 출력된다고 가정해봅시다.

4가 출력되고 다음 리스트가 append 되면 [4, 5]가 됩니다.

이런 방식으로 5while 반복하면 [4, 5, 6, 7, 8, 9] 5append 됩니다.

이는 3행에서 while len(LotteryNumber) < 6 이기 때문입니다.

, 첫 번호를 뽑은 후 5append 된다고 생각하면 쉽게 생각할 수 있습니다.

 

마지막행에서 그냥 출력하게 되면 6개의 번호가 마구잡이로 나오게 됩니다.

이 문제의 해결 방법은 간단합니다. LotteryNumber 앞에 Sorted를 붙여주면 됩니다.

Sorted는 정렬 메서드로 [] 안에 리스트를 정렬된 상태로 변경합니다.

print(sorted(LotteryNumber))로 만듭니다.

출력 시 오름차순으로 정렬된 6개의 랜덤 번호를 얻으실 수 있습니다.

 

 

그럼 VSCodeTERMINAL에서 실행 보겠습니다.

TERMINAL에서 C:\Users\ATIV\Downloads\myworks>python .\lottery.py을 입력합니다.

 

 

 

C:\Users\ATIV\Downloads\myworks>python .\lottery.py

[17, 20, 31, 36, 42, 44]

 

C:\Users\ATIV\Downloads\myworks>python .\lottery.py

[8, 18, 20, 28, 32, 36]

 

C:\Users\ATIV\Downloads\myworks>python .\lottery.py

[16, 24, 25, 26, 40, 41]

 

C:\Users\ATIV\Downloads\myworks>python .\lottery.py

[1, 3, 5, 11, 14, 17]

 

 

아주 간단하고 명료하게 로또 번호 생성기를 따라 해 봤습니다.

이런 방식으로 실생활에서 적용해 볼 수 있는 프로그램을 하나씩 만들어보는 것도 좋은 공부방법이라고 생각합니다.

댓글