KAIST 김문주 교수 http://www.boostcourse.org/cs114/lecture/256765 하위 메뉴
6.4 반환값이 있는 함수 혹은 반환값이 없는 함수(Functions with/without Return Values) - 함수가 반드시 반환 값을 가지고 있어야 하는 것은 아니다. - 값을 반환하지 않는 함수를 void 함수(void function)이라고 부른다. *반환 값이 없는 함수 예제 - 성적 출력 프로그램
- 위 예제의 printGrade() 함수는 어떤 값도 반환 하지 않는다. - 어떤 값도 반환하지 않는 함수는 line 17번의 메인함수에 명령어(statements) 형태로 호출하여 사용한다. *반환 값을 가지는 함수 예제 - 성적 출력 프로그램
- 위의 코드는 반환 값을 가지는 getGrade 함수를 정의한 코드이다. - getGrade 함수는 문자를 반환하는 함수이기 때문에 일반 문자(character)처럼 함수를 호출 할 수 있다. - 원래 기술적으로 파이썬 내 모든 함수들은 return 명령을 사용하던 안하던 값을 반환한다. - 만약 함수가 값을 반환하지 않는다면, 기본적으로 특별한 값(special value)인 None이 반환 된다. - 그래서 반환 값을 가지지 않는 함수를 None 함수(None function)이라고도 부른다. - None 값 역시 변수에 할당이 가능하며, 이 변수는 어떠한 객체도 가르키고 있지 않는다. *None 값 예제 def sum(num1, num2) total = num1 + num2 print(sum(1,2)) - sum 함수는 return 명령을 사용하지 않았기 때문에, 기본적으로 None 값을 반환한다. 그래서 위 코드를 실행시 None이 출력된다. 6.5 위치 인자와 키워드 인자(Positional and Keyword Arguments) - 함수의 인자(function's arguments)는 위치 인자와 키워드 인자(Positional and Keyword Arguments) 형태로 전달된다. - 함수의 강점은 매개변수를 이용해 일을 수행하는 것이다. - 함수를 호출 할 때, 우리는 인자(arguments)를 매개변수(parameters)에 전달해야한다. - 인자(arguments)에는 두 가지 종류가 있다. 하나는 위치 인자(positional arguments), 다른 하나는 키워드 인자(keyword arguments)이다. - 위치 인자(positional arguments)를 전달할 때에는 호출 할 함수 헤더에 있는 각각의 매개변수 순서와 동일하게 전달하여야 한다. * 위치 인자 예제 def nPrintln(message, n): for i in range(n): print(message) - 우리는 위의 nPrintln 함수를 이용해 nPrintln("test", 3)로 test를 화면에 3번 출력 할 수 있다. - 위 명령은 인자 test를 매개변수 message에 전달하고, 인자 3을 매개 변수 n에 전달 한다. - 하지만 만약 nPrintln(3, "test")로 인자를 전달하면 오류가 나게 된다. 이를 바로 위치 인자(positional arguments)라고 말한다. - 위치 인자는 우리가 정의한 함수 헤더 부분의 매개변수 순서, 갯수, 똑같은 타입으로 동일하게 전달하여야 한다. - 키워드 인자(keyword arguments)를 이용하여 인자를 전달 할 수도 있다. - name = velue 형식으로 인자를 전달하는데, 예를 들어 nPrintln(n = 5, message = "good") 방식으로 매개변수 n에 인자 5를 전달, 매개변수 message에 인자 "good" 을 전달한다. - 위치 인자(positional arguments)와 키워드 인자(keyword arguments) 동시에 이용도 가능하다. - 하지만 위치 인자는 키워드 인자 뒤로는 올 수 없다. * 위치 인자(positional arguments)와 키워드 인자(keyword arguments) 동시 사용 예제 def f(p1, p2, p3) f(30, p2 = 4, p3 = 10) → O f(30, p2 =4, 10) → X 참고 문헌 : Introduction to Programming Using Python / Y.DANIEL LIANG ※
※ |