python

[기초 1-1] 함수(function)

jia.son 2022. 3. 6. 17:49

함수(function)

함수는 특정 작업을 수행하는 명령어들의 모음

  1. 데이터 전달(매개변수(parameter), 인자값 (argument))
  2. 결과 값 반환(반환값(return값))
 

3.8.12 Documentation

Python 3.8.12 documentation Welcome! This is the documentation for Python 3.8.12. Parts of the documentation: What's new in Python 3.8? or all "What's new" documents since 2.0 Tutorial start here Library Reference keep this under your pillow Language Refer

docs.python.org

  • 사용자 정의 함수

 

함수의 필요성

Resource : CPU, CHACH, RAM, ROM, CD, DVD, DISK, HDD, SSD

한정된 컴퓨터의 자원 → 한정된 프로그램 코드를 저장 공간

동일한 코드를 반복하여 작성하는 작업을 줄이기 위해 함수를 사용/호출(call)하여 Resource를 효율적으로 사용할 수 있다.

sum = 0
for i in range(1,5)
	sum += i

sum = 0
for i in range(1,10)
	sum += i

# 매개변수만 다른 유사한 구조를 가진 코드이다.
# 효율적인 코드/가독성을 위해서 함수(function)를 사용한다.
# (call by value)받아온 데이터 값(변수)을 인자에 복사하여 처리함

def getSum(start, end)
	sum = 0
	for i in range(start, end+1)
		sum += i
	return sum

sum = getSum(1, 5)
sum2 = getSum(1, 10)

 

# 함수는 객체지향 프로그래밍 언어에서는 메서드라 지칭한다.

 

함수의 선언 및 구현/정의

함수의 문법

def 함수명 (매개변수1, 매개변수2) :
	sentence1
	sentence2
# 타언어들과 다르게 함수명 앞에 객체 타입을 정해주지 않는다
선언부 def(함수를 정의하는 키워드) + 함수명( 매개변수 ) + 콜론(:) //콜론(:) 함수 정의가 끝나지 않음을 표시
	구현부 몸체
  1. 함수는 선언부(헤더)와 구현부(몸체)로 이루어졌다
  2. 매개변수는 외부에서 전달되는 데이터를 함수로 전달하는 변수이다.
  3. 함수의 구현부는 함수가 수행하는 작업을 위한 명령어들이 들어간다.

 

함수의 구현과 호출

  • 함수는 구현한 후에 함수를 호출해야 실행된다.
  • Call할 때 매개변수로 값을 1개를 주면 1개의 매개변수를 가진 함수가 호출됨
# [객체지향]
# 오버로딩(Overloading)

# python에서는 Overloading(하나의 함수로 여러 기능을 구현)의 개념이 없다
# 하나의 함수가 하나의 기능만을 구현해야 한다
# 같은 함수의 이름이라면 마지막에 정의되어진 함수만 인식하게 된다.
# 함수명은 함수의 내용을 알 수 있도록 하나의 이름만 갖는 함수명을 짓도록 한다.

 

 

함수의 장점

  1. 가독성 높음, 유지 보수가 쉬움
  2. 재사용이 가능함
  3. 구조화(구조적추상화)

 

함수의 호출

함수 호출(function call)이란 함수를 실행하기 위한 호출  (e.g. print()로 호출함)

함수 호출을 받은 서브루틴은 함수 계산을 실행한 후에 그 결과의 값을 호출한 루틴 또는 서브루틴에 되돌려 준다.

메인루틴함수 호출 → 서브루틴함수 계산 -> 결과값 서브루틴에 전달 -> 메인루틴으로 돌아옴

'python' 카테고리의 다른 글

[ADsP]  (0) 2022.05.01
[기초 1-3] 함수(function)  (0) 2022.03.27
[Jupyter Notebook] Pandas (1. Series/Dataframe/Index)  (0) 2022.03.20
[Jupyter Notebook] Jupyter Notebook 준비  (0) 2022.03.13
[기초 1-2] 함수(function)  (0) 2022.03.13