Appia의 IT세상

파이썬[Python] 013 로또(lotto) 번호 생성기 만들기와 random 모듈 본문

Python/Python 응용

파이썬[Python] 013 로또(lotto) 번호 생성기 만들기와 random 모듈

Appia 2019. 12. 28. 07:18
반응형

거의 대부분의 직장인의 꿈은 로또 1등이거나 한방에 거금이 들어오는 것일 있습니다. 또한 매주 로또를 구매 하는 편입니다. 오늘은 로또 번호를 생성하는 코드성해보도록겠습니다. (물론, 저의 경우 자동으로만 구매합니다.)

 

필요 항목

  • 반복문, 조건문, random 모듈 
 

파이썬[Python] 004 분기문(조건문), 반복문

분기문(조건문) 흔히들 갈림길 또는 조건에 의해서 하나를 선택해야 하는 경우가 생깁니다. 프로그래밍을 하다 특정 조건에서만 실행되는 명령이 있고, 경우에 따라서는 그 조건이 부합할 때, 부합하지 않을 때,..

appia.tistory.com

로또는 1~45번 사이의 숫자 중 6개를 추첨하는 형태입니다. 모두가 맞으면 1등이겠죠 ?

 

그래서 최초에 무작위로 숫자를 생성하는 함수를 이용하여 숫자를 생성하고, 이 부분이 앞서 생성된 수와 반복 여부를 따라서, 항목에 추가하는 형태로 만들어 볼까 합니다. 여기에서는 while문을 사용할까 합니다. 주로 저의 경우, for문을 좋아합니다. 하지만 이럴 경우에는 while문이 훨씬 효율적입니다.

 

먼저 간단히름에 대해서 글자로 해보겠습니다.

 

  1. 생성장할 있는장소 (리스트) 생성
  2. 저장소 멤버 개수가 6인지에 대해서 확인하고 6 미만이면 하기 동작
  3. 랜덤한 정수 생성( 1~45)
  4. 생성된 수가 저장소(리스트) 없으면장소(리스트)
  5. 생성된 정수가장소(리스트) 있는지 확인
  6. 다시 2번으로 돌아가서 반복

 

형태로 코드 짜보고자 합니다. 일단람들 마다 다르지, 저 경우는 코드성하기 전에 반드시 같은 형태로 글로 적어 보거나, 아니 stateflow또 별도의 틀을 통해서 flowchart(플로우차트)성하기 위해서 노력합니다. 개인적인 의견으로는 보다 효율 있는 코드 생성하기 위해서 반드시 되어야 합니다.

 

random모듈 사용법

코드 생성하기 위해서 random에 대해서 알아보도록 하겠습니다.  

 

random에 대한 사용법을 간단히 살펴보면 몇가지가 있습니다.

 

Random.random()

0.0~1.0사이 실수(float) 반환합니다.

 

random.randint(1,100)

1부터 100까중에 정수를 리턴합니다. 마지 100까지 포함합니다.

 

random.randrange(0,10,3)

1부터 10미 3 배수환합니다.

 

random.choice([1,2,3,4,5,6,7])

[1,2,3,4,5,6,7]중에 글자를 리턴합니다.

 

random.sample(range(1,46),6)

1이 46미만중 6 값을 리스트 형식으로 받습니다. , sample 함수는 중복 없이 처리해 주기 때문에 번호 생성에적화 입니다.

 

List = [1,2,3,4,5,6,7,8]

Random.shuffle(List)

[1,2,3,4,5,6,7,8] 숫자들을 가지 List 섞어서 배열합니다. 별도의 데이터 반 값이 없습니다.

 

참고 포스

  • 제어/ 반복문 관련 포스

물론 sample 이용하면 바로 번호 생성이능합니다. 하지, 조금이나마 방식으로 생각해보고자 제가 위 명시한대로딩을 해보도겠습니다.

 

import random
LottorNumber = []
while len(LottorNumber) < 6 :
	V = random.randint(1,45)
	if V not in LottorNumber:
		LottorNumber.append(V)

print(LottorNumber)

 

물론 sample 명령어를 참조 해서 다음과 같이딩을 해도 됩니다.

 

import random
print(random.sample(range(1,46),6))

 

음과 같은 결과 얻을 있습니다.

 

[44, 2, 37, 20, 39, 5]

 

금일 포스팅은 로또 번호 생성기를 통하여 반복문과 리스트에 대해서 좀더 응용해서 알고자 했습니다. 여러분들에게움이 되셨으 좋겠습니다. 매운 간단하지만, 이런 부분부터 조금씩 하나씩 꼼꼼히 알아간다면 여기에서 사용된 다양한 부분들에 대해서 공부할 수 있을 것이라고 생각합니다. 

 

경우 코드 중에 무조건적으로 후자에 있는 짧은 코드 선호 하 편입니다. 하지, 경우에 따라서 무조 짧은 코드가 좋다고만 없습니다. 2가지 방법 알아 두시 좋을 같습니다

 

 

반응형
Comments