<<함수>>
반복적으로 사용하는 기능을 묶어서 함수로 정의하면 간편하게 사용할 수 있다.
▶기본 문법
def 함수 이름(매개변수):
<수행할 내용1>
<수행할 내용2>
<수행할 내용3>
return
▶ 매개변수
- 함수 안에서 사용할 값을 전달하는 변수로 <수행할 내용> 문장에서 변수로 사용된다.
- 함수 정의문에서 매개변수로서 선언되며 실제로 함수를 호출할 때는 인자값으로 전달된다.
▶ 용어
- def : 함수를 정의할 때 사용하는 키워드
- return : 함수의 결과값을 반환하는 키워드
- 입력값 = 인수, 입력인수, 인자라고 부른다.
- 결과값 = 출력값, 리턴값, 돌려주는 값, 반환값이라고 부른다.
기본적인 함수의 예제
1. 완전한 실행문
-
파이썬은 유니코드가 지원되어 변수명을 한글로 설정이 가능하다.(but 권장은 x)
-
물론 이런 식의 단순 코딩도 가능하지만 함수 설정시 코딩에 있어 큰 효율성을 발휘 할 수 있다. (일반 출력과 함수 출력 비교)
-
이러한 완전한 실행문에서의 함수는 특정한 입력값 설정 없이도 출력이 된다는 점이다.
2. 불완전한 실행문
- 불완전한 실행문에서는 입력값을 설정해야 연산이 가능하다.
- 입력값 설정을 통한 연산 과정(a를 설정해주면 작동)
- 주의 할 점은 함수 내부에 선언된 변수는 외부 출력이 불가하다.(오늘자 사이드에 상세 설명 첨부 - 스택과 힙 내부 작업의 순서에 따른 결과)
- return 구문이 존재하지 않을 때의 모습(함수 내부에 print()를 수행한 뒤 리턴 값이 존재하지 않게게 된다.)
- return 구문이 존재할 경우 출력 값(함수 안에 print 처리 후 리턴 값 출력)
- 두 구문의 비교 :
- return 구문은, 함수 내 마지막 지점에 사용할 수 있습니다.
- return구문이 실행되면, 함수가 종료되며 동시에 해당 함수의 결과값이 호출한 위치에 할당됩니다.
매개변수와 인수 (참고)
1. 매개변수(parameter, 입력인자, 입력값)
함수에 전달된 값을 저장하는 변수 / 함수를 선언할 때 정의하는 변수 -> def plus(a): 에서 a를 매개변수
인수 / 인자 (argument)
함수를 호출(=사용)할 때 전달하는 입력 값 -> print(plus(15)) 에서 15를 인수, 인자라고 한다.
-
예제
- 매개변수를 2개 이상 받는 케이스
- sum_func 라는 이름으로 함수를 선언해주세요.
- 이 함수는 num1, num2 2개의 변수를 입력받고 둘을 합산한 값을 리턴합니다.
2. 매개변수 있는 함수
-
인자 값을 전달 할 때 값만 입력하면 순서대로 매개변수에 할당된다.
-
매개변수명을 지정하여 전달할 수 있다.
-
예제
- 매개변수 3개인 함수를 설정해주세요.
- 매개변수명 3개는 자율적으로 만들어주세요.
- print()로 매개변수 3개가 뭐였는지 콘솔에 출력하세요.
- result 변수에 3개 합을 저장한 뒤 리턴합니다.
- 함수명은 test1 입니다.
-
매개변수에 순서를 다르게 전달하고 싶다면 매개변수를 지목해 값을 대입한다.
-
디폴트값 선언을 사용한 예시
-
원한다면 일부 자료만 넣는 형식도 가능하다.
(a=5, b=10, c=3의 의미 : 총합 18)
-
하지만 디폴트 값 설정은 반드시 오른쪽 요소부터 지정해야 한다.
가변인자 리스트
- 입력할 파라미터의 개수가 몇 개인지 모를 때 사용함
- 파라미터명 왼쪽에 * 을 붙인다.
- 가변인자를 활용하면 기존의 개별 추가 방식에 비해 효율이 높다.
- 개별 추가 방식
- 가변인자 활용 방식(가변인자 리스트 : 튜플 형식에 자료를 추가하는 방식이다.(마치 리스트에 append로 추가가 가능한 것 처럼))
- 예제
- 가변 파라미터(*변수명)을 이용해서 학생들의 점수를 입력받는대로 다 저장하고
- 총점을 얻어서 평균값을 구해 리턴하라
1. 키워드 파라미터 kwargs (keyword arguments)
- 딕셔너리 형태로 저장되는 매개변수로 정의
- ** 두개가 붙으면 딕셔너리 형태로 가변인자를 받습니다.
- 이 경우, 변수명 = 값 형식으로 호출해야 전달됩니다.
2. 함수의 결과 값
▶ 기본 문법
-
return 키워드는 전달받은 결과들을 하나의 '튜플'로 묶어서 반환
-
최종적으로 '하나의 변수'에 담을 수 있는 '하나의 값으로 처리된다.'
-
결과를 개별 변수에 쪼개서 가져오기
-
튜플 리턴 시 좌변에 튜플 내부요소 개수만큼 변수를 선언하면 따로따로 저장을 받는다.
-
리스트 예제
- 리스트로 입력받은 수들에 대해 양수만 필터링하여 반환해주는 함수를 작성해보세요.
- 조건 1 : 입력값은 인자값으로 가변인자 리스트(*을 붙이는 문법의 명칭을 가변인자 리스트라고 한다.)를 전달
- 조건 2 : 결과값은 양수로만 구성된 새로운 리스트
- 내 답 :
- 해답 :