1. 연금복권 알아보기
2. randint() 함수를 이용한 조 선택
3. random() 함수를 이용한 첫번째 숫자 선택
4. randrange() 함수를 이용한 두번째 숫자 선택
5. uniform() 함수를 이용한 세번째 숫자 선택
6. choice() 함수를 이용한 네번째 숫자 선택
7. sample() 함수를 이용한 다섯번째 숫자 선택
8. shuffle() 함수를 이용한 여섯번째 숫자 선택

파이썬의 랜덤 모듈을 이용하여 연금복권 번호 생성기를 구현하겠습니다.
1. 연금복권 알아보기
https://dhlottery.co.kr/gameInfo.do?method=game720Guide&wiselog=H_B_5_1
연금복권720+ 소개 < 연금복권720+ < 복권정보 | 동행복권
연금복권720+의 특징 안정적 생활을 보장합니다. 연금복권720+는 1등 당첨금을 매 월 700만원씩 20년간 연금식으로 지급하여 당첨자의 안정적 생활을 보장합니다. 잔여 당첨금은 당첨자 사망시에도
dhlottery.co.kr
연금복권720+ 사이트에 들어가보면 연금복권에 대한 설명이 있습니다.
연금복권은 조를 선택하고, 6자리 번호를 선택하는 복권으로 조는 1조부터 5조까지, 각 6자리는 0부터 9까지 숫자 중 선택하는 방식입니다.

결과적으로 이용하여 7개의 숫자를 생성하면 되는데, 각 자리수별로 다른 랜덤함수를 이용하여 숫자를 생성해보겠습니다.
2. randint() 함수를 이용한 조 선택
우선은 random 모듈을 import 합니다.
import random
python
randint() 함수를 이용하면 2개의 숫자 사이의 랜덤 정수를 생성할 수 있습니다.
즉 첫번쨰 인자부터 두번쨰 인자 사이의 랜덤한 수를 리턴합니다.
1조 부터 5조까지 선택하는 것이기 때문에 1,5 사이의 정수를 리턴하도록 합니다.
rand_jo = random.randint(1,5)
python
3. random() 함수를 이용한 첫번째 숫자 선택
각 자리는 0 부터 9까지의 숫자 중 선택하면 됩니다. 각 자리별로 각기 다른 랜덤함수를 이용하여 0 부터 9까지의 숫자를 리턴하도록 코드를 구현해보겠습니다.
random() 함수는 0 부터 1 사이의 실수를 리턴하는 함수 입니다. 우리는 0부터 9까지의 정수를 얻어야 하기 때문에 random 함수의 결과에 9를 곱한 뒤 정수형으로 형변환 시키면 0 부터 9까지의 정수를 구할 수 있습니다.
rand_1 = int(random.random() * 9)
python
4. randrange() 함수를 이용한 두번째 숫자 선택
두번째 숫자는 randrange() 함수를 이용해서 구해보겠습니다. randrange() 함수는 3개의 인자를 입력받는 함수로 (start, stop, step으로 start부터 stop 사이에 step으로 만들어지는 정수 중 하나를 리턴합니다. step에 1을 주면 start 부터 stop 사이의 모든 정수이고, 2이면 짝수, 3이면 3의 배수와 같이 step에 따라서 값을 결정할 수 있습니다.
0,9,1을 인자로 주면 0 부터 9 사이의 정수를 랜덤하게 생성해줍니다.
rand_2 = random.randrange(0,9,1)
python
5. uniform() 함수를 이용한 세번째 숫자 선택
uniform() 함수는 두 인자 사이의 랜덤한 실수를 리턴하는 함수 입니다. 0 부터 9까지의 정수를 얻기 위해서는 리턴된 값을 정수로 형변환을 시켜주면 됩니다.
rand_3 = int(random.uniform(0,9))
python
6. choice() 함수를 이용한 네번째 숫자 선택
choice() 함수는 인자로 받은 원소 중 하나를 선택해주는 함수로 문자 중 하나를 랜덤하게 선택하는 경우 주로 사용합니다. 그렇기 때문에 0 부터 9까지의 문자열을 인자로 넣고 마지막에 정수로 형변환을 하면 0 부터 9까지의 정수를 구할 수 있습니다. 참고로 추가적으로 계산이 필요한 경우가 아니라면 굳이 정수형으로 형변환을 시키지 않아도 관계없습니다.
rand_4 = int(random.choice('0123456789'))
python
7. sample() 함수를 이용한 다섯번째 숫자 선택
sample() 함수는 첫인자로 받은 값 중 두번째 인자로 받은 값만큼 랜덤으로 추출해주는 랜덤함수 입니다. 0 부터 9를 원소로 갖는 리스트를 인자로 넘겨준 뒤 1개의 값을 뽑도록 하면 우리가 원하는 0 부터 9까지의 정수 중 하나의 값을 추출하는 기능을 구현할 수 있습니다.
rand_5 = int(random.sample([0,1,2,3,4,5,6,7,8,9], 1)[0])
python
8. shuffle() 함수를 이용한 여섯번째 숫자 선택
마지막 숫자는 shuffle() 함수를 이용해보겠습니다. shuffle() 함수는 인자로 받은 값의 순서를 섞는 랜덤함수 입니다. 0 부터 9까지 숫자를 순차적으로 갖는 리스트를 인자로 준 뒤 shuffle()로 섞고 첫번째 인자를 선택하면 랜덤하게 하나의 값을 선택하는 효과를 낼 수 있습니다.
numbers = [0,1,2,3,4,5,6,7,8,9]
random.shuffle(numbers)
print (numbers[0])
python
다양한 랜덤함수를 이용하여 연금복권의 7개 숫자를 생성해주는 연금복권 생성기를 구현해보았습니다.
마지막으로 전체 코드와 실행 결과를 보여드리면서 포스팅을 마치겠습니다.
import random, datetime
print (datetime.datetime.now())
rand_jo = random.randint(1,5)
rand_1 = int(random.random() * 9)
rand_2 = random.randrange(0,9,1)
rand_3 = int(random.uniform(0,9))
rand_4 = int(random.choice('0123456789'))
rand_5 = int(random.sample([0,1,2,3,4,5,6,7,8,9], 1)[0])
numbers = [0,1,2,3,4,5,6,7,8,9]
random.shuffle(numbers)
print (rand_jo, '조', rand_1, rand_2, rand_3, rand_4, rand_5, numbers[0])
python

Comment