TIL[34]. Python_Function

jake.log·2020년 8월 22일
0

Python

목록 보기
16/39

16.Function

함수는 일정한 작업을 수행하는 코드블럭이다.

함수를 사용하면

  1. 반복되어 계속 사용되는 코드들을 함수로 정의하여 효과적으로 사용할 수 있고
  2. 함수로 정리를 해서 코드의 가독성을 높일 수 있다.

개념적으로만 봤을때 함수는 수학의 함수와 동일하다.
즉 input이 있고 output이 있는 아주 간단한 구조다.

파이썬에서 함수는 def 키워드를 사용하여 정의되며, 다음과 같은 문법을 갖는다.

    def 함수명(parameter):
         문장1
         문장2
         ...
         문장N
         [return 리턴값]

parameter 와 return 은 optional 이다.

Input parameter가 없는 함수도 있을 수 있으며 리턴값이 없는 함수도 있다.
return 값은 함수에서 해당 함수를 호출한 주체에게 결과값을 보내주는 것이다.

예를 들어, 어떠한 수가 prime number(소수) 인지를 계산하는 로직을 구현한다면 다음과 같이 구현 할 수 있다 (참고로 소수는 1과 자기 자신 이외에 나누어 떨어지는 수가 없는 수를 말한다).

n = 11

#1 혹은 그 이하이면 소수가 아니다 
if (n <= 1): 
    return False
#2 와 3은 소수 이다
if (n <= 3): 
    return True
#2 나 3으로 나누어 떨이지면 소수가 아니다
if (n % 2 == 0 or n % 3 == 0): 
    return False

i = 5
while(i * i <= n): 
    if (n % i == 0 or n % (i + 2) == 0) : 
        return False
    i = i + 6

return True

만일 위의 소수 계산을 여러번 반복 해서 해야 한다면 위의 코드를 여러번 중복되게 사용해야 한다.
그러면 코드의 가독성도 떨어진다.

그럼으로 반복적으로 실행하는 코드는 다음 처럼 함수로 정의한 후 간단하게 함수를 호출 하는 식으로 사용하게 된다.

이제 함수를 원하는 값을 parameter로 넘겨줘서 호출 하면 된다.

is_eleven_prime = is_prime(11)
print(f"11 is prime? {is_eleven_prime}")

is_ten_prime = is_prime(10)
print(f"10 is prime? {is_ten_prime}")

여기서 볼 수 있듯이 함수를 사용하면 코드를 반복적으로 구현하지 않아도 됨으로 코드 양이 적어지고 또한 함수 이름 자체가 코드의 기능을 설명하기 때문에 코드에 대한 이해가 높아져서 가독성이 높아진다.

profile
꾸준히!

0개의 댓글