17주차. 함수 만들기

09Roalwlzm01·2023년 10월 26일
0

Python

목록 보기
26/36
post-thumbnail

함수 (function)

  • 어떤 처리를 하기 위한 코드의 집합
  • 식별자 뒤에 괄호(( ))가 붙어있는 형태
  • 함수 호출 : 함수를 사용한다는 의미
  • len("안녕하세요") 함수 호출

함수 생성하기


매개변수가 있는 함수 생성하기

  • 매개변수
    • 함수에 전달된 인자를 받아들이는 변수
    • 함수를 생성할 때 괄호 내부에 식별자를 입력해서 만듦
  • 인자 (인수)
    - 함수를 호출할 때 함수에 전달하는 자료(또는 값)

매개변수와 관련된 TypeError

  • 함수에서 지정한 매개변수 개수보다 인자 개수가 적은 경우
  • 인자 개수가 많은 경우
  • 이처럼 매개변수의 개수와 인자 개수가 일치하지 않으면 TypeError가 발생함

가변 매개변수

  • 매개변수 개수가 변할 수 있는 매개변수
    -
  • 가변 매개변수 함수
    - 매개변수를 원하는 만큼 받을 수 있는 함수
  • 가변 매개변수는 하나만 사용(지정)할 수 있음
  • 가변 매개변수 뒤에는 일반 매개변수가 올 수 없음
    - 가변 매개변수가 일반 매개변수 앞에 있으면 어디까지가 가변 매개변수이고 어디까지가 일반 매개변수인지 구분할 수 없음
  • 가변 매개변수는 리스트 자료형처럼 자료에 접근
  • 가변 매개변수 이름은 args 또는 values를 관례적으로 사용
  • values = ['안녕하세요', '즐거운', '파이썬 프로그래밍']
  • values[0] = '안녕하세요'


기본 매개변수

  • 매개변수를 입력하지 않았을 때 매개변수에 들어가는 기본값이 지정된 매개변수
  • 기본 매개변수 뒤에는 일반 매개변수가 올 수 없음
def print_n_times(n=2, value):
	pass
  • print_n_times("안녕하세요") 호출 시 "안녕하세요"가 n에 할당되어야 하는지, value에 할당되어야 하는지 알 수 없음

가변 매개변수 뒤에 일반 매개변수가 올 수 없고,

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

가변 매개변수와 기본 매개변수를 함께 쓸 방법은 없을까?


기본 매개변수가 가변 매개변수보다 앞에 올 때

  • 기본 매개변수의 의미가 사라짐 (일반 매개변수처럼 동작)

가변 매개변수가 기본 매개변수보다 앞에 올 때

  • 가변 매개변수가 우선되어 동작

키워드 인자

  • 매개변수에 매개변수 이름으로 일치시키는 인자
    - 매개변수 이름을 지정해서 입력하는 인자

위치 인자

  • 순서대로 매개변수의 위치와 일치시키는 인자
  • 위치 인자는 반드시 키워드 인자보다 앞에 작성해야함
func('py', b='thon')
func(a='py', 'thon')		# SyntaxError

키워드 매개변수

  • 함수에 전달된 key=value 형태의 키워드 인자가 딕셔너리 자료형으로 저장
  • 키워드 매개변수 이름은 kwargs를 관례적으로 사용
  • 키워드 매개변수는 가변 매개변수보다 뒤에 있어야 함
  • 형광친 **kwargs 는 if i in kwargs가 됨
  • 일반 매개변수의 인자는 반드시 입력해야 함

리턴값

  • 함수의 결과로 반환되는 값
  • y = f(x)
    = x + 1

return 키워드

  • 리턴
    - 함수를 실행했던 위치로 돌아가라는 명령
  • 함수가 끝나는 위치를 의미
  • return 밑에 있는 print() 함수는 실행하지 않음

자료와 함께 리턴하기


  • 100 이라는 값 반환
  • 변수 value에 return_test()에서 반환된 값(100)을 넣으라는 의미

아무것도 리턴하지 않으면?

  • 리턴값을 지정하지 않으면 None(없다)값 반환

기본적인 함수의 형태


0개의 댓글