For Programmer

8. 함수와 람다 표현식 본문

코팅테스트/파이썬 문법 정리

8. 함수와 람다 표현식

유지광이 2021. 8. 10. 14:18
728x90

함수

함수 정의하기

-> add(3,7) 함수를 호출할때 쓰는 값들을 인자(argument) 라고하고 add(a,b)에서 함수를 정의할때 쓰는 값들을 매개변수(parameter) 라고한다.

global 키워드

a = 10

def func():
  print(a+20) #단순한 값의 참조는가능
  a += 1 #값의 변경은 불가능(전역변수라고 해도 global선언 필수)


  global a #전역변수 a를 참조하겠다는 의미
  a += 1 # 오류발생 x
  print(a)
func()

array = [1,2,3,4,5]

def func():
  array.append(6) #리스트형은 전역변수라 할지라도 global선언 불필요
  print(array) 
func()

-> 실제로 코딩테스트는 전역변수로 리스트를 지정해놓는 경우가 많기 때문에 global 키워드를 굳이 사용안한다. 단, 지역변수에도 array라는 리스트형이 있을 경우 해당함수내에서는 지역변수를 우선적으로 참조한다. (global 선언이 되어있을경우 전역변수 array를 참조함)

 

여러 개의 반환 값

람다 표현식

-> 간다한 식을 한번사용하고 버릴것이라면 lambda식으로 구현 가능(lambda 매개변수 : 리턴값)

-> sorted 함수를 이용하는데 key속성으로 함수자체를 줄 수 있다. my_key는 return값이 x[1]인데 이말은 두번째 값을 이용해서 오름차순으로 정렬한다는 의미이다.

-

-> map함수는 map(f,x) 라고해서 첫번째 인자는 함수를 받고 두번째 인자는 리스트,튜플,문자열 등 시퀀스자료형을 받는다. map(lamda a:a*a,list1) 할경우 list1의 값들을 제곱해서 반환한다. 또한 2개이상도 받을 수 있는데 map함수에 위와같이 할 경우 2개(list1,list2)가 매개변수 a,b에 각각 인자로들어가게된다.

728x90
Comments