카테고리 없음

쉽게하는 Python : 함수

tamnazio 2022. 4. 19.
반응형

프로그래밍을 할 때 같은 작업을 계속해야 하거나, 작업을 쪼개어서 사용할 일 등이 생길 수 있습니다. 이러한 일들을 함수로 만들어서 사용하게 되면 프로그램도 간단해지고, 가독성이 좋아져 코드를 보는 것도 편해집니다.

 

함수 문법
def 함수명(매개변수) : 
    처리문

def 함수명(매개변수) 다음에 처리문을 작성하실 때에는 탭(Tab) 또는 스페이스 4칸으로 들여쓰기를 해야한다는 점 꼭 기억해주세요!

매개변수는 함수호출시 값을 넘겨서 처리문 안에서 처리할 수가 있는데요, 매개변수가 있는 경우와 매개변수가 없는 경우로 나누어서 한번 실행해보도록 할께요!

 

반갑습니다 문자 출력 예제

어떤 채팅방에 사람들이 입장을 할 때마다 "반갑습니다" 라는 문자를 출력한다고 가정을 해볼께요. 일반적인 파이썬 문법에서는 아래와 같이 사용할 수 있죠.

print('반갑습니다')

 

사람들이 입장할 때마다 print('반갑습니다')라는 구문을 일일이 쳐서 사용하실 건가요? 이걸 간단하게 함수로 만들어봅시다.

파이썬 인터프리터를 먼저 실행해주세요~

>>> def hi() :
...     print('반갑습니다')
...
hi()
반갑습니다

 

hi라는 함수를 만들어보았는데요, 이걸 호출하기 위해서는 함수를 선언한 후에 함수명(매개변수)를 입력해주시면 됩니다. 매개변수가 없을 경우에는 ()로 호출해주시고, 매개변수가 있을 경우에는 매개변수를 넣어서 호출해주시면 됩니다.

 

이번에는 매개변수를 넣어서 호출해보는 방법을 알아볼께요. 채팅방에 입장한 사람의 이름을 부르면서 인사를 하는 문자를 출력하는 예제를 진행해볼께요.

>>> def hi(name):
...     print(name, '님 반갑습니다')
... 
>>> hi('멋쟁이')
멋쟁이 님 반갑습니다

함수는 이러한 귀찮고 반복적인 일들을 쉽고 간단하게 해결해줍니다. 이번에는 작업을 쪼개서 함수로 실행을 하는 예제를 진행해볼께요.

 

국민체조 순서대로 실행예제

아래는 국민체조의 순서대로 함수를 실행하는 예제를 만들어 볼께요.

국민체조 순서
  1. 숨쉬기
  2. 다리운동 (무릎 굽히기)
  3. 팔운동 (팔 돌리기)
  4. 목운동 (목 돌리기)
  5. 가슴운동
  6. 옆구리운동
  7. 등배운동
  8. 몸통운동 (몸통 돌리기)

국민체조는 정해진 순서대로 운동을 하는 체조인데요, 각 부위별 운동을 함수로 만들어보고 이것을 실행해보는 예제를 작성해볼께요.

>>> def step1():
...     print('숨쉬기 운동')
...
>>> def step2():
...     print('다리운동 (무릎 굽히기)')
...
>>> def step3():
...     print('팔운동 (팔 돌리기)')
...
>>> def step4():
...     print('목운동 (목 돌리기)')
...
>>> def step5():
...     print('가슴운동')
...
>>> def step6():
...     print('옆구리운동')
...
>>> def step7():
...     print('등배운동')
...
>>> def step8():
...     print('몸통운동 (몸통 돌리기)')
...
>>> step1()
숨쉬기 운동
>>> step2()
다리운동 (무릎 굽히기)
>>> step3()
팔운동 (팔 돌리기)
>>> step4()
목운동 (목 돌리기)
>>> step5()
가슴운동
>>> step6()
옆구리운동
>>> step7()
등배운동
>>> step8()
몸통운동 (몸통 돌리기)

 

매개변수가 많을 경우

매개변수가 많이 있을 경우 매개변수에 대해 각각 다 입력을 해주어야 할까요? 만약, 매개변수로 알파벳 A~Z까지 받는 예제가 있다고 생각해보면, 26개의 매개변수가 필요할텐데 이 매개변수가 혹시 바뀌게 된다면 프로그램을 다시 다 입력을 해주어야 하죠. 매개변수가 많을 경우 매개변수가 많이 들어온다는 의미로 아래와 같이 사용이 가능합니다. 또는 매개변수가 몇개나 들어올지 모르는 경우에도 사용이 가능합니다.

 

매개변수가 많을 경우 문법
def 함수명(*매개변수명) :
    처리문

*를 이용해서 매개변수를 일일이 입력하지 않고 처리가 가능합니다.

 

매개변수의 내용을 출력해주는 함수를 만드는 예제를 진행해볼께요. 사용자는 매개변수를 몇개까지 입력할지 모르므로 for문을 통해 매개변수의 내용을 전부 출력해주도록 하는 예제입니다. 매개변수의 갯수가 정해져있지 않기 때문에 매개변수가 수십개가 나와도 처리할 수 있는 예제입니다.

>>> def print_all(*args):
...     for i in args:
...         print(i)
...
>>> print_all(0, 'ABC', '가나다', '!@#')
0
ABC
가나다
!@#

 

키워드 파라미터(kwargs)

키워드 파라미터는 매개변수명 앞에 **를 붙이게 되면 딕셔너리 형태로 데이터가 구성이 됩니다.

>>> def print_dic(**kwargs):
...     print(kwargs)
...
>>> print_dic(numbers=10)
{'numbers': 10}

 

여기까지 파이썬의 함수에 대해 알아보았습니다.

여기까지 포스팅을 읽어주셔서 감사합니다.

반응형

댓글