안녕하세요 코딩 블로거 poinguinie 입니다.
이번에는 코딩의 꽃! 중에 하나인 함수에 관해 알려드릴 차례입니다.
1. 함수
함수란? 영어로 function, 수학시간에 한번쯤은 들어보셨을 것 입니다.
f(x) = x 와 같은 식을 함수라고 배웠을 것입니다.
코딩서의 함수도 비슷한 개념을 갖습니다.
x에 값을 어떤 것을 넣느냐에 따라 y의 값이 바뀌는 것
이것을 함수라고 합니다.
코딩상에서 함수의 의미, 사용하는 이유 중 제일 큰 이유는 바로 코드 재사용 입니다.
왜 함수를 사용할 때 코드 재사용이 강조되는가, 그것을 코드로 보여드리겠습니다.
a = input("숫자를 입력하세요 : ")
print(a + "를 입력하셨습니다.")
b = input("숫자를 입력하세요 : ")
print(b + "를 입력하셨습니다.")
이런 코드가 있습니다.
이 코드에서 print()메서드는 총 2번 실행되었습니다.
그리고 실행되기 위해서 한번씩 적어주는 식으로 진행되었습니다.
출력하는 코드를 함수로 구현하면 어떨까요?
def printNum(num):
print(num + "를 입력하셨습니다.")
a = input("입력하세요 : ")
printNum(a)
b = input("입력하세요 : ")
printNum(b)
이렇게 구현할 수 있습니다.
"아니, 코드가 더 길어진 거 아닌가요?!"
물론 이 코드에서는 코드가 더 길어졌습니다.
하지만 긴 코드들을 작성할 때 반복되는 코드들이 분명히 존재합니다.
그럴 때 간축화가 가능해집니다.
또한 기능에 따라 코드들을 분류도 가능해집니다.
또 이러한 함수들을 완전 기능별로 파일로 분류하는 것! 그것을 모듈화라고 합니다.
일단 함수에 대해 익히고 모듈화에 대해 이야기하겠습니다.
위에서 볼 수 있듯이 함수의 문법은 다음과 같습니다.
def functionName(instance):
#code
#code
#code
return 0
def 함수이름(매개변수):
코드
코드
코드
return 반환값
이런 식으로 진행됩니다.
매개변수란? 함수 밖에서 함수 안으로 넣는 변수를 매개변수(인스턴스 변수)라고 합니다.
이번에 한번 예제로 직접 보도록 하겠습니다.
예제의 목적은 사용자로부터 숫자를 입력받아 그 숫자의 팩토리얼값을 만드는 함수를 만들고 출력하는 프로그램입니다
def factorial(num):
result = 1
for i in range(1,num+1):
result = result * i
return result
a = int(input("숫자를 입력하세요"))
result = factorial(a)
print(a,"! = " , result)
위와 같이 코드가 만들어집니다.
코드에 대한 해석은 이제 여러분들도 가능할 거라 믿습니다.
코드를 실행하면 다음과 같이 출력됨을 알 수 있습니다.
그러면 이 팩토리얼 함수를 모듈화하면 어떻게 될까요?
2. 모듈화
모듈화의 최대 목적은 유지보수입니다.
기능별로 코드들을 파일화하여 코드들을 구분하고 이 코드들을 수정할 때 편리함을 위해 모듈화를 하게됩니다.
모듈화는 몹시 간단합니다.
일단 하나 파일을 따로 만듭니다.
그리고 그 안에 실행하고자 하는 코드를 함수화하여 작성합니다.
물론 두 파일은 같은 디렉토리에 있어야 합니다.
이렇게 코드를 분리하여 사용이 가능합니다.
파일을 불러오는 방법은 import 파일명 입니다.
from 파일명 import 함수명
이렇게도 사용이 가능하므로 상황에 맞게 사용하시면 되겠습니다.
import 파일명 으로 사용 시
함수를 사용하기 위해선 파일명.함수명()으로 써야합니다.
이렇게 오늘은 함수와 모듈화에 대해 공부해보았습니다.
함수에 대해서 간단하게 배웠지만 그 이유는 다음 클래스 수업에서 집중, 심화로 배울 것이기 때문입니다.
파이썬은 일단은 객체 지향 언어이기에 함수만 사용하는 일은 그닥 없습니다.
클래스 안에서 메서드로 사용되기에 그때 더 사용법과 어떤 상황에 사용되는 지 보도록 하겠습니다.
그럼 모두 좋은 코더가 되기를 바랍니다.
감사합니다.
'프로그래밍 > Python' 카테고리의 다른 글
[파이썬 코딩 강의] 객체 지향 언어 (1) | 2024.09.26 |
---|---|
[파이썬 코딩 강의] 클래스와 메서드 (0) | 2024.09.21 |
[파이썬 프로그램] 프로그램 다운로드 (0) | 2021.03.01 |
[파이썬 코딩 강의] 파일 읽고 쓰기 (3) | 2021.02.28 |
[파이썬 코딩 강의] 배열과 해시 (자료형 심화) (0) | 2020.11.11 |