728x90
반응형
파이썬으로 '로또 번호 추출기'라는 프로그램을 직접 코딩한 후 강의 강사가 직접 작성한 코드와 비교한 결과 느낀 점을 제목에 반영했다.
이 프로그램의 특징은 모두가 알다시피 다음과 같다.
- 1~45 숫자들 중에서 서로 다른 6개의 숫자 추출
코드 영역은 ①공통 영역과 ②Main 영역, 그리고 ③결과 확인 영역 순서의 총 3 영역으로 분류하는데 이 영역들 중 Main 영역에서 차이점이 드러난다. 일단, 차이가 없는 공통 영역과 결과 확인 영역은 다음과 같다.
※ 공통 영역
# 로또 번호 추출기
import random
def get_random_number():
number = random.randint(1, 45)
return number
lotto_numbers = [] # 로또 번호를 저장할 리스트
※ 결과 확인 영역
lotto_numbers.sort()
print(lotto_numbers)
for number in lotto_numbers:
print(number, end=' ')
그리고 아래는 차이가 나는 Main 영역이며 내용만 놓고 보면, 본인이 작성한 코드가 Low Level 코드에 더 가깝다는 느낌이 든다.
※ Main 영역 - 본인 코드 (Low Level ⇒ 마치 기계어 같은...)
for i in range(0, 6):
random_number = get_random_number()
if i == 0:
lotto_numbers.append(random_number)
else:
j = 0
while True:
if random_number == lotto_numbers[j]:
j = 0
random_number = get_random_number()
elif j == i - 1 and random_number != lotto_numbers[i - 1]:
lotto_numbers.append(random_number)
break
else:
j += 1
※ Main 영역 - 강사 코드 (High Level)
count = 0
while True:
if count > 5:
break
random_number = get_random_number()
if random_number not in lotto_numbers:
lotto_numbers.append(random_number)
count += 1
확실하게 강사 코드가 간단하다!
728x90
반응형
SMALL
'Python' 카테고리의 다른 글
TypeError: sub_process() takes 1 positional argument but 11 were given (0) | 2024.01.25 |
---|---|
re.error: look-behind requires fixed-width pattern (0) | 2024.01.24 |
파이썬 코딩 스타일 (0) | 2023.01.17 |
[Jupyter Notebook] TypeError: 'method' object is not subscriptable (0) | 2022.12.09 |
[Jupyter Notebook] UserWarning: Glyph 49688 (\N{HANGUL SYLLABLE SU}) missing from current font. (0) | 2022.12.07 |
댓글