07. 함수 정의하기
함수를 정의하는 키워드는 ‘def’이다.
함수를 정의할 때에는 함수의 기능이 무엇인지를 고려해서 함수의 이름을 설정하는 것이 바람직하다.
함수 정의하기
1. 인자 값, 반환 값 없는 함수
A. 사용법 : def 함수이름( ) :
i. 소스 코드
현제 정의된 함수는 인자 값, 반환 값(return값)이 없는 함수다.
ii. 실행 결과
iii. 설명
1. 위에서 정의된 함수는 인자 값이 없기 때문에 괄호 기호( ( ) )만을 입력한다.
2. 블록문과 같은 형태로 콜론 기호( : )를 통해 함수에서 하고자 하는 행위를 기술하는 블록문을 작성한다.
3. 이렇게 작성된 함수는 ‘my_func( )’라는 명령어로 호출한다.
2. 인자 값만 있는 함수
A. 사용법 : def 함수이름(인자 값) :
i. 소스 코드
정의된 함수는 인자 값이 정의된 함수로, 함수 내에서는 입력하는 부분을 작성하지 않아도 된다.
ii. 실행 결과
1. 인자 값이 정의된 함수를 사용자가 임의로 해당 값을 작성해서 사용하기 위해서는 이름을 입력하는 부분을 작성을 해서 함수를 사용해야 한다.
2. 해당 함수에 인자 값을 바로 작성해서 사용할 수 있기도 하다.
3. 인자 값이 있는 함수를 인자 값이 없는 상태로 호출한 경우
타입 에러 : my_func( )에서 누락 된 1개의 인자 값 위치 : ‘name’
3. 인자 값, 반환 값이 모두 있는 함수
A. 함수를 기술하는 끝에 return이라는 예약어를 사용하여 값을 반환한다.
B. 호출한 뒤 괄호 안에 원하는 인자 값을 넣는다.
i. 소스 코드
1. 두 인자 값의 합을 더해서 반환하는 함수
2. 두 인자 값을 더하는 경우 인자 값으로는 문자열도 가능하다.
ii. 실행 결과
1. 4 + 5
2. ‘안녕’ + ‘하세요’
4. 반환 값을 표기하지 않는 함수의 반환 값(None)
A. 함수 내에 return이 존재 하지만 그 뒤에 아무것도 없는 경우
B. 반환되어 화면에 출력되는 값은 None가 출력된다.
C. 해당 값을 확인하기 위해서는 print( )를 이용해준다.
i. 소스 코드
1. 함수를 일반 적으로 사용하면 print( )문이 출력된다.
2. 반환 값은 print(함수( ))식으로 확인 할 수 있다.
ii. 실행 결과
1. 일반적인 함수 실행문으로 호출하면 해당 함수에 실제로 사용하는 값이 출력된다.
2. print( )문 안에서 함수를 호출하면 반환 값이 함께 출력된다.
기본 인자 값 활용하기(Default Argument Value)
1. range( )함수
A. range( )함수는 인자 값의 개수에 따라 다양한 형태로 리스트를 생성한다.
i. 소스 코드
ii. 인자 값의 개수에 따라 range( )함수의 작동 방식이 달라지는 것을 확인할 수 있다.
B. 인자 값 있는 함수의 활용
i. 일반적인 사용
1. 소스 코드
2. 실행 결과
첫 번째 : 인자 값 7
두 번째 : 인자 값 10
세 번째 : 인자 값 없음
ii. Default값 설정
1. 소스 코드
인자 값을 추가하는 과정에서 값을 미리 설정해 놓을 수 있다.
2. 실행 결과
인자 값을 입력하지 않을 때에는 default로 설정 된 인자 값이 반환된다.
iii. None 설정
1. 소스 코드
인자 값을 None로 설정 해 놓을 수 있다.
2. 실행 결과
첫 번째 : 인자 값을 입력하지 않은 경우
두 번째 : 인자 값을 입력 한 경우
여러 개의 인자 값 빛 키워드 인자 활용하기(Keyword Arguments)
함수의 인자 값에는 함수 호출 시 반드시 대입해야 한다는 문제가 있다.
인자 값을 입력하지 않는 경우 에러가 발생하는 ‘필수(required) 인자 값’이 있다.
인자 값을 대입하지 않아도 기본 값을 할당하는 ‘옵션(optional) 인자 값’이 있다.
1. 위치 인자 값(positional)
A. 인자 값을 집어 넣는 순서가 중요한 필수 인자 값
B. 입력 할 위치가 같다면 때 사용
C. 사용 : 함수이름(데이터1, 데이터2, 데이터3)
2. 키워드 인자 값(keyword)
A. 기본 값을 가지고 있는 옵션 인자 값
B. 굳이 인자 값을 집어 넣지 않아도 된다.
C. 사용 : 함수이름(인자값이름 = 데이터)
3. 예제 introduce_my_caar( )
ü 소스 코드
A. 실행 결과 1
첫 번째 인자 값 위치에 데이터 입력
B. 실행 결과 2
키워드를 이용한 인자 값 데이터 입력
C. 실행 결과 3
첫 번째, 세 번째 키워드의 인자 값 데이터 입력
D. 실행 결과 4
순서가 다른 상태로 인자 값에 데이터를 입력하기 위해서는 키워드=값 으로 입력을 해야 한다.
E. 실행 결과 5
순서를 지켜서 인자 값을 입력한다면, 굳이 키워드로 데이터를 입력할 필요는 없다.
F. 실행 결과 6
순서를 지킨다면 위치 인자 값, 키워드 인자 값 혼용해서 사용이 가능하다.
G. 오류
i. 필수 인자 값 누락
함수를 선언할 때 manufacturer의 값은 사용자가 입력하도록 필수 인자 값으로 지정해서 해당 인자의 값이 없는 경우에는 위와 같은 오류가 출력된다.
ii. 키워드 인자 값 뒤에 키워드 없는 인자 값 사용 불가
함수 호출 시에 인자 값에 키워드 인자 값 다음에 위치 인자 형태의 인자 값은 넣을 수 없다.
iii. 동일 매개 변수에 중복 인자 값 대입
인자 값이 이미 정해져 있는 상태에서 인자 값을 다시 추가 하면 위와 같은 오류가 출력된다.
iv. 알지 못하는 키워드(매개 변수 명 존재하지 않음)
매개변수가 정해지지 않은 인자 값을 입력 할 경우 위와 같은 오류가 발생
'Python' 카테고리의 다른 글
06. 실습 프로젝트 (0) | 2017.09.27 |
---|---|
05. 제어문과 자료형의 조합 (0) | 2017.09.18 |
04. 제어문 (0) | 2017.09.14 |
03. 튜플형, 세트형, 사전형 (0) | 2017.09.09 |
02. 문자열, 리스트 (0) | 2017.09.04 |