함수 (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(없다)값 반환
기본적인 함수의 형태