Adventure Time - Finn 3
본문 바로가기
카테고리 없음

python 로또 게임

by hyun9_9 2024. 5. 3.

설계

로또가 시작되면 사용자가 1~45 사이의 6개의 숫자를 선택합니다
완료되면 랜덤으로 숫자를 6+1개 뽑습니다
같은 숫자가 있는지 확인합니다
6개 맞으면 1등
5개 +1개 맞으면 2등
5개 맞으면 3등
4개 맞으면 4등

 

한글코딩

input을 사용해서 list에 6개의 숫자를 저장합니다

랜덤으로 숫자를 뽑기위해 표준모듈 random을 사용해
1개의 숫자를  뽑고 

중복 체크 

타이버 가동 (표준모듈 time)
list에 저장 
6개 되면 스탑
보너스 숫자 1개를 뽑습니다

set 차집합을 이용
사용자가 선택한 숫자 6개가 랜덤으로 뽑은 6개와 동일하다면 set 길이는 0 1등
선택한 숫자 5개가 같고   set 길이는 1  나머지 1개가 보너스 숫자와 같으면  2등
선택한 숫자 5개만 같으면  set 길이는 1 3등
선택한 숫자 4개 같으면 set 길이는 2 4등

 

## UP DOWN 게임  OR  로또 게임
## 구현한 내용 블로그에 작성하고 링크 보내기
## 필수 조건 1) 설계서를 먼저 보여줄 것
## 필수 조건 2) 작성하면서 발생한 에러를 설명할 것
## 필수 조건 3) 표준 모듈을 2개이상 사용할 것


import random as ran
import time
myList = []
while True:
    try:
        ##input을 사용해서 list에 6개의 숫자를 저장합니다
        num = int(input("숫자입력 "+str(len(myList)+1)+" : "))
        if num in myList: # 중복 체크
            continue
        if num>0 and num <46 :
            myList.append(num)
        else:
            print("숫자 1~45 입력")
        if len(myList)>=6:
           break
    except ValueError:
        print("숫자를 입력하세요.")

print("내가 뽑은 숫자 :" +str(myList))

ranList =[]
bonus = 0
while True:
    #랜덤으로 숫자를 뽑기위해 표준모듈 random을 사용해 1개의 숫자를  뽑고
    num = ran.randrange(1,9)
    if num in ranList: # 중복 체크
        continue
    print("추첨중", end="")
    for j in range(3):#타이버 가동 (표준모듈 time)
        time.sleep(0.3)
        print(".", end="")
    print("")
    print(str(len(ranList)+1)+"번째 숫자 : "+str(num))
    ranList.append(num)#list에 저장 
    print(ranList)
    if len(ranList)>=6:#6개 되면 스탑
        break
while True:#보너스 숫자 1개를 뽑습니다
    bonus= ran.randrange(1,9)
    if bonus not in ranList:
        break
print("랜덤으로 뽑은 숫자 :" +str(ranList))
print("보너스 숫자 : " +str(bonus))

ck = set(myList) - set(ranList)#set 차집합을 이용

print(len(ck))
print(ck)

if len(ck)==0:#사용자가 선택한 숫자 6개가 랜덤으로 뽑은 6개와 동일하다면 set 길이는 0 1등
    print("1등")
elif len(ck)==1 and bonus in myList:#선택한 숫자 5개가 같고   set 길이는 1  나머지 1개가 보너스 숫자와 같으면  2등
    print("2등")
elif len(ck)==1:#선택한 숫자 5개만 같으면  set 길이는 1 3등
    print("3등")
elif len(ck) ==2:#선택한 숫자 4개 같으면 set 길이는 2 4등
    print("4등")
else :
    print("탈락")

 

 

결과

 

 

발생에러

문자열 입력시 int로 형변환하면 에러발생

 

 

try - except 로 에러 처리