Python

함수란?

안녕하세요 정쌤입니다! 

 

저번시간에는 for문을 이용해서 1부터 100까지 더하는 코드를 작성해보았습니다 오늘은 함수에 관하여 알아보겠습니다. 학습목표 먼저 읽고시작하겠습니다.

 

<학습목표>

매개변수가 없는 함수를 만들수있다.

매개변수있는 함수를 만들수있다.

 

 

함수란 무엇일까요?

 

파이썬의 함수에 대해 알아보기 전에, 이미 어디선가 함수란 말을 들은 기억이 있지 않나요? 중학교 수학시간에 나온 '함수'는, 우리가 배울 파이썬의 '함수'와 비슷합니다. x의 값을 넣으면, y의 값이 정해지듯이 파이썬의 함수 역시도 값을 함수에 집어넣으면, 함수는 결과값을 되돌려줍니다. 예를들어 y = x+1 의함수를 x값을 3을 넣으면 y값은 4가 되고 x값을 5를 넣으면 y값은 6이됩니다. 파이썬에서는 x값을 x라고 하지않고 매개변수라고 하고 y값을 return값 또는 출력값이라고 합니다.

 

 

 

 

 

아래와같이 파이썬에서 어느 특정한 수를 넣으면 그 수의 절댓값을 돌려주는 함수가 있다고 가정해 보겠습니다. 우리가 만약 -2라는 매개변수 값을 이 함수에 넣으면, 2 라는 출력값 또는 return 값이 출력되는 겁니다.

 

 

 

 

함수의 종류

함수의 종류는 크게 2가지로 생각하시면 됩니다.

 

매개변수가 없는 함수

 

매개변수가 있는 함수

 

매개변수가 없는 함수는 쉽게 얘기해서 상수함수를 생각하시면 쉽습니다.

 

아무값도 넣지 않아도 항상 같은값을 출력하죠 매개변수가 없는 함수는 쉽게 이렇게 생각하시면 좋습니다.

 

 

매개변수가 있는 함수는 위에서 본 Y= X+1을 떠올리시면 쉽습니다.

 

 

위에서 보셨듯이 Y=X+1의 1차함수를 떠올리시면 쉽습니다. X값의 따라 Y값이 변하고있죠? 매개변수가 있는 함수는 매개변수에 따라 return값이 변하는 함수라고 생각하시면 쉽습니다.

 

 

 

매개변수가 없는 함수

# 함수 생성
def hello():
    print('Hello, World!')

 

함수를 만들때는 def 함수이름(필요한 인자): 이렇게 만들어줍니다 하나하나 살펴보겠습니다 먼저 def는 define의 약자로 내가 만드는 함수는 이렇게 정의할거야라고 생각하시면 됩니다.

 

함수 이름은 위에 보시는것처럼 hello가 됩니다. 내가만든 함수의 이름은 hello야 라고 컴퓨터에게 알려주는 겁니다. 

그리고 필요한 인자는 지금 함수는 필요한 인자가 없어서 아무것도 입력하지 않았지만 다른 함수에서는 필요한 인자가 있을수 있으므로 괄호안에 필요한 인자를 써주는겁니다. 그래서 저렇게 만든 함수는 이렇게 사용이 됩니다.

 

# 함수 생성
def hello():
    print('Hello, World!')
    
# 함수 호출
hello()

# 결과값 : Hello, World!

함수는 호출되기 전까지는 별도의 동작을 하지 않습니다. 밑으로 쭉 내려가다가 hello() 에서 함수를 호출하고나서 hello() 함수가 실행 및 동작 합니다.

또한 반드시 함수를 호출하기 전에 이미 상단에 함수가 선언되어 있는 상태여야 합니다. 만약 함수 호출을 먼저 하고 그 뒤에 함수가 선언되어 있다면 "Name Error: name 'hello' is not defined" 에러가 발생 합니다.


위에선 단순히 Hello, World! 만 출력을 했는데 아래는 간단히 제곱을 구하고 출력하는 코드 이며, 각각의 인수 2는 a로, 10은 b로 들어 갑니다.

 

매개변수가 있는 함수

def Add(a):
    return a+7

x = Add(2)
print(x)

이 코드들은 출력만을 해주게 되는데 함수 안에서 연산된 값을 밖으로 가지고 나오고 싶을 땐 return을 사용 하시면 됩니다.

 

return 값이 2개인 함수, 매개변수가 2개인함수

# 값을 2개 return하는 함수

def Add(a):
    return a+7, a*5
    
x, y = Add(2)
print(x)
print(y)


# 매개변수 2개인 함수

def Add_Multiply(a, b):
    return a + b, a*b
    
q, w = Add_Multiply(2, 5)
print(q)
print(w)

이렇게 return 으로 두개의 연산된값을 반환할수도 있습니다 또한 매개변수를 2개받는 함수를 만들수도 있습니다. return 값은 2개, 3개, 4개 등 여러개를 반환할수있습니다. 매개변수도 2개, 3개, 4개 그이상도 받을수있습니다. return 값이 꼭 1개가 아니고 매개변수도 1개만 받는것이 아니니까 이점 유의해서 인지하면 됩니다.

 

 

오늘은 함수에 관하여 크게 매개변수가 없는 함수, 매개변수가 있는 함수를  배워보았습니다. 앞에나온 예시코드들로 연습한번 해보시고 오늘도 제가 준비한 영상과 문제로 개념을 적용하여 분석해보세요! 그럼 다음에 뵙겠습니다!

 

함수 동영상

 

 

 

 

 

 

정쌤이 쏜다!

 

 

'Python' 카테고리의 다른 글

클래스란?  (0) 2020.12.19
for문 이란?  (0) 2020.10.31
if /else/elif 란?  (0) 2020.10.31
연산자란?  (0) 2020.10.21
자료형이란?  (0) 2020.10.20