[Python] 함수(Function)

참조


소개

  • 파이썬을 공부해야 할 일이 생겨서, 위키독스에 올라와 있는 점프 투 파이썬 내용을 보면서 파이썬 공부한 내용을 기록합니다.
  • 보다 자세한 내용은 점프 투 파이썬 해당 사이트에 가셔서 더 깊게 확인하실 수 있습니다.

파이썬 함수의 구조

  • 파이썬 함수의 구조는 다음과 같습니다.
def 함수명(매개변수):
    <수행할 문장1>
    <수행할 문장2>
    ...
  • def는 함수를 만들 때 사용하는 예약어이며, 함수 이름은 함수를 만드는 사람이 임의로 만들 수 있습니다.
  • 함수 이름 뒤 괄호 안의 매개변수는 이 함수에 입력으로 전달되는 값을 받는 변수입니다.
  • 이렇게 함수를 정의한 다음 if, while, for 문 등과 마찬가지로 함수에서 수행할 문장을 입력합니다.
  • 아래는 간단한 덧셈을 정의하는 함수 입니다.
def add(number1, number2):
  return number1 + number2

매개변수와 인수

  • 매개변수와 인수는 혼용해서 사용되는 헷갈리는 용어이므로 잘 기억해야 합니다.
  • 매개변수는 함수에 입력으로 전달된 값을 받는 변수를 의미하고 인수는 함수를 호출할 때 전달하는 입력값을 의미합니다.
def add(a, b):  # a, b는 매개변수
    return a+b

print(add(3, 4))  # 3, 4는 인수

매개변수 지정하여 호출하기

  • 함수를 호출할 때 매개변수를 지정할 수도 있습니다.
>>> def add(a, b):
...     return a+b
... 
  • 앞에서 알아본 add 함수입니다.
  • 이 함수를 다음과 같이 매개변수를 지정하여 사용할 수 있습니다.
>>> result = add(a=3, b=7)  # a에 3, b에 7을 전달
>>> print(result)
10
  • 매개변수를 지정하면 다음과 같이 순서에 상관없이 사용할 수 있다는 장점이 있습니다.
>>> result = add(b=5, a=3)  # b에 5, a에 3을 전달
>>> print(result)
8

입력값이 몇 개가 될지 모르는 경우

  • 입력값이 여러 개일때 그 입력값을 모두 더해 주는 함수를 생각해 봅니다.
  • 하지만, 몇개가 입력될지 모를때는 어떻게 해야 할까요?
  • 파이썬은 이런 문제를 해결하기 위해 다음과 같은 방법을 제공합니다.
def 함수이름(*매개변수): 
    <수행할 문장>
    ...
  • 일반적으로 볼 수 있는 함수 형태에서 괄호 안의 매개변수 부분이 *매개변수 로 바뀌었습니다.

여러 개의 입력값을 받는 함수 만들기

  • 다음 예를 통해 여러 개의 입력값을 모두 더하는 함수를 직접 만들어 봅니다.
>>> def add_many(*args): 
...     result = 0 
...     for i in args: 
...         result = result + i 
...     return result 
... 
>>>
  • 위에서 만든 add_many 함수는 입력값이 몇개든 상관없이 모두 처리할 수 있습니다.
  • *args 처럼 매개변수 이름 앞에 *을 붙이면 입력값을 전부 모아서 튜플로 만들어 주기 때문입니다.

    args는 인수를 뜻하는 영어 단어 arguments의 약자이며 관례적으로 자주 사용합니다.


매개변수에 초기값 미리 설정하기

  • 함수 매배견수에 초기값을 미리 설정할 수도 있습니다.
def say_myself(name, old, man=True): 
    print("나의 이름은 %s 입니다." % name) 
    print("나이는 %d살입니다." % old) 
    if man: 
        print("남자입니다.")
    else: 
        print("여자입니다.")

say_myself 함수는 3개의 매개변수를 받아서 마지막 인수인 man이 True 이면 "남자입니다.", False 이면 "여자입니다." 를 출력합니다.

  • 위 함수에서 보면 man=True 처럼 매개변수에 미리 값을 넣어준 것을 볼 수 있습니다.
  • 이것이 바로 함수의 매배견수 초기값을 설정하는 방법입니다.
  • 함수의 매개변수에 들어갈 값이 항상 변하는 것이 아닐 경우에는 초기값을 미리 설정해 두는 편이 좋습니다.

lambda(람다)

  • 람다는 함수를 생성할 때 사용하는 예약어로 def와 동일한 역할을 합니다.
  • 보통 함수를 한줄로 간결하게 만들 때 사용합니다.
>>> def add(a, b):
...     return a+b
...
>>> result = add(3, 4)
>>> print(result)
7

>>> add = lambda a, b: a+b
>>> result = add(3, 4)
>>> print(result)
7
  • 위 두개의 add 함수는 동일한 역할을 하는 함수입니다.

728x90

'파이썬(Python)' 카테고리의 다른 글

[Python] 예외 처리  (0) 2022.02.08
[Python] 클래스(Class)  (0) 2022.02.08
[Python] for문  (0) 2022.02.05
[Python] while문  (0) 2022.02.05
[Python] if문  (2) 2022.01.31

이 글을 공유하기

댓글

Designed by JB FACTORY