Bunny Code

[Python] - 14) def 로 함수 선언하기 본문

Python Basic

[Python] - 14) def 로 함수 선언하기

버즈밴드 2020. 8. 14. 17:28

print(), len() 등 등 여태 기본함수들을 배웠는데

이번에는 원하는 함수를 지정할 수 있는 def 에 대해 배워볼게요!

def <함수 이름>() :

    <문장>

위의 코드 처럼 입력을 해주면 <문장>을 실행시켜주는 <함수 이름>을 가진 함수를 정해줄 수 있습니다.

예를 들어, 입력하는 것이 무엇이든 세 배를 만들어주는 함수를 만들어주고 싶은 경우 input 함수와 def 를 이용하면 됩니다.

코드 입력 화면
코드 실행 화면

이 때 주의해야할 점은 input 함수로 입력하는 것이 숫자여도 문자열로 인식하기 때문에 곱셈이 되는 것이 아니라 3번 반복해줍니다. 

곱셈을 원하면 int() 함수를 사용해 숫자의 자료형으로 만들어주면 됩니다. 

 

 

수학을 배울 때 함수 단원에서 매개변수에 대해 배운것을 기억하시나요?

마찬가지로 파이썬에서도 매개변수를 이용해 함수를 만들어 줄 수도 있습니다.

(저는 매개변수가 많이 어려웠어요ㅠㅠ, 그래서 여러번 읽어보시거나 직접 많이 해보셔서 이해하는 수 밖에 없을 것 같아요.)

아까 def 를 사용할 때는 빈 괄호 형태인 () 를 사용했는데, 이번에는 괄호 () 안에 사용할 매개변수를 넣어줍니다.

def <함수 이름>(<매개변수1>,<매개변수2>, ... ) : 

    <문장>

이렇게 코드를 입력하면 매개변수로 이루어진 함수를 만들어 줄 수 있습니다. 

'나는 A 라는 문자열을 B 번 입력하고 싶어...!' 라는 코드를 작성할 때 매개변수를 이용한 def 를 사용해주면 편합니다. 

코드 입력 화면
코드 실행 화면

 

 

이번에는 매개변수를 원하는 만큼 받을 수 있는 함수인 '가변 매개변수' 를 활용볼게요.

가변 매개변수를 표시할 때는 * 를 붙여 일반 매개변수와 구분해줍니다. 

def <함수 이름>(<매개변수1>,<매개변수2>, ... , *<가변 매개변수>) :

   <문장>

가변 매개변수는 보통 리스트 처럼 활용하는데, 일반 매개변수와 구분하기 쉽도록

하나만 사용 가능하고 일반 매개변수 앞에 사용할 수 없어요!

예를 들어, 함수(가변 매개변수, 매개변수1, 매개변수2, ... > 처럼 되버리면 가변 매개변수의 범위가 어디까지인지 알 수 없기 때문이에요.

가변 매개함수를 사용하는 예시를 보여드릴텐데 리스트 처럼 어떻게 활용하는지 보시면 이해가 편하실 것 같습니다. 

코드 입력 화면
코드 실행 화면

 

 

가변 매개변수와 일반 매개변수 말고 기본 매개변수라는 것도 있습니다. 

매개변수를 입력하지 않았을 경우 매개변수에 들어가는 기본 값을 기본 매개변수라고 하는데,

기본 매개변수 뒤에는 일반 매개변수가 올 수 없습니다. 즉, 일반 매개변수가 항상 먼저 와야됩니다.(아래의 values 처럼)

print 를 입력했을 때 자동 완성 기능으로 나오는 것들이 바로 기본 매개변수입니다! 

일반적으로 end = '\n' 으로 되어 있기 때문에

코드 입력 화면
코드 실행 화면

이렇게 기본으로 줄 바꿈이 되는 것을 확인 할 수 있습니다. 

 

 

그렇다면 end 라는 매개변수 이름을 직접적으로 다른 값으로 입력한다면 어떻게 될까요?

end = '\n' 대신 end="" 라는 빈 문자열을 대입 시키고 값을 출력 시켜보겠습니다.

코드 입력 화면
코드 실행 화면

줄 바꿈 대신 빈 문자열로 이어진 '버즈밴드야안녕' 이 출력 된 것을 확인할 수 있습니다. 

이렇게 매개변수 이름을 직접적으로 지정해서 값을 입력하는 기능을 '키워드 매개변수' 라고 합니다!

 

 

키워드 매개변수는 기본 매개변수들로 구성된 함수에서도 많이 사용되는데, 예시를 들어볼게요.

아래 예시를 통해 이해하시면 편합니다! 

함수(x=2,y=3,z=4)  이런 느낌이고 여기에 x,y,z 를 지정해주면 지정한 값으로 바뀌고 지정을 해주지 않으면 기본 2,3,4 값으로 대입됩니다!

말이 좀 어려운데 이해 안되는 부분은 댓글로 남겨주세요!! 

코드 입력 화면
코드 실행 화면

 

 

'Hello Coding 파이썬' 을 참고하여 작성하였음.

Comments