설계
로또가 시작되면 사용자가 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 로 에러 처리