간단한 Lotto 번호 생성기 (by Python)
세욱이랑 이야기 하다가 Lotto 번호 생성기를 만들어 보자고 해서....
확률이고 뭐고 다 때려치우고 완전 Random하게 만들어 봤습니다.
물론, 배우는거 하나 없는 randint( ) 를 사용한 건 아니지만....
결국, itertools 모듈에 있는 combinations라는 유용한 함수를 알게됐습니다.
세욱이가 보더니 너무 길다고 해서 핵심만 추려 봤습니다.
6줄(공백라인 포함)이면 됩니다.
1 from random import *
2 from itertools import combinations
3
4 lotto456 = range(1,46)
5 lottery_numbers = list(combinations(lotto456, 6))
6 print lottery_numbers[randrange(0, len(lottery_numbers) - 1)]
아래는 꾸며본 Python 전체 code 입니다.
1 import os
2 from time import time
3 from random import *
4 from itertools import combinations
5
6 def get_lotto_numbers():
7 lotto456 = range(1,46)
8 lottery_numbers = list(combinations(lotto456, 6))
9 return lottery_numbers[randrange(0, len(lottery_numbers) - 1)]
10
11
12 def main():
13 print "Start Extraction Lotto Numbers"
14 before_time = time()
15 lotto_numbers = get_lotto_numbers()
16 after_time = time()
17
18 spend_time = after_time - before_time
19
20 print "\nLotto Numbers: ",
21 print lotto_numbers
22 print "\nSpend your time {0:5.2f} seconds".format(spend_time)
23
24 if os.name == 'nt':
25 import msvcrt
26 print "\nPress Anykey..."
27 msvcrt.getch()
28
29
30 if __name__ == '__main__':
31 main()
32
실행 화면입니다.
$ python lotto.py
Start Extraction Lotto Numbers
Lotto Numbers
(5, 17, 20, 34, 35, 43)
Spend your time 19.05 seconds
20초 정도 걸리네요.
(오래 걸리기는 하지만 10분안에 완성되었습니다)
Windows 에서 실행 가능한 파일 첨부했습니다.
실행시간이 더 짧네요(2초 이내)
ㅋㅋㅋ
역시나 오랜만에 만들어 보니 실수 투성 입니다.
Windows에서 실행 하면 콘솔창을 띄웠다 종료해버려서 볼 수가 없네요.
많이 보시던
"Press Anykey..."로 처리 했습니다(수정 판을 다시 올립니다)
(Python이 설치되어 있지 않다면, 첨부된 python27.dll을 다운로드 해야 합니다)
- 경고 문구 나오는데 절대 문제 없습니다. - 제가 그럴 능력이 안돼요.