반응형
파이썬에서 함수의 구조는 다음과 같다. 이때 매개변수와 반환 값은 없을 수 도 있다.
def 함수명(매개변수):
실행할 소스코드
return 반환 값
def add(a,b):
return a + b
print(add(7,6))
※ 여러 개의 반환 값
다른 언어와 달리, 파이썬에서 함수는 여러 개의 반환 값을 가질 수 있다.
def operater(a,b):
add = a + b
sub = a - b
mul = a * b
div = a / b
return add, sub, mul, div
a,b,c,d = operater(7,3)
print(a,b,c,d)
global 키워드
함수 안에서 함수 밖의 데이터를 변경해야 하는 경우가 있는데 이때는 함수에서 global 키워드로 변수를 지정하면, 해당 함수에서는 지역 변수를 만들지 않고, 함수 바깥에 선언된 변수를 바로 참조하게 된다.
a = 0
def func():
global a
a += 1
for i in range(10):
func()
print(a)
반면 global 없이 a += 1을 해주면 오류가 발생한다. 하지만 단순히 변수의 값을 참조하거나 리스트에 원소를 추가하는 등의 코드는 오류 없이 실행된다.
array = [1,2,3,4]
def func():
array.append(5)
print(array)
func()
위 코드에서 만약 함수 내에서 새로운 array라는 이름의 리스트를 선언해주었다면 새로운 array에 5가 추가되어 출력된다. 즉, 함수 내부에서 새로 선언된 변수가 있다면 그 변수를 참조하는 방식이다.
array = [1,2,3,4]
def func():
array = [3,4]
array.append(5)
print(array)
func()
람다 표현식
파이썬에서는 람다 표현식을 사용할 수 있다.
람다 표현식을 사용하면 특정한 기능을 수행하는 함수를 한 줄에 작성할 수 있다는 점이 특징이다.
print((lambda a,b: a+b)(3,7))
람다 표현식은 흔히 한 번 만 실행하는 함수, 함수 자체를 매개 변수로 받는 함수를 사용하는 상황에서 효과적으로 쓰일 수 있다.
예를 들어 파이썬의 정렬 라이브러리를 사용할 때, 정렬의 기준(key)을 설정할 때 자주 사용된다.
array = [('홍길동', 50), ('이순신, 30'), ('아무개', 80)]
print(sorted(array, key = lambda x: x[1]))
참고자료: 이것이 취업을 위한 코딩 테스트다 with 파이썬 - 나동빈 지음(한빛미디어)
반응형
'Python > 파이썬 문법' 카테고리의 다른 글
[파이썬 문법] 문자열 보충(슬라이싱, 문자열 함수) (0) | 2022.01.06 |
---|---|
[파이썬 문법] 입출력 보충(2차원 배열, sys.stdin.readline) (0) | 2022.01.06 |
[파이썬 문법] 파이썬의 조건문 (0) | 2021.12.28 |
[파이썬 문법] 입출력 (0) | 2021.12.28 |
[파이썬 문법] 그 외 다양한 자료형(문자열, 튜플, 사전, 집합) (0) | 2021.12.26 |