앞으로 다시 열심히 달리기~~! 머리가 띵하지만 곧 회복되기를..!
<생각 및 정리>
중복 없애기가 힘들어...왜 중복이 안없어질까? ..
import random
# 무작위 번호 추출 함수
def generate_numbers(n):
i = 0
random_numbers = []
while i < n:
number = random.randint(1, 45)
check = print(number in random_numbers)
random_numbers.append(number)
if check == True:
del random_numbers[i]
print(random_numbers)
i += 1
return random_numbers
print(generate_numbers(6))
—> 안된다... 아예 넣었다 뺐다 하지 말고 조건 만족하면 넣는 것으로 하기, 간단!
import random
# 무작위 번호 추출 함수
def generate_numbers(n): # n 개의 랜덤 상수
random_numbers = []
while len(random_numbers) < n:
number = random.randint(1, 45)
if number not in random_numbers:
random_numbers.append(number)
return random_numbers
print(generate_numbers(6))
generate_nambers활용해서 번호 6개일때 정렬하도록 조건식 추가!
# 당첨 번호 추출 함수
def draw_winning_numbers():
winning_numbers = []
while len(winning_numbers) <= 6: # 7 개의 랜덤 상수
number = random.randint(1, 45)
if len(winning_numbers) == 6: # 일반 당첨번호 정렬
winning_numbers.sort()
if number not in winning_numbers:
winning_numbers.append(number)
return winning_numbers
print(draw_winning_numbers())
**어차피 general 자체가 랜덤이라서 출력시마다 바뀌니까 함수활용하기
def draw_winning_numbers():
winning_numbers = generate_numbers(7)
return sorted(winning_numbers[:6]) + winning_numbers[6:]
print(draw_winning_numbers())
def count_matching_numbers(list_1, list_2):
count = 0
for i in list_1:
check = i in list_2
if check == True:
count += 1
return count
# 테스트
print(count_matching_numbers([2, 7, 11, 14, 25, 40], [2, 11, 13, 14, 30, 35]))
print(count_matching_numbers([2, 7, 11, 14, 25, 40], [14]))
def count_matching_numbers(list_1, list_2):
count = 0
for i in list_1:
if i in list_2:
count += 1
return count
-내가 뽑은 번호 6개와 일반 당첨 번호 6개 모두 일치 (10억 원)
-내가 뽑은 번호 5개와 일반 당첨 번호 5개 일치, 그리고 내 번호 1개와 보너스 번호 일치 (5천만 원)
-내가 뽑은 번호 5개와 일반 당첨 번호 5개 일치 (100만 원)
-내가 뽑은 번호 4개와 일반 당첨 번호 4개 일치 (5만 원)
-내가 뽑은 번호 3개와 일반 당첨 번호 3개 일치 (5천 원)
일단 일반번호에서 일치하는 개수, 보너스 번호에서 일치하는 개수 확인(두 개의 변수 생성)→ 확인하여 if 문으로 출력
# 당첨 숫자와 일치하는 숫자의 갯수 추출 함수
def count_matching_numbers(numbers, winning_numbers):
count = 0
for i in numbers:
check = i in winning_numbers
if check == True:
count += 1
return count
def check(numbers, winning_numbers):
general_numbers = count_matching_numbers(numbers, winning_numbers[:6])
bonus_numbers = count_matching_numbers(numbers, winning_numbers[6:])
if general_numbers == 6:
return "1억원 당첨"
elif general_numbers == 5 and bonus_numbers == 1:
return "5천만원 당첨"
elif general_numbers == 5:
return "100만원 당첨"
elif general_numbers == 4:
return "5만원 당첨"
elif general_numbers == 3:
return "5천원 당첨"
else:
return "꽝!"