python/연습장
로또 자동 판매기 (no sample)
joo_coding
2025. 2. 26. 16:49
# 로또 자동 만들기
# 1. 로또의 기본 기능은 그대로 유지 됩니다.
# => 번호개수, 등수, 당첨금, 4등5등은 고정, 3등은 150만원, 2등은 5천, 1등은 20억
# 2.회차별 컴퓨터가 자동으로 돌림
# 4.그 다음에 내가 번호 6개 선택 (모든 로또용지가 같은 번호라고 가정)
# 5.그럼 현재 회차가 진행이 되고, 당첨금을 보여줌
# 6.이어서 다음 회차로 이어집니다.
# 7.추가로 회차 넘어갈때 '자동'이라는 선택지가 있는데, 이걸 누르면 자동으로 내가 1등에 당첨 될때까지
# 현재 번호로 쭉 갑니다. 내가 몇회차에 이 번호가 1등이 되는지 출력
# 8.로또번호를 하나씩 입력합니다. 그러면 그거를 데이터로 저장을 할텐데 중복은 안되죠? 중복검사를 합니다
# 다만 in 연산자를 쓰지않고 중복검사를 할 것
# 9.랜덤 쓰시면 됩니다. 대신에 랜덤으로 번호를 고르되, sample 쓰지마세요. (6개 중복 안되게)
# 10. 최종 출력할때 항상 오름차순 정렬
from os import remove
while True:
import random
list_ = []
for i in range(1, 46):
list_.append(i)
random.shuffle(list_)
lotto = sorted(list_[:6])
print("당첨번호는")
print(lotto)
user_choice = input("로또 번호를 선택해주세요.:")
user_choice = user_choice.split() # 공백을 기준으로 문자열 구분하기
# user_choice = int(user_choice) #리스트가 인트화 가능해?
# for i in range(0,5):
# user_choice[i] = int(user_choice[i])
user_choice[0] = int(user_choice[0]) # 리스트 안에 있는 요소를 하나하나 인트화 시켜주고
user_choice[1] = int(user_choice[1])
user_choice[2] = int(user_choice[2])
user_choice[3] = int(user_choice[3])
user_choice[4] = int(user_choice[4])
user_choice[5] = int(user_choice[5])
user_choice = list(user_choice) # 인트화 시켜준 다음에 리스트화
print(user_choice)
num = [] #고른 번호 중복 검사하기.
for i in range(1, 46):
num.append(i) # 1부터 45가 들어있는 리스트가 만들어짐
num = set(num) #중복이 허용되지 않는 set으로 변환시켜주고
auto = input("자동으로 하시겠습니까?(yes/no): ")
if auto == "yes": #1등 될때까지 반복
print("1등에 당첨될 때 까지 구매하겠습니다.")
print(input("시작을 원하시면 엔터를 눌러주세요."))
count_ = 1
while True:
import random
list_ = []
for i in range(1, 10):
list_.append(i)
lotto = random.sample(list_, 6)
print(sorted(lotto))
count_ += 1
if lotto == user_choice:
print("1등에 당첨 되셨습니다.")
print("%d회 만에 당첨 되셨습니다." % count_)
break
#print("%d회 만에 당첨 되셨습니다." % count_)
elif auto == "no": #등수 알려주고 끝내
#당첨번호 갯수를 알기위해 교집합을 이용
user_choice = set(user_choice) #리스트를 집합화 해주고
lotto = set(lotto)
# 등수체크
# 1등은 6개 모두 일치
correct = user_choice & lotto #당첨번호 갯수 = (둘의 교집합)
print(f"일치하는 번호는", correct, "입니다.")
if len(correct) == 6: #len의 type은 int(=정수)
print("축하합니다. 1등입니다! 당첨금은 20억 입니다.")
elif len(user_choice & lotto) == 5:
print("3등입니다. 당첨금은 150만원 입니다.")
elif len(user_choice & lotto) == 4:
print("4등입니다. 당첨금은 5만원 입니다.")
elif len(user_choice & lotto) == 3:
print("5등입니다. 당첨금은 5천원 입니다.") #딕셔너리
else:
print("꽝")
# 고른 번호 중복 검사하기.
num = [] # 1부터 45까지 들어있는 리스트
for i in range(1, 46):
num.append(i)
count_ = 1 #유저가 고른 로또번호 갯수
while count_ < 7:
count_ += 1
user_choice = input("번호를 골라주세요.") #하나씩 고르기
user_choice = int(user_choice)
print(user_choice) #무슨 번호를 골랐는지 보여준다
num.remove(user_choice) # 45까지 들어있는 리스트에서 고른번호 삭제하기
#ValueError: list.remove(x): x not in list
print(num)
#내가 골랐던 번호 다 보여주기