본문 바로가기
Python

15. 파이썬 함수

by To올라운더 2023. 7. 4.
반응형

[1] 함수

함수를 배우면 파이썬 기초 과정의 9부 능선을 넘었다고 생각해도 과언이 아니다.

지금까지 예시 등에서 사용하던 함수에 대해서 알아보자.

 

1. 함수란?

함수란 단어는 수학시간에 많이 봤을텐데, 아래 그림 처럼 입력(36)이 있고,

처리과정(입력 +4)을 통해 결과(40)를 만들어 내는 것 같은 상태의 변화 등을 말한다. 

프로그래밍에서도 유사한 의미로 사용하는데 함수 호출 -> 계획된 작업 -> 결과 출력 의 과정으로 진행된다.

함수는 크게 내장함수와 외장함수가 있는데,

파이썬에서 기본적으로 지원하는 함수를 내장함수,

사용자가 필요에 의해 만들거나 다른 사용자가 만든 함수를 불러와 사용하는 경우를 외장함수라고 부른다.

변수와 달리 함수는 함수명과 괄호'( )'를 통해 호출된다.

 

 

2. 내장함수

 - python 설치 후, import 없이 사용할 수 있는 함수

 - 내장함수 중 우리가 가장 많이 보아왔던 함수는 print 이다.

 - print는 단순히 결과를 프롬프트창에 나타내주는걸로 설명을 했지만,

   함수명인 print와 괄호'( )', 문자를 나타내는 표현식(홑따옴표, 쌍따옴표) 의 형식으로 컴퓨터에게 명령하면

   해당 결과를 출력해주는 함수 였다.

  - 유사한 형태로 길이를 측정하는 len(), range(), str() 등도 특정한 기능을 가진 함수의 구조를 가지고 있다.

print('문자열을 출력하는 함수 print')
list1 = [1,2,3,4,5]
print(len(list1))
print(str(123))

 

 

3. 외장함수

  - 외장함수는 특정한 용도로 다른 사람 혹은 자신이 만들어서 사용하는 모듈, import를 통해 해당 함수를 불러와서 사용할 수 있다.

 - 시간관련 함수로 자주 사용되는 time 이나 파일과 경로 등을 관리할 수 있는 os 등 용도에 맞는 많은 외부 함수들이 있다.

 

4. 함수 만들기

 - 함수의 구조는 'def 함수명(파라미터):' 로 생성할 수 있고, 만들어진 함수를 실행하기 위해서는 '함수명(파라미터)'로 실행할 수 있다.

 - 유의할 점은 항상 함수의 선언은 함수의 사용 보다 상위에 있어야 한다.

 - 예시로 해당 리스트의 출력과, 길이를 확인 하는 함수의 묶음을 만들어보면

a = ['가','나','다','라']
b = ['A','B','C','D','E']

def call_lenth(get_list):
    print(get_list)
    print(len(get_list))

    for i in get_list:
        print(i)

    print('call_lenth 함수의 실행을 완료하였습니다.')

call_lenth(a)
call_lenth(b)

 

5. return

 - 함수의 실행 후, 상태 값을 전달받을 수 있는 기능이다.

 - 위의 함수에서 해당 함수의 사용 후 결과를 받아보면 return에 따라 함수의 결과도 달라진다.

a = ['가','나','다','라']

def call_lenth1(get_list):
    print(get_list)
    print(len(get_list))

    for i in get_list:
        print(i)

    print('call_lenth1 함수의 실행을 완료하였습니다.')

print(call_lenth1(a)) # None

def call_lenth2(get_list):
    print(get_list)
    print(len(get_list))

    for i in get_list:
        print(i)
    
    print('call_lenth2 함수의 실행을 완료하였습니다.')
    return len(a)

print(call_lenth2(a))

 

6. 외부 함수 사용하기1(import)

 - 내부함수 또는 같은 파일(.py)에 생성된 함수는 함수명만을 통해 사용할 수 있지만,

   외부 함수는 별도로 import(호출)을 진행해 주어야 사용이 가능하다.

 

 - 대부분의 외부 함수는 pip를 통해 모듈이 설치되며 아래와 같이 time 함수를 호출한 뒤 '외부모듈명.함수명()' 으로 실행할 수 있다. 

import time

now = time.ctime() # 현재 시간
print(now) # 현재 시간 출력

 

 - 내가 만든 함수를 호출할 경우에는 해당 경로에 파일을 저장하고

def call_list_lenth(a):
    print(len(a))
    print(f'{type(a)} 형식의 자료입니다.')

 - 실행 시킬 파일에서 'import 파일명' 을 입력한뒤, '파일명.함수명(파라미터)' 로 함수를 실행시킨다.

 

import def_test

a=('1','2','3','4')
b=['가','나','다']
def_test.call_list_lenth(a)
def_test.call_list_lenth(b)

 

7. 외부함수 사용하기 2(from)

 - import 의 경우 매번 해당 파일명 또는 외부모듈를 사용한뒤 함수를 사용해야 하는 번거로움이 있다.

 - 이를 간단히 사용하는 방법으로 from을 사용하게 되면 해당 파일명, 외부모듈명을 생략할 수 있다.

 - 6번 예제와 달리 'from 모듈명(파일명) import 함수명' 을 선언하면(1라인)

   5라인, 6라인에서 모듈명(파일명) 없이 해당 함수를 내장함수 처럼 바로 사용 가능하다.

from def_test import call_list_lenth

a=('1','2','3','4')
b=['가','나','다']
call_list_lenth(a)
call_list_lenth(b)

 

8. 외부 함수 이름 바꾸기 as

 -  6번 예제와 비교하면 import 모듈명 뒤에 as alias(별명) 으로 선언하면,

     5,6 라인에서 alias로 해당 모듈을 사용할 수 있다.

 - 모듈명 대신 함수명에도 alias가 사용 가능하며, 이름이 길거나 동일한 함수명이 있을 때 사용할 수 있다.

import def_test as dtt # 모듈명에 alias 사용

a=('1','2','3','4')
b=['가','나','다']
dtt.call_list_lenth(a)
dtt.call_list_lenth(b)

from def_test import call_list_lenth as cll # 함수명에 alias 사용

a=('1','2','3','4')
b=['가','나','다']
cll(a)
cll(b)

 

반응형

'Python' 카테고리의 다른 글

17. 파이썬 클래스1(class)  (1) 2023.07.10
16. 예외 처리(try, exception)  (0) 2023.07.05
14. 파이썬 반복문(while)  (0) 2023.07.03
13. 파이썬 반복문(for)  (0) 2023.07.01
12. 파이썬 조건문(if)  (0) 2023.06.30