[Python] 함수(Function)
- 파이썬(Python)
- 2022. 2. 5. 19:40
참조
소개
- 파이썬을 공부해야 할 일이 생겨서, 위키독스에 올라와 있는 점프 투 파이썬 내용을 보면서 파이썬 공부한 내용을 기록합니다.
- 보다 자세한 내용은 점프 투 파이썬 해당 사이트에 가셔서 더 깊게 확인하실 수 있습니다.
파이썬 함수의 구조
- 파이썬 함수의 구조는 다음과 같습니다.
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 |
이 글을 공유하기