일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 리눅스#모의해킹#리눅스명령어#head 명령어
- 파이썬 음성파일 텍스트 변환
- 리눅스기초#리눅스명령어#리눅스 tail#tail#모의해킹 리눅스
- 파이썬
- 파이썬 파일 전송
- 파파고 번역
- ROS #Robotics #ROS기초
- 파파고 꿀팁
- 논문번역 꿀팁
- 파이썬 채팅
- 파이썬 #파이썬프로젝트 #파이썬 예시 #파이썬 파일경로 #파이썬 자동화
- 크롬오류#크롬검색어자동완성끄기#검색어자동완성오류#검색어자동완성 제거#검색어 노란선#검색어반복입력
- 파이썬#파이썬경로#파이썬폴더#파이썬디렉토리
- 통계 #ROC #TPR #FPR #TNR #이진분류 #Accuracy #Recall
- 파이썬 유튜브
- 파이썬#subprocess#communicate()
- QGC#QGrouncControl#GLIB오류
- pdf 번역
- 파이썬 열
- 파이썬 #
- 파이선 행
- 파이썬 음성인식
- 파이썬 프로젝트
- 스트림 암호 one-time-pad 공격#보안#암호
- 파이썬 텍스트 변환 #파이썬 공부
- 파이썬 엑셀 파일 읽고 쓰기
- ROS #spin() #spinOnce() #ROS기초
- 파이썬 예시
- 패스트 캠퍼스 #자율주행 #비전
- PDF 개행문자
개발자비행일지
파이썬 함수1 본문
함수는 실행할 명령들을 묶은 단위이다. 이러한 함수는 함수 안에서 함수로 묶을 수 있다.
프로그램을 개발하는 프로그래밍은 레고와 같다. 우리가 해결하고 싶은 문제를 순차구조, 반복구조, 조건구조들을 잘 배열해서
해결할 수 있는 알고리즘을 기획하고, 조립해서 하나의 레고 작품을 완성 시키는 것이다.
함수는 이 과정에서 레고 작품을 구성하는 한 부분이 될 수 있다. 우리는 이 함수를 활용해서 더 큰 프로그램도
유사하지만 다른 프로그램도 만들 수 있고, 언제든지 다시 실행 할 수 있다.
함수의 정의
우리가 기본적으로 배운 프로그래밍 언어로 구성된 명령문들은 기본적으로 위에서 아래로 순차적으로 실행된다. 물론 반복문은 일정 영역을 반복해서 실행하건, 또한 제어문들을 통해서 분기라는 형태로 실행 순서를 제어할 수 있지만, 프로그램 전체적인 개념에서 보면 위에서 아래쪽으로의 제어 흐름을 임의로 바꾸지는 못한다.
이에 비해 함수는 명령문들을 하나로 묶어 놓은 단위이기 때문에 언제든지 반복적으로 실행할 수 있으며, 언제든지 호출을 통해 실행 순서를 바꿔줄 수 있다.
함수는 우리가 프로그래밍을 이해하는데 언어마다 가지는 문법이나 문맥의 차이로 인해 가지는 어려움을 극복하고 프로그램을 레고와 같은 블럭처럼 이해할 수 있도록 해준다.
함수는 단순히 반복 실행의 가능성 때문에, 실행 순서의 변경의 자유로움 때문에 사용하는 것이 아니다. 본질적으로는 추상화를 위해 사용한다. 예를 들어 우리가 파일을 읽고 그 안에 있는 텍스트 내용을 한줄 씩 출력하는 함수가 있다고 할 때, 함수라는 추상화 개념은 예로 든 명령문들을 파일 객체 호출 문과 반복문 파일 읽기 명령, 출력 명령의 집합이 아닌 파일에서 내용을 출력하는 함수 라는 논리적 단위로 이해할 수 있게 도와준다.
즉, 함수를 이해하고 두려워하지 않음으로써 우리는 프로그래밍에 한 발 더 다가갈 수 있고, 다른 사람의 코드를 이해하는 것을 두려워하지 않게 된다.
파이썬 함수
함수의 정의
파이썬에서 함수는 다음과 같이 정의한다.
def 함수명(매개변수들):
수행할명령
return 값 또는 변수 또는 객체
파이썬에서 함수를 정의할 때는 키워드로 def를 사용하고, 여기에 함수 이름과 괄호 안에 인수들을 적는다. 함수 선언 부(헤더)의 마지막은 항상 콜론(:)으로 끝나야 한다. 함수의 몸체는 def문 다음에 작성하며, 이때 들여쓰기를 통해서 구분해 준다.
파이썬은 자동형 변환 기능을 제공하기 때문에 매개변수의 자료형을 따로 명시하지 않아도 된다. return 키워드는 함수를 통해 명령을 수행하고 그 이후에 함수를 호출한 곳으로 전달할 결괏값을 전달하는데 사용된다.
다음은 덧셈을 구하는 함수의 예이다.
함수의 정의를 통해서 이름과 매개변수를 설정해주며,
def add(a,b):
return 문을 통해서 어떤 값을 반환할 지 설정해준다.
return a+b
>>> add
add라는 객체 호출을 통해 함수임을 알 수 있다.
<function add at 0x02D2B978>
>>>add(1,2)
함수에 1과 2라는 매개변수를 넣어서 return 값을 얻어낸다.
3
def addabs(a,b):
c=add(a,b)
return abs(C)
>>>addabs(-5, -7)
함수는 계층 구조로도 설계가 가능하다. 이때, 입출력이나 기초적인 기능을 하는 함수들을 작성하고, 이 함수들을 호출하고 제어하는 더 고급 기능을 하는 함수를 작성함으로 써 가능하다.
예를 들어 우리가 네이버 지도라는 어플리케이션을 통해서 출발지 목적지 도보 정도의 정보를 제공하면 경로를 찾아주는 것은 그 안에서 기초적인 기능을 동작하는 함수들이 출발지, 목적지, 도보 라는 정보를 통해서 호출되고 값을 반환한 후 경로라는 결과를 생성해 주었기 때문에 동작하는 것이다.
즉 함수의 계층 구조를 사용하면 사용자의 편의를 제공할 수 있으며 또한 내부적으로 어떠한 알고리즘에 의해서 기능을 수행하는지 감춰줄 수 있다는 장점이 있다.
이는 우리가 수학 문제를 풀 때, sin() 함수를 사용하지만, 정확이 이 곡선이 왜 그런 모향을 따르는지, 왜 이런 값을 반환 하는지 알고리즘 적으로 모르고 사용하는 것과 같다.
'▶ Python' 카테고리의 다른 글
파이썬으로 10진법에서 2진법 16진법 으로 변경하기 (0) | 2020.03.22 |
---|---|
파이썬 함수2 (0) | 2018.12.24 |
파이썬으로 브루트포스 조합생성기 만들기 (0) | 2018.12.13 |
파이썬 GUI 데이터와 클래스_기본 자료형 (0) | 2018.11.26 |
파이썬 GUI 메시지 박스 (0) | 2018.11.26 |