티스토리 뷰
6.1 함수(Functions)
- 함수(Functions)는 코드를 재사용할 일이 있거나, 좀 더 조직적으로, 좀 더 간단하게 코드를 만들 때 사용한다.
- 예를 들어 코드 1 에서 10 까지의 덧셈, 20에서 37까지의 덧셈, 50에서 60 까지의 덧셈의 결과를 출력하는 프로그램을 작성할 경우, 덧셈을 할 값들만 다르지 다른 코드는 다 비슷하다.
- 이렇게 연산할 값만 다르고 공통된 작업을 하는 코드를 재사용한다면 더 효율적으로 코드를 작성 할 수 있다.
- 이럴 때 이용하는 기능이 바로 함수(Functions)이다.
* 함수를 사용하지 않았을 때
1
2
3
4
5
6
7
8
9
10
11
12
13
14 |
sum = 0
for i in range(1,11):
sum += i
print("Sum from 1 to 10 : ",sum)
sum = 0
for i in range(20,38):
sum += i
print("Sum from 1 to 10 : ",sum)
sum = 0
for i in range(50,61):
sum += i
print("Sum from 1 to 10 : ",sum) |
cs |
위의 코드와 아래의 코드는 같은 의미이다.
1
2
3
4
5
6
7
8
9
10
11
12
13 |
def sum(i1, i2):
result = 0
for i in range(i1,i2+1):
result += i
return result
def main():
print("Sum for 1 to 10: ",sum(1,10))
print("Sum for 20 to 37: ",sum(20,37))
print("Sum for 50 to 60: ",sum(50,60))
main() #메인 함수 호출 |
cs |
- 우리가 여태 써왔던 eval(), randint()와 같은 함수들 역시 우리가 이 함수들을 호출(call)하고 결과값을 반환(return) 받은 것이다.
6.2 함수 정의하기(Defining a Function)
- 함수 정의(A function definition)는 함수의 이름, 매개변수, 바디(body)로 구성되어진다.
* 함수 정의 형태
def functionName(list of parameters)
# Function body
- 숫자 두 개를 비교하여 더 큰 숫자를 반환하는 함수를 정의하면 아래와 같다.
def max(num1, num2):
if num1 > num2 :
result = num1
esle num1 < num2 :
result = num2
return result
- 여기서 max는 함수의 이름, num1와 num2는 매개변수, 그리고 함수에 우리가 사용할 코드를 작성하는 곳이 바디(body)이다.
- return 키워드를 이용해 결과 값을 반환한다.
- 함수는 헤더(header)와 바디(body)를 가지고 있다.
- 헤더(header)는 def 키워드로 시작하며, 뒤 따라 함수의 이름과 매개변수를 작성한다.
- 함수 헤더에 있는 변수들(num1, num2)을 공식 매개 변수(formal parameter), 간단 매개 변수(simply parameter)라고 부른다.
- 매개변수(parameter)는 플레이스홀더(placeholder)와 같다. 함수가 호출 될 때, 우리는 값을 매개변수(parameter)에 전달 한다.
* 함수 호출 형식
z = max(x, y)
- 함수를 호출할 때, 전달하는 매개변수를 우리는 실질 매개 변수(actual parameter), 독립 변수(arguments)라고 부른다.
- 예를 들어, random.random()은 매개 변수를 가지고 있지 않다.
- 함수에는 값을 반환하는 함수도 있고, 값을 반환하지 않고 연산만 하는 함수도 있다.
- 값을 반환하는 함수를 우리는 값 반환 함수(value-returning funtction)라고 부른다.
- 함수의 바디(body)는 명령어들의 모임이며, 이것이 함수가 무엇을 하는 지를 정의한다.
6.3 함수 호출하기(Calling a Function)
- 함수 호출(calling function)은 함수 안에 있는 코드들을 실행시키는 걸 의미한다.
- 우리가 함수가 무엇을 할 지 정의 하였다면, 함수를 호출하여야 이 함수를 사용 할 수 있다.
- 함수를 호출하는 프로그램을 우리는 호출자(caller)라고 부른다.
- 함수를 호출하는 방법은 값이 반환되는지에 따라 두 가지의 호출 방법이 있다.
*반환 값이 있는 함수 호출 방법
lager = max(3, 4)
print(max(3, 4))
*반환 값이 없는 함수 호출
print("Programming is fun!")
- 반환 값이 없는 함수의 호출은 반드시 명령어(statement)로서 호출된다.
* 함수 정의, 호출 예제
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 |
def max(num1,num2): #두 개의 숫자 중 큰 숫자 반환
if num1 > num2:
result = num1
else :
result = num2
return result
def main():
i = 7
j = 6
k = max(i,j) #함수 호
print("The bigger number of ",i," and ",j," is ", k)
main() |
cs |
- 관행적으로, 프로그램에서 주된 기능을 하는 함수를 메인 함수(main function)로 따로 정의하고, main()를 호출 한다.
참고 문헌 : Introduction to Programming Using Python / Y.DANIEL LIANG
※
본 게시물은 개인적인 용도로 작성된 게시물입니다. 이후 포트폴리오로 사용될 정리 자료이니 불펌과 무단도용은 하지 말아주시고 개인 공부 목적으로만 이용해주시기 바랍니다.
교재 영어 원서를 직접 번역하여 정리한 게시물이므로 일부 오타, 의역이 존재할 수 있습니다. 틀린 부분이 있다면 댓글로 알려주시면 감사하겠습니다.
※
'파이썬 > 이론' 카테고리의 다른 글
[파이썬]레퍼런스값에 의한 인자 전달, 모듈화 (0) | 2017.07.26 |
---|---|
[파이썬]반환값이 있는/없는 함수, 위치인자와 키워드 인자 (2) | 2017.07.24 |
[파이썬]break, continue, 소수 출력(Prime Number), 랜덤워크(Random Walk) (0) | 2017.07.21 |
[파이썬]중첩 루프, 최대공약수, 몬테카를로 시뮬레이션 (0) | 2017.07.21 |
[파이썬]루프(while문 for문) (0) | 2017.07.21 |
- Total
- Today
- Yesterday
- 자바스크립트 그래프
- 자바스크립트 자료구조
- 백준 11501
- 웹
- 백준
- 파이썬 예제
- 자바
- css 박스
- 파이썬 문자열
- 파이썬 선택문
- 파이썬
- 백준 10451
- 백준 1874
- 파이썬 함수
- 파이썬 단계적 개선
- 파이썬 리스트
- 버츄어박스
- 자료구조
- 파이썬 연산자
- 파이썬 터틀
- 파이썬 while
- 파이썬 for
- 명품 c++ 실습
- 자바 에센셜 실습문제
- 파이썬 클래스
- 파이썬 if문
- 파이썬 객체
- css
- 파이썬 진수 변환
- css 그리드
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |