Python

파이썬 코딩 High Level vs. Low Level

xojuholic 2023. 1. 18.
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

댓글

💲 추천 글