본문 바로가기
  • 10.0
파이썬

[파이썬 기초] 함수(function) / 함수 만들기(함수 정의)

by 10.0 2024. 2. 21.
반응형

 이전 [파이썬 기초] 상식▼

더보기
목차

[파이썬 기초]
1.  파이썬 함수(function) / 함수 만들기(함수 정의)
2.  함수 호출과정의 이해

 

[파이썬 기초] 함수(function) / 함수 만들기(함수 정의)

함수(function)

함수란 어떤 입력 값을 받아서 결과를 만들어주는 것을 말한다.

엑셀에 있는 함수를 생각하면 쉽다.

엑셀 함수들

엑셀에서는 만들어진 함수를 주로 호출하는데 

파이썬(프로그래밍)에서는 필요한 함수를 프로그래머가 직접 개발할 수 있다.

함수 프로그래밍

 

왜 함수를 사용하나요?

  • 함수를 통해 코드의 재사용성을 높이고 중복성을 최소화 할수 있다.
  • 여러 곳에서 사용되어야 하는 로직을 패키징함으로써  “복사해서 붙여넣기” 방식의 대안으로 유지보수에 드는 수고를 줄여준다.
  • 함수는 역할 단위로 나누는 도구로 절차적 분해를 위해 사용한다.

 

함수의 장점

  • 재사용이 가능하다.
  • 유지보수가 쉽다.

파이썬 내장 함수

len

컬렉션 객체의 항목 수를 리턴한다.

len("hello")

 

sum

컬렉션 객체에 대한 합을 리턴한다.

sum([1, 2, 3, 4])

 

round 

반올림 값을 리턴 한다.

round(5.5)

 

abs

절댓값을 리턴한다.

abs(-1)


반응형

파이썬 함수 정의

함수를 만드는 것을 함수를 정의한다고 표현한다.

 

파이썬 함수 정의 규칙

  1. def 키워드를 사용하여 함수를 만들 수 있다.
  2. 함수에는 이름이 필요하다.
  3. 함수의 입력이 있는 경우 입력 값들을 바인딩할 변수를 적어 준다.
  4. 들여쓰기 후 수행할 문장을 기술한다.
def 함수이름():
	코드

 

예시)

def sum(A1,A2,A3):
	값 = A1+A2+A3
    pirnt(값)

파이썬 변수와 함수

파이썬 변수는 값에 대한 이름표이다.

어떤 값이 자주 사용될 때 값에 이름표를 붙이는 개념으로 변수는 값을 바인딩한다.

 

파이썬 함수는 어떤 코드에 대한 이름표이다.

어떤 코드가 자주 사용될 때 코드에 이름표를 붙이는 개념이다. 

 

파이썬 함수 호출

  1. 파이썬 함수의 이름은 코드 객체를 바인딩한다.
  2. 함수 이름이 바인딩하고 있는 코드를 수행하는 것을 함수 호출이라고 부른다.
  3. 함수 호출 방법
    함수이름()

입력이 있는 함수

함수는 일반적으로 입력과 출력이 존재한다.

 

쉬운 예인 엑셀의 sum(합치기)함수를 예를 들어보겠다.

함수 값 설명

B1 = sum(A1:A3)

B열에 1번 셀은 A1부터 A3까지의 범위의 셀값을 합친것이다.

 

여기서 A1 ~ A3 는 셀이 함수의 입력값으로 '인자'를 말한다.

그리고 B1에 나오게되는 값은 '함수의 출력' 값이라고 한다.


 

Q.  mysum 함수 만들기

두개의 입력을 받아서 두 수의 합계를 출력하는 함수를 만들어라.

 

A.

더보기
def mysum(data1, data2):
	print(data1 + data2)

결과값을 리턴하는 함수

def 함수이름(인자):    # 함수정의
    코드구현
    return 결과
    
결과 = 함수이름( )    # 함수호출

결과값을 저장공간에 리턴해주지 않으면 그 결과값은 결국 사라지게 된다.

그러므로 항상 함수를 정의할때 리턴해주기.

※ None = 자료구조에서 아무것도 없음을 뜻함


 

Q.  mysum 함수 고치기

두개의 입력을 받아서 두 수의 합계를 출력하는 함수를 만들었다. 결과 값을 리턴하게 만들어라.

 

A.

더보기
def mysum(data1, data2):
	result = data1 +data2
	print(result)

 

Q. myaverage 함수 만들기

두개의 입력을 받아서 두 수의 평군을 리턴하는 함수를 만들어라.

 

A.

더보기
def myaverage(a, b):
	평균 = (a + b) / 2
	return 평균

결과 = myaverage(10,20)
print(결과)

=> 15.0

 

Q. mymin 함수 만들기

두개의 입력을 받아서 최소 값을 리턴하는 함수를 만들어라.

 

A.

더보기
def mymin(a, b):
	if a < b :
    	return a
    else:
    	retrun b

결과 = mymin(10,20)
print(결과)

=> 10

파이썬 기초  함수 호출 과정의 이해

함수 호출과정의 이해

1. 입력 값 바인딩

파이썬 코드는 기본적으로 위에서 아래로 순차적⬇으로 실행 됩니다.

순차적으로 실행되는 과정에서 파이썬 인터프리터가 def 키워드를 만나면

코드를 메모리에 할당하고 이를 함수 이름이 바인딩 하게 됩니다.

함수 정의부의 변수는 함수 호출부에 전달 한 값(인자)를 바인딩 합니다.

def 함수이름(변수):    # 함수정의
    코드구현
    return 결과

결과 =  함수이름(인자값)

함수가 파이썬 인터프리터를 통해 메모리에 저장되는 과정

 

 

2. 함수 실행

함수 이름에 '( )'를 붙이면 해당 함수가 호출 됩니다.

함수의 호출은 곧 함수 이름이 가리키는 코드의 실행을 말합니다.

def 함수이름(변수):    # 함수정의
    코드구현
    return 결과

결과 =  함수이름(인자값)    # 함수 실행

 

3. 결괏값 리턴

함수 내에서 사용된 변수는 소멸되고 바인딩 되지 않은 객체도 소멸됩니다.

인터프리터는 함수 호출부로 돌아 갑니다.


Q. 다음과 같은 함수를 작성해보자.

아래와 같이 과일 목록이 있을 때 이를 함수 인자로 받은 후 가게에서 판매중인 과일 목록을 파이썬 리스트로 리턴하는 함수.

과일 = ["바나나-판매중","딸기-판매중","무화과-재고없음","두리안-재고없음","키위-판매중"]

 

A.

더보기
과일 = ["바나나-판매중","딸기-판매중","무화과-재고없음","두리안-재고없음","키위-판매중"]

def 과일_분류기(과일):    # '과일' 변수는 리스트를 바인딩 함.
	과일_판매중 = [ ]
	# 반복
    for i in 과일:
    	if i.endswith("-판매중"):
        	과일_판매중.append(i)
            
    return 과일_판매중

result = 과일_분류기(과일)

print(result)

=> ["바나나-판매중","딸기-판매중","키위-판매중"]

 

반응형