[4주차] Chapter 5

 

[기본 미션] p.223 [직접 해보는 손코딩: 범위 내부의 정수를 모두 더하는 함수] 실행 후 코드가 입력된 화면 및 실행결과 화면 인증샷

 

 

 

[선택 미션] 매개변수, 기본 매개변수, 가변 매개변수에 대해 간략하게 정리한 내용 포스팅하기

 

함수의 기본

def 함수 이름():
       문장

 

매개변수

 

매개변수 : 괄호 안에 것들. 함수를 생성할 때 괄호 내부에 식별자를 입력해서 만든다
매개변수를 만들면 함수를 호출할 때 값을 입력해서 함수 쪽으로 전달할 수 있다

def 함수 이름(매개변수매개변수, … ) :
       문장

 

매개변수와 관련된 TypeError

함수를 생성할 때 매개변수를 만들었는데, 함수를 호출할 때 매ㅐ개변수를 넣지 않거나 더 많이 넣으면 오류 발생
함수를 호출할 때는 함수를 선언할 때와 같은 개수의 매개변수를 입력해야 한다

 

가변 매개변수

함수를 선언할 때의 매개변수와 함수를 호출할 때의 매개변수가 같아야 한다
print()함수는 매개변수를 원하는 만큼 입력할 수 있다
이처럼 매개변수를 원하는 만큼 받을 수 있는 함수를 가변 매개변수라고 한다. (매개변수가 변할 수 있다)

def 함수이름(매개변수매개변수, … , *가변 매개변수):
        문장

 

 

가변 매개변수 사용시 제약사항

가변 매개변수 뒤에는 일반 매개변수가 올 수 없다
어디까지가 가변 매개변수고 어디가 매개변수인지 구분하기 어렵기 때문
가변 매개변수는 하나만 사용할 수 있다

 

 

기본 매개변수

매개변수를 입력하지 않았을 경우 매개변수에 들어가는 기본 값(‘매개변수 = 값’ 형태)

print(value, … , sep=‘ ‘, end=‘\n’, file=sys.stdout, flush=False)

 

 


기본 매개변수 사용시 제약사항

기본 매개변수 뒤에는 일반 매개변수가 올 수 없다

 


키워드 매개변수

가변 매개변수와 기본 매개변수 둘을 같이 쓸 수 있을까?

 

  • 기본 매개변수가 가변 매개변수보다 앞에 올 때는 의미가 없다(오류)
  • 가변 매개변수가 기본 매개변수보다 앞에 올 때는 가변 매개변수가 우선이 됨

키워드 매개변수: 매개변수 이름을 지정해서 입력하는 매개변수
ex) print(“문장”, end=“ ”)


리턴

•자료없이 리턴하기

      함수 내부에서는 return이라는 키워드를 사용할 수 있다

        이 키워드는 함수를 실행했던 위치로 돌아가라는 뜻으로 함수가 끝나는 위치를 의미한다

 

자료와 함께 리턴하기

       리턴 뒤에 자료를 입력하면 자료를 가지고 리턴한다

 

아무것도 리턴하지 않기

       None 출력한다

 

 

global 키워드

함수 내부에서 함수 외부에 있는 변수를 참조하지 못한다

참조 : 변수에 접근하는 것

함수 내부에서 함수 외부에 있는 변수라는 것을 설명하기 위해 사용

global 변수이름

 

튜플 

함수와 함께 많이 사용되는 리스트와 비슷한 자료형. 리스트와 다른 점은 한번 결정된 요소는 바꿀 수 없다

(데이터, 데이터, 데이터, … )

 

튜플은 함수의 리턴에 많이 사용한다. 함수의 리턴에 튜플을 사용하면 여러개의 값을 리턴하고 할당할 수 있다

def test():
      return (10, 20)
a, b= test() //a = 10, b=20 값이 할당된다

 

 

람다  

매개변수로 함수를 전달하기 위해 함수 구문을 작성하는 것이 번거롭고, 코드 공간 낭비라는 생각이 들 때 함수를 간단하고 쉽게 선언하는 방법

‘간단한 함수를 쉽게 선언하는 방법’

lambda 매개변수 : 리턴 값

 

ex) power = lambda x: x*x

      under_3 = lambda x: x<3

 

filter(), map()

map() 함수는 리스트의 요소를 함수에 넣고 리턴된 값으로 새로운 리스트를 구성

map(함수, 리스트)

 

filter() 함수는 리스트의 요소를 함수에 넣고 리턴된 값이 True인 것으로, 새로운 리스트를 구성해주는 함수

filter(함수, 리스트)

 

+ Recent posts