로또 프로그램 만들기 4탄 – 여러개의 번호 조합을 리턴 받는 방법
지난시간에는 홀짝 비율 조건을 추가하는 방법에 대해 알아보았습니다. 지난 시간에 이어서 이번 시간에는 여러개의 번호 조합을 생성 후 리턴 받는 방법에 대해 알아봅니다.
첫번째 시간에 했던 6개 번호를 조합해서 리턴 하는 코드가 있었죠? 방법은 간단합니다. 첫 번째 시간에 했던 코드에 반복문 for문을 사용하여 처리하면 해결됩니다. 아래 샘플코드를 보시면 이해가 되실거에요. in절에 range() 범위 함수를 사용하여 5번 반복하도록 처리합니다. 이렇게 하면 5개의 로또 번호 조합을 얻을 수 있습니다.
for num in range(5):
import random
#뽑은 번호를 담은 리스트 선언
my_number = []
isCorrect = True
for num in range(5):
while isCorrect:
my_number = random.sample(range(1, 46), 6)
break
# 작은 숫자부터 정렬(오름차순)
my_number.sort()
# 뽑은 번호 6개 출력하기
print(f'{my_number}')
[실행결과]
C:UsersilikeAppDataLocalProgramsPythonPython39python.exe C:/python/Workspace/main.py
[2, 3, 9, 12, 27, 40]
[2, 17, 21, 24, 33, 37]
[1, 2, 3, 13, 39, 40]
[7, 10, 17, 20, 30, 42]
[6, 14, 23, 31, 33, 39]
이번에는 지난시간에 추가한 홀짝 비율 조건을 추가해서 5개의 번호 조합을 리턴 받아 봅니다.
import random
#뽑은 번호를 담은 리스트 선언
my_number = []
# 짝수 , 홀수 카운터용
even = 0
odd = 0
isCorrect = True
for num in range(5):
while isCorrect:
my_number = random.sample(range(1, 46), 6)
for item in my_number:
# 뽑은 번호를 2로 나눈 몫의 나머지 값이 0이면 짝수가 됩니다.
mok = item % 2
if mok == 0:
even = even + 1
else:
odd = odd + 1
print(f'even: {even} odd: {odd}')
if odd == 3 and even == 3:
break
else:
even = 0
odd = 0
# 작은 숫자부터 정렬(오름차순)
my_number.sort()
# 뽑은 번호 6개 출력하기
print(f'{my_number} 홀:짝 비율 {odd}:{even}')
[실행결과]
C:UsersilikeAppDataLocalProgramsPythonPython39python.exe C:/python/Workspace/main.py
[6, 10, 13, 16, 33, 41] 홀:짝 비율 3:3
[2, 3, 6, 13, 25, 44] 홀:짝 비율 3:3
[4, 6, 20, 29, 37, 45] 홀:짝 비율 3:3
[8, 10, 19, 25, 34, 45] 홀:짝 비율 3:3
[5, 12, 21, 22, 37, 38] 홀:짝 비율 3:3
이번에는 번호합 조건을 추가한 번호 조합을 반복문을 활용하여 10개 출력해 봅니다. 번호합 조건으로 100보다 크고 120보다 작은 경우에만 리턴 받도록 처리해주었습니다.
if 100 < nsum < 120:
import random
# 뽑은 번호를 담은 리스트 선언
my_number = []
# 로또 번호합을 저장할 변수 sum
nsum = 0
for num in range(10):
while nsum <= 0:
my_number = random.sample(range(1, 46), 6)
for item in my_number:
nsum = nsum + item
# print(f'번호합: {nsum}')
if 100 < nsum < 120:
# 작은 숫자부터 정렬(오름차순)
my_number.sort()
# 뽑은 번호 6개 출력하기
print(f'{my_number}' + f' 번호합: {nsum}')
nsum = 0
break
else:
nsum = 0
[실행결과]
C:UsersilikeAppDataLocalProgramsPythonPython39python.exe C:/python/Workspace/main.py
[6, 11, 12, 14, 17, 43] 번호합: 103
[1, 2, 15, 21, 23, 41] 번호합: 103
[4, 11, 12, 17, 29, 34] 번호합: 107
[8, 9, 13, 18, 20, 44] 번호합: 112
[1, 7, 13, 19, 27, 37] 번호합: 104
[11, 12, 17, 20, 21, 35] 번호합: 116
[3, 4, 12, 16, 35, 39] 번호합: 109
[2, 5, 10, 11, 37, 41] 번호합: 106
[7, 15, 16, 20, 21, 26] 번호합: 105
[3, 5, 11, 14, 35, 40] 번호합: 108
Process finished with exit code 0
for문을 잘 활용하면 아주 많은 기능을 구현할 수 있습니다. 프로그랭 언어에서 많이 사용되는 반복문, 조건문을 완벽하게 습득하세요.
[이전 글]
로또 프로그램 만들기 3탄 – 홀짝 비율 조건 추가 하는 방법
로또 프로그램 만들기 2탄 – 번호 생성시 번호합 조건을 추가하는 방법