ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [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

    'Python' 카테고리의 다른 글

    [Python] Selenium 크롤링  (0) 2023.06.28
    [Python] 파이썬 성적관리 프로그램(파일 사용)  (0) 2022.09.12
Designed by Tistory.