Python

파이썬을 배워보자!{함수(1)}

25G 2021. 4. 10. 18:07

안녕하세요 여러분!! 

이제부터 좀 더 심화과정을 들어가게 됐는데요 이제 것 배웠던 문법을 은 정말 기본적이고 꼭 필요한 재료 같은 것들입니다. 마치 그것들이 없으면 아무것도 할 수 없게 된달까요? 가장 기초적인 것이고 또 그렇기 때문에 깊게 공부를 해야 하는 부분입니다! 저는 아직 코린이라 아주 기본적이고 표면적이고 기초적인 소스 코들과 설명밖에 없지만 저는 개인적으로 이전에 설명 들었던 연산자, 시퀀스 객체, 조건문, 반복문에 대한 다양한 예제와 이해를 하는 연습을 하고 있답니다!

 

오늘 말씀드릴 함수는 조금더 이해하기 힘드실 수도 있지만 이 전에 말씀드린 그런 기초적인 문법들을 잘 익히신 분이라면 어려울 게 없으실 거라 생각합니다.

오늘 말씀드릴것은 

사용자 함수

라는것인데요

잠깐 중학생 때로 기억 추적을 해보면 중학생 때에 함수는 정해진 동작만 했었습니다. 그런 것처럼 프로그래밍에서의 함수도 어떠한 기능을 수행하는 것이라고 보면 되실 겁니다

쉽게 말씀드리자면 컴퓨터가 있다고 상상해 보세요! 모니터는 화면을 보여주고 스피커는 소리를 출력해주고 키보드는 입력을 돕고 마우스도 입력을 편리하게 해주는 그런 하나의 '기능'을 가진 객체들입니다

이처럼 함수는 기능을 가지고 있는 우리에게 편리함을 제공하는 문법이라 생각하시면 좋을 것 같아요

 

사실 우리는 여태껏 함수를 사용해 왔습니다! 무슨 소리냐고요?

어쩌면 가장 처음 배우는 print라는 문법도 하나의 함수입니다 print라고 간단하게 입력을 했지만 파이썬에선 이 기능을 만들기 위해서 많은 기능들을 이 print라는 함수 안에 넣어놓은 것이지요 우리 눈에 보이지는 않지만요!!

위 사진에 있는 print의 기능을 사용하기 위해서 print라는 기능이 없었다면 무언가를 출력하려면 엄청나게 많은 소스코드가 쓰이게 되겠죠? 

그럼 소스코드의 가독성도 떨어지고 무엇보다 엄청 번거로와지며 컴퓨터 또한 소스코드가 많아져 연산하는데 많은 시간이 걸릴 것입니다!

이런 많은 문제들을 해결해 주는 것 중 하나가 함수라는 녀석이고요

 

그럼 함수라는 녀석의 문법에 대해서 먼저 말씀해 드리겠습니다.

 

함수

def 함수 이름():

      코드 1

       코드 2

이런 식입니다 이해를 돕기 위해 간단한 소스코드를 들고 왔습니다

 

위 소스코드는 함수를 사용해서 "안녕하세요"를 출력하는 프로그램입니다!! 여기서 함수를 사용하는 이유를 더 적나라하게 말씀드릴 수 있겠군요!

 

마지막 줄에 sayHello()라는 문구가 있죠? 이 문구가 위에 def sayHello():라는 함수를 '호출'하는 문구입니다! 무언가를 소환? 불러낼 때 프로그래밍에선 '호출'이라 말합니다 각설하고 위의 소스코드는 너무나 간단한 소스코드죠? 

처음 보셨을 땐 왜 굳이 이렇게 복잡하게 출력을 하냐고 생각하신 분들도 계실 겁니다

 

하지만!! 만약에 sayHello라는 함수가 100줄짜리 소스코드였다면?!!!!!!!!!!

그리고 그 100줄짜리 코드를 필요할 때마다 추가해야 한다면?! 소스코드가 1000줄이 되는 건 식은 죽 먹기겠죠?

엄청 가독성도 떨어지고 수정하기도 힘들고 실수도 잦아질 것입니다.

하지만 어떠한 공통된 기능을 가진 소스코드들! 을 하나의 함수의 저장해서 필요할 때마다 위에 마지막 줄처럼 

함수 이름() 과같이 간단한 방법으로 복잡한 기능의 소스코드들 코드 뭉치를 불러올 수 있다면 이 얼마나 효율적인 프로그래밍이 될 수 있겠습니까!!!! 그렇게 된다면 그 함수의 기능을 수정을 한다고 할 때도 만약에 함수가 없었다면 1000줄짜리 소스코드를 헤매며 하나하나~ 소스코드를 수정해야 하는데 함수가 있고 그 함수를 이해만 하고 있으면 그 함수를 수정하면 그 함수를 사용하고 있는 모든 소스 코들이 수정이 되겠죠?! 정말 효율적입니다

거진 혁명이죠 혁명!

 

오늘은 어려운 부분으로 가기 전에 여러분께 아주 중요한 부분이기 때문에 이해의 위주로 말씀을 드려보았습니다!

 

그럼 오늘은 여기까지 하고 다음에 함수를 좀 더 심화적으로 다뤄보도록 해 보겠습니다!!! 안녕~!@~!@~!@~!@