반응형
문제
일반 당첨 번호 6개와 보너스 번호 1개가 포함된 리스트를 리턴합니다. 일반 당첨 번호 6개는 정렬되어 있어야 하고, 보너스 번호는 마지막에 추가하면 됩니다.
예를 들어서 아래 코드를 실행하면,
print(draw_winning_numbers())
이런 결과가 나올 수 있습니다.
[4, 12, 14, 28, 40, 41, 6]
기존 코드
내가 작성한 코드 (틀림) : 조잡함, 하나하나 선언 정의함
from random import randint
def generate_numbers(n):
new_list = []
while len(new_list) < n :
num = randint(1,45)
if num not in new_list :
new_list.append(num)
return new_list
def draw_winning_numbers():
normal_numbers, final_numbers = [], []
numbers = generate_numbers(7)
normal_numbers = sorted(numbers[:6]) # 마지막 추가 번호 제외하고 오름차순 정렬
final_numbers = normal_numbers + numbers[6]
return final_numbers
print(draw_winning_numbers())
'''
Traceback (most recent call last):
File "main.py", line 18, in <module>
print(draw_winning_numbers())
File "main.py", line 15, in draw_winning_numbers
final_numbers = normal_numbers + numbers[6]
TypeError: can only concatenate list (not "int") to list
'''
해답 코드
from random import randint
def generate_numbers(n):
numbers = []
while len(numbers) < n:
new_number = randint(1, 45)
if new_number not in numbers:
numbers.append(new_number)
return numbers
def draw_winning_numbers():
winning_numbers = generate_numbers(7)
return sorted(winning_numbers[:6]) + winning_numbers[6:]
반응형