Python/실습

102. [Python] 프로그래밍 실습 : FUNCTIONS (함수)

천재단미 2025. 1. 21. 11:37
728x90
반응형

result = num_list(7)
print(result)

 

 

 

 

 

 

 

문제 1. 

 

 

참조

두가지의 풀이 방법이 생성되어 풀이1-1, 풀이1-2 로 전달 드립니다. 

 

풀이  1 -1 . num_list의 동작 방식

설명:

  • 리스트 컴프리헨션을 사용하여 2부터 num-1까지의 숫자를 생성합니다.
  • range(2, num)은 2부터 num-1까지의 숫자 범위를 생성합니다.
  • if i % 2 == 0 조건으로 짝수만 리스트에 포함시킵니다.

동작 과정:

  1. range(2, num)에서 숫자를 하나씩 가져옵니다.
  2. 각 숫자에 대해 i % 2 == 0 조건을 확인합니다.
    • 조건이 참이면 리스트에 추가합니다.
    • 조건이 거짓이면 제외합니다.

코드

def num_list(num):
     return [i for i in range(2, num) if i % 2 == 0]
result = num_list(7)
print(result)

 

결과 출력 

[2, 4, 6]

 

단점:

  • if 조건을 매번 평가해야 하므로 상대적으로 비효율적입니다.
  • 필요 없는 홀수를 생성하고 필터링하는 작업이 추가됩니다.

예시:

num_list(10)  # 출력: [2, 4, 6, 8]

 

 

 

 

풀이  1-2 . get_even의 동작 방식

 

설명:

  • *range(start, stop, step)*을 사용하여 짝수를 직접 생성합니다.
  • range(2, num + 1, 2)는 2부터 num까지의 숫자를 2씩 건너뛰며 생성합니다.

동작 과정:

  1. range(2, num + 1, 2)는 처음부터 짝수만 생성합니다.
  2. 생성된 짝수를 list()로 변환하여 반환합니다.

코드

def get_even(num):
    return list(range(2, num + 1, 2))

 

장점:

  • 필요 없는 홀수를 생성하지 않으므로 더 효율적입니다.
  • 코드가 더 간결하고 읽기 쉽습니다.

예시:

get_even(10)  # 출력: [2, 4, 6, 8, 10]

 

주요 차이점 비교

특징 num_list get_even

짝수 필터링 방식 모든 숫자를 생성한 뒤 i % 2 == 0으로 필터링 짝수만 생성
효율성 불필요한 홀수를 생성하고 조건을 평가하므로 비효율적 처음부터 짝수만 생성하므로 더 효율적
코드 가독성 조건문을 포함해 약간 복잡 간단하고 직관적
생성 범위 2부터 num-1까지 2부터 num까지 (마지막 값 포함하려면 +1 필요)

 

결론

  • 효율성과 간결함이 중요한 경우: get_even을 사용하세요.
  • 학습 목적으로 조건문 활용을 연습하거나, 더 복잡한 필터링이 필요한 경우: num_list처럼 리스트 컴프리헨션을 사용하세요.

 

 

 

 

 

728x90
반응형
home top bottom
}