로또 프로그램 만들기 4탄 – 여러개의 번호 조합을 리턴 받는 방법

0

지난시간에는 홀짝 비율 조건을 추가하는 방법에 대해 알아보았습니다. 지난 시간에 이어서 이번 시간에는 여러개의 번호 조합을 생성 후 리턴 받는 방법에 대해 알아봅니다.

 

첫번째 시간에 했던 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탄 – 번호 생성시 번호합 조건을 추가하는 방법

파이썬 언어로 로또 번호를 뽑아내는 프로그램 만들기

 

Leave a Reply