일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 기본기
- 자동화
- 구글일정
- 오늘배워오늘쓰는
- 빅데이터
- 카카오
- 구글
- 구글캘린더
- 파이썬간단한게임
- Ai
- 인공지능
- OpenAPI
- 머신러닝
- 파이썬독학
- 파이썬게임
- 파이썬
- 소스코드
- 간단한파이썬게임
- Selenium
- 음성인식
- kakao
- 크롤링
- Python
- 독학
- 딥러닝
- 파이썬게임만들기
- Quickstart
- 웹크롤링
- STT
- 업무자동화
- Today
- Total
ai-creator
[python 독학] 7. def - 함수 본문
유치한 파이썬에 오신 것을 환영합니다.
오늘은 [def - 함수] 입니다.
오늘은 아래와 같은 순서로 배워보겠습니다.
1. 들어가기
오늘은 함수를 배워보도록 하겠습니다.
'함수'는 python 기초를 배울 때 필수는 아니에요.
어느 정도 실력이 쌓인 후에 배워도 되는 문법이지만
미리 배워두면 가독성 높은 코드를 작성할 수 있고, 다른 사람이 작성한 코드를 읽을 수 있어서 꽤 유용하답니다.
아직 유용하다는 피부에 잘 와닿지 않으시죠? 괜찮아요. 일단 이런게 있다~ 생각하시거나, 나중에 봐도 되는 chapter입니다.
배우겠다 마음 먹으신 분들 모이시죠 ㅎㅎ
'함수'라는 단어를 듣자마자 여러분들의 머리속에 무엇이 그려졌나요?
함수? y = f(x) 수학 시간에 배운거 같은데? 으~~ 머리아파..
그림을 보면서 천천히 살펴보죠.
함수를 잘 표현한 그림입니다.
y=f(x) 라는 함수식이 있고, f()가 x^2이라고 했을때 x=3을 넣으면 y=9가 되지요.
x를 '입력', x^2을 '기능', y를 '출력' 이라고 말합니다.
이 함수의 기능은 무엇이라고요? 입력값을 제곱합니다.
수학이여서 머리가 아프지 일상생활의 가전 제품들을 살펴보세요. 다, 함수입니다.
첫째, 믹서기 입니다.
> 입력 : 과일
> 기능 : 과일을 분쇄하여 액체로 만든다
> 출력 : 쥬스
두번째, 식기세척기 입니다.
> 입력 : 더러운 그릇
> 기능 : 물과 세제를 사용하여 그릇을 깨끗하게 세정한다.
> 출력 : 깨끗한 그릇
가전제품 말고 일상생활에서도 찾을 수 있습니다.
여기는 돈을 주면 열심히 만든 빵으로 교환해주는 곳이죠.
> 입력 : 돈
> 기능 : 빵을 만들고 전시한다
> 출력 : 빵
세상은 함수로 이루어졌다고 해도 과언이 아니죠?
2. 함수를 배우는 이유
일상생활과 밀접하게 연결되어 있다는 점은 자주 사용한다는 의미이고, 그래서 중요하다는 의미라는 건 눈치채셨죠?함수의 필요성을 좀 더 멋지게 표현해보면,함수는 목적별 = 기능별로 분리하여 가독성 높은 코드를 만들고 재사용성을 높이기 위함이에요.
> 믹서기를 보면, 누구든 저것은 믹서기야! 라고 하고,
> 파리바게트를 보면, 누구든 파리바게트구나 라고 말합니다.
굳이 돌려보지 않아도 들어가서 확인해보지 않아도 되는거죠.이렇듯 명확하게 만들어진 함수는 굳이 실행해 보지 않아도 '아~ 이런 기능을 하는거구나~' 라고 짐작할 수 있고 (=가독성이 높다),'엇! 이 기능은 나도 필요한 기능인데, 그냥 가져와 써야겠다~' 할 수 있습니다 (재사용성이 높다)
그리고, 기능별로 분리해 두었으므로 유지보수가 편하답니다. 믹서기가 고장이 나면, 믹서기만 고치러 가면 되지요.식기세척기가 고장이 나면, 식기세척기만 고치러 가면 됩니다. 믹서기는 고치지 않아도 되죠.즉 1개의 기계에 여러기능을 다 넣었다라고 하면? 즉 믹서기도 되고 식기 세척기도 되요. 그럼 사용은 편리하겠지만, 고장이 났을때 수리하기가 불편하겠지요. 프로그램도 마찬가지 입니다. 하나의 프로그램에 온갖 소스코드를 다 적어놓으면, 문제가 발생했을 때 찾기가 매우 힘들죠.
함수를 한마디로 표현하라고 한다면?
"기능별-정.리.정.돈"
이렇게 말하고 싶네요.
3. 함수 사용법
[함수 만들기]
함수의 구성요소는 3가지 입니다.
1) 입력
2) 기능
3) 출력
def 함수명(입력1, 입력2, ...):
return 출력1, 출력2, ...
여기서 '함수명'만 필요하고 입력/출력은 상황에 따라 없을 수도 있고 1개 이상일 수도 있습니다.
부모님을 함수로 표현한다고 하면, 받는건 없는데 사랑을 주시죠.
def parent():
return love
[함수 호출하기]
호출은 만들어둔 함수의 기능을 사용하겠다는 의미입니다.
믹서기를 만들어 놓고 사용하지 않으면 주스를 만들 수 없겠죠.
위에는 [함수 만들기] 는 믹서기를 만드는 것,
[함수 호출하기]는 믹서기를 사용하는 것 입니다.
함수를 잘 만들어야 가독성이 좋고, 재사용성이 높으며, 유지보수가 쉽게 되는데
함수를 잘 만드는 방법은 없습니다. 많이 만들어보고, 가독성/재사용성/유지보수를 생각해서 만드는 연습을 하셔야 합니다. 그리고 초보자들께서는 다른 훌륭한 분들의 코드를 보면서 어떻게 작성하면 되는지 감을 익히시면 됩니다.
4. [문제] 구구단을 함수로 만들기
4장~5장에서 다룬 구구단을 함수로 만들어 보겠습니다.
[함수 만들기]
def gugudan(dan):
for num in [1,2,3,4,5,6,7,8,9] :
print(dan, "x", num, "=", dan*num)
[함수 호출하기]
gugudan(2)
print("=========")
gugudan(3)
[소스 설명]
2단을 만들었던 코드를 그대로 가지고 와서 gugudan() 함수를 만들었습니다.
기능이 2단만 출력하는 것이 아니라, 입력받은 숫자에 대해서 구구단을 출력하는 것으로 생각해 본다면
1) 입력 - 단
2) 기능 - 해당 단을 출력
3) 출력 - 없음 (** 화면에 바로 출력이 되므로, 함수를 호출해서 받아오는건 없습니다)
[결과 확인]
5. 정리하기
오늘은 어려운 문법을 다뤄서 내용이 길어졌습니다. 이해가 잘 되셨나요?
> 함수란? 특정 기능/목적별로 분리해 놓은 것이다.
> 구성요소는? 입력 - 기능 - 출력
> 필요한 이유는? 가독성 + 재활용성 + 유지보수 를 쉽고 편하게 하기 위해서다.
> 사용법은?
def 함수명(입력1, 입력2, ...):
기능
return 출력1, 출력2, ...
6. 생각하기
과제는 2가지 입니다.
첫번째, 6장에서 다룬 성적처리를 함수로 만들어보세요.
1) 입력 : 점수
2) 기능 : 점수를 등급으로 변환한다.
3) 출력 : 등급
으로 만들 수 있겠죠?
두번째,
오늘배워 오늘쓰는 OpenAPI - 뉴스요약 프로젝트 에서
1) 사용자가 만든 함수가 무엇인지?
2) 입력 - 기능 - 출력은 무엇인지?
3) 호출은 어디서 했는지?
찾아보세요^^
모두 이해하진 못할 수도 있지만,
길게 작성된 코드임에도 부분 부분 어떤 의미인지 이해가되는 신비로운 체험을 하게 되실겁니다 ㅎㅎ
댓글 달아주시면, 피드백 드리겠습니다~^^
도움이 되셨다면, 좋아요 / 구독 버튼 눌러주세요~
저작물의 저작권은 작성자에게 있습니다.
공유는 자유롭게 하시되 댓글 남겨주세요~
상업적 용도로는 무단 사용을 금지합니다.
끝까지 읽어주셔서 감사합니다^^
'유치한 파이썬' 카테고리의 다른 글
[python 독학] 부록. 아나콘다 없이 파이썬 설치하기 (for 윈도우10) (0) | 2020.09.01 |
---|---|
[python 독학] 8. import - 수입해오자 (w/ 패키지 설치 및 사용) (2) | 2020.08.22 |
[python 독학] 6. if - 조건문 (2) | 2020.08.22 |
[python 독학] 5. while 와 break - 반복문 (0) | 2020.08.17 |
[python 독학] 4. for - 반복문 (w/ 구구단) (4) | 2020.07.26 |