▼ 이전 [파이썬 기초] 상식▼
목차
[파이썬 기초]
1. 파이썬 함수(function) / 함수 만들기(함수 정의)
2. 함수 호출과정의 이해
함수(function)
함수란 어떤 입력 값을 받아서 결과를 만들어주는 것을 말한다.
엑셀에 있는 함수를 생각하면 쉽다.
엑셀에서는 만들어진 함수를 주로 호출하는데
파이썬(프로그래밍)에서는 필요한 함수를 프로그래머가 직접 개발할 수 있다.
왜 함수를 사용하나요?
- 함수를 통해 코드의 재사용성을 높이고 중복성을 최소화 할수 있다.
- 여러 곳에서 사용되어야 하는 로직을 패키징함으로써 “복사해서 붙여넣기” 방식의 대안으로 유지보수에 드는 수고를 줄여준다.
- 함수는 역할 단위로 나누는 도구로 절차적 분해를 위해 사용한다.
함수의 장점
- 재사용이 가능하다.
- 유지보수가 쉽다.
파이썬 내장 함수
len
컬렉션 객체의 항목 수를 리턴한다.
len("hello")
sum
컬렉션 객체에 대한 합을 리턴한다.
sum([1, 2, 3, 4])
round
반올림 값을 리턴 한다.
round(5.5)
abs
절댓값을 리턴한다.
abs(-1)
파이썬 함수 정의
함수를 만드는 것을 함수를 정의한다고 표현한다.
파이썬 함수 정의 규칙
- def 키워드를 사용하여 함수를 만들 수 있다.
- 함수에는 이름이 필요하다.
- 함수의 입력이 있는 경우 입력 값들을 바인딩할 변수를 적어 준다.
- 들여쓰기 후 수행할 문장을 기술한다.
def 함수이름():
코드
예시)
def sum(A1,A2,A3):
값 = A1+A2+A3
pirnt(값)
파이썬 변수와 함수
파이썬 변수는 값에 대한 이름표이다.
어떤 값이 자주 사용될 때 값에 이름표를 붙이는 개념으로 변수는 값을 바인딩한다.
파이썬 함수는 어떤 코드에 대한 이름표이다.
어떤 코드가 자주 사용될 때 코드에 이름표를 붙이는 개념이다.
파이썬 함수 호출
- 파이썬 함수의 이름은 코드 객체를 바인딩한다.
- 함수 이름이 바인딩하고 있는 코드를 수행하는 것을 함수 호출이라고 부른다.
- 함수 호출 방법
함수이름()
입력이 있는 함수
함수는 일반적으로 입력과 출력이 존재한다.
쉬운 예인 엑셀의 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)
=> ["바나나-판매중","딸기-판매중","키위-판매중"]
'파이썬' 카테고리의 다른 글
[파이썬 기초] LEGB 규칙, 함수 호출과정, 인수언패킹 (1) | 2024.02.26 |
---|---|
[파이썬 기초] 파이썬 반복문(for문 vs while문) (1) | 2024.02.13 |
[파이썬 기초] 파이썬 Boolean 타입 / 조건문, 논리 연산자 (0) | 2024.02.09 |
[파이썬 기초] 자료구조 : 튜플과 딕셔너리 그리고 이차원데이터 /딕셔너리 중첩 (0) | 2024.02.05 |
[파이썬 기초] 파이썬 리스트에 대한 기초 공부 (0) | 2024.01.31 |