Python

[Python] 파이썬으로 로또 프로그램 만들기

다콩잉 2022. 9. 12. 22:10

이번에는 파이썬으로 로또 프로그램을 만들어 보았다.

당첨 번호는 당연히 자동으로 출력값이 나오고, 유저 번호도 입력하기 귀찮아서 자동으로 출력이 되도록 했다..

 

 

 

당첨 경우의 수 구하기

 

 

pick.py

import random

def win():
    a = random.sample(range(1,46),7)
    print("당첨 번호: ", "[", end = '')
    for i in range(6):
        if i == 5: print(a[i], end = '')
        else: print(a[i], end = ', ')
    print("]")
    print("보너스 번호: ", a[-1])
    print()
    return a

def userPick():
    a = random.sample(range(1,46),6)
    print("유저 번호: ", a)
    print()
    return a

def countNum():
    pick = []
    pick = win()
    user = []
    user = userPick()
    count = 0
    bonus = 0
    for i in range(0, len(pick)):
        if i == pick[-1]: bonus = 1
        elif user.count(pick[i]) == 1: count += 1
        else: pass
    return pick, user, count, bonus

pick, user, count, bonus = countNum()
if count == 6: print("축하합니다. 1등에 당첨되셨습니다.")
elif (count+bonus) == 6: print("축하합니다. 2등에 당첨되셨습니다.")
elif count == 5: print("축하합니다. 3등에 당첨되셨습니다.")
elif count == 4: print("축하합니다. 4등에 당첨되셨습니다.")
elif count == 3: print("축하합니다. 5등에 당첨되셨습니다.")
else: print("다음에 다시 도전해주세요ㅠㅠ")
print()

def tran():
    winNum = []
    for i in range(0, len(pick)-1):
        winNum.append(pick[i])
    bonus = pick[-1]
    return winNum, bonus

 

Lotto.py

from pick import *

winNum, bonus = tran()

def secondThird(winNum, num):
    for i in range(0, len(winNum)):
        tmp = winNum[i]
        if num == 2: winNum[i] = bonus
        elif num == 3: winNum[i] = 'X'
        print(winNum)
        winNum[i] = tmp     

def fourth(winNum):
    for i in range(0, len(winNum)):
        tmp = winNum[i]
        winNum[i] = 'X'
        for j in range(i+1, len(winNum)):
            tmpj = winNum[j]
            winNum[j] = 'X'
            print(winNum)
            winNum[j] = tmpj
        winNum[i] = tmp 

def Fifth(winNum):
    for i in range(0, len(winNum)):
        tmp = winNum[i]
        winNum[i] = 'X'
        for j in range(i+1, len(winNum)):
            tmpj = winNum[j]
            winNum[j] = 'X'
            for k in range(j+1, len(winNum)):
                tmpk = winNum[k]
                winNum[k] = 'X'
                print(winNum)
                winNum[k] = tmpk
            winNum[j] = tmpj
        winNum[i] = tmp 

while(True):
    num = int(input("몇 등의 경우의 수를 검색하시겠습니까?"))
    if num == 1: print("1등은 그냥 1등!")
    elif num == 2 or num == 3: secondThird(winNum, num)
    elif num == 4: fourth(winNum)
    elif num == 5: Fifth(winNum)
    else: break
728x90