본문 바로가기

Python/for코테

[이것이 코딩 테스트다 with Python] 10강 파이썬 문법: 함수와 람다 표현식

※ 다음 강좌의 내용을 정리한 것입니다.

www.youtube.com/watch?v=M_wLOmNRBN8&list=PLVsNizTWUw7H9_of5YCB0FmsSc-K44y81&index=10

 

- 함수(Function)란 특정한 작업을 하나의 단위로 묶어 놓은 것을 의미하며, 함수를 사용하면 불필요한 소스코드의 반복을 줄일 수 있습니다.

 

- 내장 함수는 파이썬이 기본적으로 제공하는 함수(input, print 등)이며, 사용자 정의 함수는 개발자가 직접 정의하여 사용하는 함수입니다. 

 

- 매개변수(Parameter)란 함수 내부에서 사용할 변수(함수에 전달되는 값은 전달인자(Argument))이고, 반환 값은 함수에서 처리된 결과의 반환입니다.

매개변수와 반환 값은 존재하지 않을 수도 있습니다.

 

함수 형식

- 파이썬에서 파라미터의 변수를 직접 지정할 수 있으며, 이 경우 매개변수의 순서가 달라도 상관이 없습니다.

ex) add(b = 3, a = 7)

 

- ★ global 키워드로 변수를 지정하면, 해당 함수에서는 지역 변수를 만들지 않고, 함수 바깥에 선언된 변수를 바로 참조하게 됩니다. (C언어계는 자동으로 참조하지만, 파이썬에서는 적어줘야 한다)

 

- 값을 변경하는 게 아니라 단순히 참조하는 경우는 global 키워드가 없어도 오류가 없습니다.

그리고 전역변수로 선언된 리스트의 내부 메서드 호출도 global 키워드 없이 가능합니다.

 

- 하지만, 전역변수와 지역변수로 동일한 이름의 변수가 존재한다면, 지역변수가 우선적으로 참조됩니다.

 

- ★ 파이썬에서 함수는 여러 개의 반환 값을 가질 수 있습니다. 자동으로 묶여서 튜플로 반환됩니다.(패킹)

(반환된 튜플을 각각의 변수에 할당하면서 언패킹)

 

- 람다 표현식을 이용하면 함수를 간단하게 작성할 수 있습니다.(이름 없는 함수)

특정한 기능을 수행하는 함수를 한 줄에 작성할 수 있다는 점이 특징입니다.

ex) print((lambda a, b: a + b)(3, 7))

 

- 람다 표현식은 어떤 함수 자체를 입력으로 받는 또 다른 함수가 존재하거나, 함수의 기능이 매우 간단하고, 단순히 한 번 사용하고 말 경우 효과적으로 사용될 수 있습니다.

 

- 내장함수 sort와 sorted에서 람다 함수를 속성의 값으로 이용할 수 있습니다.

 

sorted 속성으로 사용된 람다 함수(두번째 값으로 정렬)

- 여러 개의 리스트에 동일한 규칙을 가지는 하나의 함수를 적용하고자 할 때, 람다 함수를 효과적으로 사용할 수 있습니다.(map함수는 각각의 원소에 어떠한 함수를 적용)

 

결과값: [7, 9, 11, 13, 15]