IT is Smart
4.4 파이썬 재사용할 수 있는 프로그램 만들기-함수(Function) 본문
1. 파이썬 소개, Introduction to Python
2. 파이썬의 특징, Features of Python (1/2)
2. 파이썬의 특징, Features of Python (2/2)
3.1 파이썬 버전 선택하기, Select Python version
3.2 OS Bit 버전 선택하기, Select OS Bit
3.3 설치파일 형태 선택하기, Select Setup File
4.1 파이썬 Interactive Shell 사용하기 (1/3)
4.1 파이썬 Interactive Shell 사용하기 (2/3)
4.1 파이썬 Interactive Shell 사용하기 (3/3)
4.2 파이썬 File Editor 사용하기-입력값 출력하기
4.2 파이썬 File Editor 사용하기-str(), int(), float() 함수 사용하기
4.3 파이썬 프로그램 만들어보기-continue & break문
4.3 파이썬 프로그램 만들어보기-try~except/finally문
우리가 직접 만들지는 않았지만 우리는 이미 여러 번 함수를 사용해 봤습니다. print(‘Hello world!’) 같은 것들이 그것입니다. 괄호 앞에 있는 단어는 함수의 이름입니다. 괄호 안에 있는 값은 함수의 인수(argument)라고 하죠. 괄호에 어떤 정보를 넣어서 함수 이름을 사용하는 것을 함수 호출이라고 하고 이렇게 호출하면 함수가 실행됩니다.
>>> print(‘Hello world!’)
Hello world!
print함수에 ‘Hello world!’라는 문자열 값을 인수로 넣어서 호출하면 Hello world! 가 출력되는 거죠.
Python에는 프로그래밍에 필요한 많은 함수들을 이미 만들어져 있습니다. print(), input(), str(), int() 같이 Python에 이미 만들어둔 함수를 내장(Built-in) 함수라고 합니다.
우리는 내장 함수를 사용하는 것뿐만 아니라 우리가 필요한 함수를 직접 만들어서 사용할 수도 있습니다. 이런 함수를 사용자 정의(User-defined) 함수라고 합니다.
함수의 구조는 다음과 같습니다.
def {함수이름}({함수인수}):
{실행명령문}
return {결과값}
함수 만들기는 def라는 키워드로 시작합니다. 함수인수는 함수 외부에서 함수 내부로 어떤 값을 전달할 필요가 있을 때 사용합니다. 그래서 필요에 따라서 함수인수는 1개도 사용하지 않을 수도 있고 여러 개를 사용할 수도 있습니다. 여러 개를 사용할 경우는 ‘,’(콤마)로 구분하면 됩니다.
함수 내부에서 처리된 결과값을 함수 외부에 전달해야 할 때 return을 사용합니다. 전달할 값이 없다면 return 다음을 비워두거나 return을 쓰지 않아도 됩니다. 간단한 함수를 만들어 보겠습니다.
def say_hello():
print(‘Hello!’)
say_hello라는 이름을 가진 함수입니다. 인수는 없고 ‘Hello!’를 1번 출력합니다. say_hello()라고 호출하면 Hello!라고 출력되는 것을 확인할 수 있습니다.
이번에는 좀더 복잡하지만 실용적인 함수를 만들어 보겠습니다. 앞에서 따로 배우지는 않았지만 이번 프로그래밍에서는 리스트(List)와 튜플(Tuple)이라는 데이터형을 사용할 겁니다. 지금까지 봤던 정수형, 실수형, 문자형 같은 데이터는 1개의 값으로 되어 있었습니다. 하지만 리스트와 튜플은 여러 개의 값을 가질 수 있기 때문에 많은 데이터를 처리할 때 편리합니다.
리스트는 다음과 같은 구조로 되어 있습니다.
리스트이름 = [0번째 구성요소, 1번째 구성요소, 2번째 구성요소, … , N-1번째 구성요소]
리스트를 사용하는 예제 코드를 보겠습니다.
몇 번째 요소인지를 의미하는 Index값으로 사용하면 각각의 구성요소를 불러낼 수 있습니다.
append()함수를 사용하면 리스트의 끝에 구성요소를 추가할 수 있습니다.
특정 값을 삭제하고 싶다면 remove()함수를 사용하면 되고, 특정 위치의 값을 삭제하려면 del이라는 명령을 사용하면 됩니다. remove()함수를 사용할 때 해당 값이 여러 개가 있을 경우 가장 앞쪽에 있는 1개만 삭제가 되니 유의하시기 바랍니다.
insert()함수를 사용하면 특정 위치에 특정 값을 끼워 넣을 수 있습니다.
데이터 작업을 하다 보면 정렬을 해야 하는 경우가 종종 있습니다. sort()함수를 사용하면 오름차순으로 정렬하게 되고, reverse()함수를 사용하면 내림차순으로 정렬이 됩니다.
튜플은 리스트와 비슷한 모습을 하고 있는데 몇가지 다른 점이 있습니다.
첫번째로 리스트는 대괄호[ ]를 사용하지만 튜플은 소괄호( )를 사용합니다. 또 하나 다른 점은 리스트는 구성요소를 추가하거나 삭제할 수 있지만, 튜플은 처음 설정된 구성요소를 변경할 수가 없습니다.
▷ 소스파일 URL : https://github.com/wonbird/Short-Term-Python-for-Beginners/blob/master/stp4b_11_use_list_tuple.py
리스트와 튜플은 비슷한 형태이기 때문에 일반적인 경우에는 데이터 추가, 삭제가 가능한 리스트가 많이 사용됩니다. 하지만 튜플은 메모리 사용과 처리 속도에서 리스트보다 뛰어나기 때문에 성능이 중요한 프로그래밍을 할 때에는 상황에 맞게 적절히 리스트와 튜플을 구분해서 사용하는 것이 좋습니다.
다시 본론으로 돌아와서 새로운 함수를 만들고 만든 함수를 사용하는 방법을 알아보겠습니다.
이번 예제는 나라별 환율에 따라 환전 결과를 계산하는 함수를 만들어 보겠습니다.
▷ 소스파일 URL : https://github.com/wonbird/Short-Term-Python-for-Beginners/blob/master/stp4b_12_define_function_use_function.py
1라인에서 13라인까지가 exchange_money()라는 함수를 정의한 것입니다. 환전할 화폐의 종류(exchange_to)와 환전할 원화(krw)를 함수 인수로 받도록 했습니다.
환율표(rates)에 화폐 별로 환율 정보를 저장해 두었습니다. 환율표 rates는 리스트와 튜플이라는 데이터 타입을 함께 사용해서 2차원으로 데이터를 저장한 변수입니다.
for문을 실행하면서 인자로 입력 받은 화폐 종류와 같은 환율 정보를 찾아서 환전 계산(amount)을 합니다. 환율과 환전 결과를 print()하도록 했습니다.
16라인부터 19라인까지는 앞에서 만든 함수를 직접 사용하는 부분입니다. 각각 한국 돈 10만원을 미국달러, 일본엔화, 유로화, 중국위엔화로 환전했을 때 금액을 표시하도록 함수에게 요청하는 것입니다. 함수 이름과 전달할 인자의 실제 값을 넘겨주면 됩니다.
이 함수를 실행해본 결과는 아래와 같습니다.
이렇게 필요한 함수를 한번 만들어 두면 실제 문제를 해결하는 상황에서는 필요한 함수를 호출하기만 하면 되기 때문에 프로그램이 한결 깔끔해지고 이해하기 쉬워집니다.
4.4 파이썬 재사용할 수 있는 프로그램 만들기-함수(Function)
4.4 파이썬 재사용할 수 있는 프로그램 만들기-클래스(Class)
5.6 파이썬 파일럿 프로젝트 - 심플 텍스트 분석기 제작
6.3 파이썬 개발도구 PyCharm Project 만들기
'Programming > Python for Beginners' 카테고리의 다른 글
4.5 파이썬 모듈 사용하기-모듈(Modules) (0) | 2017.11.05 |
---|---|
4.4 파이썬 재사용할 수 있는 프로그램 만들기-클래스(Class) (0) | 2017.11.05 |
4.4 파이썬 재사용할 수 있는 프로그램 만들기 (0) | 2017.11.05 |
4.3 파이썬 프로그램 만들어보기-try~except/finally문 (0) | 2017.11.05 |
4.3 파이썬 프로그램 만들어보기-continue & break문 (0) | 2017.11.05 |