나 개발자 진짜 되냐?

4일차 파이썬 프로그래밍 입력과출력_함수편1 본문

파이썬을 시작했어요!

4일차 파이썬 프로그래밍 입력과출력_함수편1

Snow Rabbit 2022. 12. 15. 17:54

 

 

눈이 와서 밖이 정말 예쁜 하루이다.

예쁘다....

덕분에 나도 오늘은 새하얀 마음으로 시작한다.

 

눈 온 듯한 하얀 페이지에 글을 적어볼까!!!

 

함수는 앞으로도 계속 활용할 것이기 때문에 정리해보았다. 

 

 

함수로 예시를 잘 둔 사진이 있어서 가져왔다. 

출처도 적어야하나..? 점프 투 파이썬이라는 책에 있었다.

 

함수를 사용하는 이유는 반복적으로 사용되는 부분을 한 곳에 모아서

"입력값을 주면 결과값을 돌려준다"라고 생각하면 좋을 것 같다. 

 

함수를 쓸때

앞에 def를 꼭 붙여준다.

함수를 쓴다고 이야기해주는 것과 같다.

 

def 함수명 (매개변수) :    < 문장 1 >    < 문장 2 >

 

여기서 매개변수

함수에 입력으로 전달되는 값을 받을 변수이다. 

 

쉬운 예시를 들어보자.

 

def add( a, b ) :

    return a + b

 

이런 식이 있다면.

함수의 이름은 add

입력으로 2개의 값을 받으며

리턴하는 출력으로 2개의 입력값을 더한 값을 보낸다.

 

이렇게 함수를 만들면 사용할 수 있다.

 

x = 2y = 8z = add( x, y )

이렇게 해주면 

print(z)      →      10가 나오게 된다.

 

함수에 적은 매개변수는 함수 안에서만 활용 가능하다.

 

인수? 매개변수?

 

위에서 나온 매개변수와 인수가 헷갈리는 경우가 많다고 해서 정리해본다

 

매개변수 : 함수에 입력으로 전달된 값을 받는 변수를 의미

                           함수에 전달된 값을 저장하는 변수

인수 : 함수를 호출할 때 전달하는 입력값

                           함수에 전달하는 값

 

그니깐 쉽게 우리가 아까 위에다가 예시 쓴 걸로 보면 

def add( a, b )       →      여기서 a, b는 매개변수!

 z = add( x, y )        →      여기서 x, y는 인수!

 

 

함수에는 꼭 해줘야 하는 두 가지가 있다.

1. 입력받기

2. 처리해주기

3. 리턴해주기

 

이 두 가지 차이에 의해 함수의 유형이 나뉜다고 한다. 함께 보자

 

I. 일반적인 함수

 

def 함수 이름(매개변수) :

    < 수행할 문장 > 

    return 리턴 값

 

예시를 하나 들어보자

 

def add ( a, b ) :

    result = a + b

    return result

 

II. 입력값이 없는 함수

 

def 함수 이름() :

    return 리턴 값

 

이렇게 입력값이 없기 때문에

매개변수도 써주지 않는다.

 

def feel ( ) :

    return 'happy'

 

이렇게 해주고

f = fell()

print(f)       →       happy

 

괄호에 아무것도 안 넣어줘야 한다.

 

 

III. 리턴 값이 없는 함수

 

def 함수 이름(매개변수) :

    < 수행할 문장 > 

 

return을 안 써줬을 땐 어떨까?!

 

def add ( a, b )

    print("% d와 %d의 합은 %d " % (a, b, a+b))

 

이렇게 쓰고

 

x = add (2,8)       →       2, 8의 합은 10

 

이건 그냥 함수가 실행되면서

print 된 것이기 때문에 리턴이 된것이 아니다.

 

그렇기 때문에 리턴 값이 없어서

print(x)       →       None 가 나오게 된다.

None는 거짓을 나타내는 자료형이다.

  즉 리턴값이 없다는 뜻이다.

 

VI. 입력값도 리턴 값도 없는 함수

 

둘 다 없는 함수도 있다.뭐.. 위에 두 개 합치면 되겠지

 

def 함수 이름() :

    < 수행할 문장 > 

 

바로 예시 보자!

 

def feel ():

    print 'happy'

 

그리고 나와서

fell ()        →       happy가 나오게 된다.

 

 

알면 좋아서 가져왔다.

def sub (a , b):

     return a - b 

 

result = sub (a =8, b =2)

이렇게 함수 안에서 매개변수에다가 값을 넣어 줄 수도 있다.

장점이라면.. 순서가 달라도 지정해주었기 때문에 괜찮다는 거?..

 

result = sub (b= 2, a = 8)           ( O )

 

입력값이 n개 일 때 (n의 개수를 알 수 없을 때)

함수에 들어올 함수의 개수를 모를 때 쓸 수 있다.

바로 매개변수 앞에 * 별을 써주는 것이다!!

 

입력받아낸 모든 숫자를 더해주는 함수를 만들어보자!

 

def add_many(*args) :

    result = 0

    for i in args :

        result = result + i

    return result 

 

함수를 정리했다면 

확인해보자!

result = add_many(1,2,3)

print(result)       →      6

 

result = add_many(1,2,3,4,5,6,7,8,9,10)

print(result)       →      55

 

업그레이드 버전을 가져왔다

읽어보자!

이렇게 매개변수를 쉼표를 통해 두 개 이상 쓸수도 있고

*과 아닌 친구를 같이 활용하는 방법도 있다.

 

그리고 마지막에 return result, 리턴 값을 꼭 적어줘야 한다!

 

함수의 기본에 대해 알아보는 시간을 가졌다.

 

..어려운데? 아직 업그레이드가 남았다는 게 날 어지럽게 하는군요

 

2편에서봐유끗!