일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 트위터
- 오라클
- 라이브러리설치
- 자동트윗
- 주가상승
- 크롤링
- 단기투자
- 이동평균
- cloud
- 파이썬
- pandas
- 오라클클라우드
- 주가하락
- 퀀트투자
- 직장인파이썬
- 고등퀀트
- 차트분석
- python
- 개발자
- 주식투자
- 변동성
- 클라우드
- 함수
- 우분투
- 가치투자
- ubuntu
- Firewall
- 보조지표
- dataframe
- Today
- Total
주경야매 미국주식
파이썬의 함수 본문
기초 문법과 for, if 만 알면 어지간한 프로그램은 다 만들 수 있다. 그럼에도 불구하고 함수(function), 클래스(class)를 배우는 건 이들을 이용하면 복잡한 프로그램을 좀 더 수월하게 짤 수 있기 때문이다.
문법
함수는 중학교에서 배운 바로 그것, '특정한 기능을 하는 기계'다. 한 번 만들어두면 필요할 때마다 소환해 사용할 수 있다. 그래서 만드는 법과 사용법을 알아야 한다.
함수 만들기
def 함수명(입력값1, 입력값2, ...):
처리 코드
~
return 반환값
함수를 만든다는 선언은 def 로 하고, 문장 끝에 콜론(:)을 붙인다. 함수의 내용은 들여 쓰기를 한다.
입력값은 필요한 만큼 정해준다. 필요 없다면 괄호 안을 빈칸()으로 둔다.
반환값은 함수가 정해진 기능을 처리하고 돌려주는 값이다. 값을 돌려줄 필요가 없다면 return 구문 자체를 생략한다.
함수 사용하기
함수명(입력값1, 입력값2, ...)
필요한 위치에서 위와 같이 쓰면 해당 함수가 실행된다. 주의할 점은 사용하기 전에 함수를 미리 만들어놔야 한다는 것이다.
예제
미국에서는 레스토랑에서 밥을 먹으면 세금과 팁을 추가로 낸다. 뉴욕시의 부가세율은 8.88%, 평균적인 팁은 15%인데, 이걸 계산하는 코드를 만들어보자.
def cal_tax(before_tax):
after_tax = before_tax * 1.0888
return after_tax
함수명은 cal_tax 라고 지정하고, 입력값으로 세전 금액(before_tax)을 받는다.
함수 안으로 들어가면, 세전 금액에 세율인 8.88%를 추가해 세후금액(after_tax)을 계산한 후,
마지막 행에서 after_tax 값을 반환한다.
함수를 실행하려면 간단히 함수명(입력값) 을 치면 된다.
cal_tax(100)
> 108.88
이번에는 팁을 계산하는 함수
def cal_tip(before_tip):
after_tip = before_tip * 1.15
return after_tip
코드 구조는 위와 동일하다.
실행도 마찬가지.
cal_tip(100)
> 114.99999999999999
어, 이상하다. 답이 115가 아닌 115와 가까운 숫자가 나온다.
걱정하지 마시라. 코딩이 잘못된게 아니라 컴퓨터가 소수를 처리하는 과정에서 발생하는 문제로 '부동소수점' 처리를 하는 대부분의 프로그래밍 언어에서 공통적으로 발생하는 현상이다.
https://docs.python.org/ko/3/tutorial/floatingpoint.html
그럼 실제 레스토랑에서처럼 원금 + 세금 + 팁 까지 한꺼번에 계산하려면 어떻게 할까?
세금을 계산하는 함수를 먼저 실행하고, 그 결괏값을 팁 계산 함수에 넣어주면 되겠다.
a = cal_tax(100)
cal_tip(a)
이렇게 세금까지 처리한 금액을 a 에 저장한 다음, a 를 다시 팁 함수에 넣어 처리할 수도 있고
cal_tip(cal_tax(100))
이렇게 한 줄로 처리할 수도 있다.
코드를 반복해서 사용할게 아니라면, 또는 코드가 심플하다면 굳이 함수를 만드는 수고를 할 필요는 없다. 함수란,
- 똑같은 작업이 반복될 때, 노가다를 줄이기 위해
- 코드가 복잡해질 경우, 가독성 개선을 위해
사용하는 코드의 집합체다.
'파이썬' 카테고리의 다른 글
구글 뉴스 크롤링 (0) | 2022.07.04 |
---|---|
파이썬의 클래스 (0) | 2022.06.22 |
데이터프레임에서 인덱스값을 기준으로 최종 열을 뽑을때 (0) | 2022.06.16 |
시계열데이터에서 데이터 생성 빈도 알아내기 (0) | 2022.06.15 |
nginx 설치, 오라클 클라우드 (5) (0) | 2021.11.29 |