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