티스토리 뷰
6.4 반환값이 있는 함수 혹은 반환값이 없는 함수(Functions with/without Return Values)
- 함수가 반드시 반환 값을 가지고 있어야 하는 것은 아니다.
- 값을 반환하지 않는 함수를 void 함수(void function)이라고 부른다.
*반환 값이 없는 함수 예제 - 성적 출력 프로그램
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 |
def printGrade(score):
if score >= 90.0:
print('A')
elif score >= 80.0:
print('B')
elif score >= 70.0:
print('C')
elif score >= 60.0:
print('D')
else :
print('F')
def main():
score = eval(input("Enter the score: "))
print("The grade is ",end = "")
printGrade(score)
main() |
cs |
- 위 예제의 printGrade() 함수는 어떤 값도 반환 하지 않는다.
- 어떤 값도 반환하지 않는 함수는 line 17번의 메인함수에 명령어(statements) 형태로 호출하여 사용한다.
*반환 값을 가지는 함수 예제 - 성적 출력 프로그램
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 |
def getGrade(score):
if score >= 90.0:
return 'A'
elif score >= 80.0:
return 'B'
elif score >= 70.0:
return 'C'
elif score >= 60.0:
return 'D'
else :
return 'F'
def main():
score = eval(input("Enter the score: "))
print("The grade is ",getGrade(score))
main()
|
cs |
- 위의 코드는 반환 값을 가지는 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
※
본 게시물은 개인적인 용도로 작성된 게시물입니다. 이후 포트폴리오로 사용될 정리 자료이니 불펌과 무단도용은 하지 말아주시고 개인 공부 목적으로만 이용해주시기 바랍니다.
교재 영어 원서를 직접 번역하여 정리한 게시물이므로 일부 오타, 의역이 존재할 수 있습니다. 틀린 부분이 있다면 댓글로 알려주시면 감사하겠습니다.
※
'파이썬 > 이론' 카테고리의 다른 글
[파이썬]변수의 범위, 기본 인자, 다중값 반환, 10진수를 16진수로 변환 (0) | 2017.07.27 |
---|---|
[파이썬]레퍼런스값에 의한 인자 전달, 모듈화 (0) | 2017.07.26 |
[파이썬]함수, 함수 정의, 함수 호출 (1) | 2017.07.23 |
[파이썬]break, continue, 소수 출력(Prime Number), 랜덤워크(Random Walk) (0) | 2017.07.21 |
[파이썬]중첩 루프, 최대공약수, 몬테카를로 시뮬레이션 (0) | 2017.07.21 |
- Total
- Today
- Yesterday
- css 박스
- 파이썬 단계적 개선
- 파이썬 if문
- 파이썬 연산자
- 파이썬 함수
- 자바
- 파이썬 선택문
- 백준 11501
- css 그리드
- 자바스크립트 그래프
- 자료구조
- 자바스크립트 자료구조
- 파이썬 터틀
- 파이썬 for
- 백준 1874
- css
- 파이썬
- 백준 10451
- 버츄어박스
- 파이썬 문자열
- 백준
- 명품 c++ 실습
- 파이썬 클래스
- 웹
- 자바 에센셜 실습문제
- 파이썬 while
- 파이썬 객체
- 파이썬 진수 변환
- 파이썬 리스트
- 파이썬 예제
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |