Tags
- 전시
- 수요미식회
- 우리에프아이에스
- 도쿄
- 대만여행
- 해리포터
- SQL
- 맛집
- ai_엔지니어링
- 우리fisa
- 시청
- 여행
- 건담
- 우리fis아카데미
- 카페
- 제주도
- 대만
- 군산
- fdr-x3000
- 650d
- 전주
- 17-55
- 축복렌즈
- k-디지털트레이닝
- CS231n
- 글로벌소프트웨어캠퍼스
- 축복이
- 오사카
- 사진
- Python
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Today
- Total
Recent Posts
300x250
브렌쏭의 Veritas_Garage
[우리FISA] 5일차 Functions continue..... 본문
Functions 이어서 하기
Docstring
- 함수의 사용법, 함수의 기능, 함수의 return 값 등을 설명하는 것
def my_function():
"""
함수의 기능을 설명하는 docstring
"""
pass
- 함수의 이름을 호출하고,
shift
+tab
키를 누르면 docstring을 볼 수 있다. - 작성할때 주의할 점
- 함수의 첫 줄에 작성
- 여러 줄로 작성할 수 있다.
- PEP 8에 따라 """ """ 사용 권장
parameter와 return 값에 대한 설명을 추가할 수 있다.
- parameter의 자료형을 지정하기 위해서는
: 자료형
을 추가한다. - return 값의 자료형을 지정하기 위해서는
-> 자료형
을 추가한다.
def my_function(a: int, b: int) -> int:
"""
함수의 기능을 설명하는 docstring
"""
pass
자료형을 지정하더라도 지정된 자료형을 강제하는 것은 아니다. 단지, 코드를 읽는 사람에게 정보를 제공할 뿐이다.
함수 호출 구조
- 함수는 호출되어야 실행된다.
- 함수를 호출하는 방법
- 함수명()
- 함수명(인자1, 인자2, ...)
- 변수 = 함수명()
- 변수 = 함수명(인자1, 인자2, ...)
실행이 된다는 것은?
- 메모리에 함수의 코드 블록이 올라가고, 실행된다.
- 메모리에 함수를 위한 공간이 생성된다.
- 이를
call stack
이라고 한다. - 함수가 실행되면
call stack
에 쌓이고, 종료되면call stack
에서 제거된다. - 함수는 함수만의 고유 공간을 가지고 있기 때문에, 함수 내에서 선언된 변수는 함수 내에서만 사용된다.
- 함수가 종료되면 함수 내에서 선언된 변수는 메모리에서 제거된다.
- 함수가 호출되면 함수의 코드 블록이 실행되고, return 값이 있으면 return 값을 반환한다.
- return 값이 없으면
None
을 반환한다. - 반환과 함께 함수는 종료된다.
- 종료될 때, 함수 내에서 선언된 변수는 메모리에서 제거된다
- return 값이 없으면
- 함수가 종료되면 함수의 코드 블록이 메모리에서 제거된다.
local variable :: 함수 내에서 선언된 변수
- 함수 내에서 선언된 변수는 함수 내에서만 사용된다.
- 함수가 종료되면 함수 내에서 선언된 변수는 메모리에서 제거된다.
- 함수 내에서 선언된 변수는 함수가 실행될 때마다 메모리에 새로 생성된다.
global variable :: 함수 밖에서 선언된 변수
- 함수 밖에서 선언된 변수는 프로그램 전체에서 사용된다.
- 함수 내에서 global variable을 사용할 수 있지만, global variable을 수정할 수는 없다.
- 함수 내에서 global variable을 수정하려면
global
키워드를 사용해야 한다.
a = 1
def my_function():
global a
a = 2
print(a)
my_function()
print(a)
- 전역변수의 경우 함수 내에서 수정이 되면 함수 밖에서도 수정된 값이 유지된다.
- 전역변수는 함수가 종료되어도 메모리에 남아있다.
scope : 변수가 사용 가능한 범위
- local scope : 함수 내에서 선언된 변수
- global scope : 함수 밖에서 선언된 변수
- built-in scope : 파이썬이 제공하는 변수
- local scope -> global scope -> built-in scope 순으로 변수를 찾는다.
- 변수명을 중복해서 사용하면 가장 먼저 찾은 변수를 사용한다.
재귀 함수
- 함수가 자기 자신을 호출하는 함수
- 재귀 함수는 반복문을 사용하지 않고 반복적인 작업을 수행할 수 있다.
- 재귀 함수는 반복문보다 코드가 간결하다.
- 재귀 함수는 종료 조건이 있어야 한다.
def factorial(n):
if n == 1:
return 1
return n * factorial(n - 1)
factorial(5)
lambda 함수
- 인스턴스를 생성하지 않고 함수를 생성할 수 있다.
- 이름이 없는 함수
- 한 줄로 함수를 표현할 수 있다.
- lambda 인자 : 표현식
lambda x, y: x + y
- lambda 함수는 변수에 할당해서 사용할 수 있다.
add = lambda x, y: x + y
add(1, 2)
- lambda 함수는 함수의 인자로 사용할 수 있다.
def my_function(func, x, y):
return func(x, y)
my_function(lambda x, y: x + y, 1, 2)
함수형 프로그래밍
- 함수를 조합해서 프로그래밍하는 것
- 함수형 프로그래밍은 순수 함수를 사용한다.
- 순수 함수 : 함수의 입력 값이 같으면 항상 같은 출력 값을 반환하는 함수
- 반복문 대신 재귀 함수를 사용한다.
- 함수를 변수에 할당하거나 함수의 인자로 사용할 수 있다.
- 함수를 return 값으로 사용할 수 있다.
- 함수형 프로그래밍은 병렬처리가 쉽다.
list comprehension
- 리스트를 생성하는 방법
- 리스트를 생성하는 방법을 간결하게 표현할 수 있다.
- list = [표현식 for 변수 in iterable]
- list = [표현식 for 변수 in iterable if 조건식]
- list = [표현식 if 조건식 else 표현식 for 변수 in iterable]
- ... 등등
list = [ i in i for range(10) ]
list = [ i * 2 for i in list for i > 5 in list ]
list = list(map(lambda x: x * 2, list))
list = list(filter(lambda x: x > 5, list))
객체지향 프로그래밍
- 객체를 생성하고 객체 간의 상호작용으로 프로그래밍하는 것
- 객체 : 속성과 메서드를 가지고 있는 것
- 클래스 : 객체를 생성하기 위한 설계도
- 객체지향 프로그래밍은 코드의 재사용성이 높다.
- 객체지향 프로그래밍은 유지보수가 쉽다.
'[Project_하다] > [Project_공부]' 카테고리의 다른 글
[우리FISA] Exception Handling (0) | 2024.07.15 |
---|---|
[우리FISA] Python Modules, Library, Package (0) | 2024.07.15 |
[BoostCouse] NumPy (1) | 2024.07.14 |
[우리FISA] 4일차 Function (0) | 2024.07.11 |
[Paper] 2003.11755, A Survey of Deep Learning for Scientific Discovery (1) (0) | 2024.07.11 |
[우리FISA] 4일차 RegExp (0) | 2024.07.11 |
[우리FISA] 3일차 Python 제어문 (0) | 2024.07.10 |
Comments