Python/파이썬 문법

[파이썬 문법] 함수

서노리 2021. 12. 29. 00:57
반응형

파이썬에서 함수의 구조는 다음과 같다. 이때 매개변수와 반환 값은 없을 수 도 있다.

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에 5라는 원소가 추가되었다. 이 경우 global을 지정해주지 않아도 된다.

위 코드에서 만약 함수 내에서 새로운 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 파이썬 - 나동빈 지음(한빛미디어)

반응형