[Python] Function Definition, Call and Arguments
·
Programming
이 문서는 function에 대한 간단한 소개를 하고 있다.일부 자세한 내용들은 관련 URL을 추가하는 형태로 확장될 수 있음.Function이란?재사용성 과 가독성 을 위해 논리적으로 코드를 나누는(or 그룹화 하는) 기본적인 도구.procedure의 추상화로서 코드의 묶음: I/O 만 파악해도 사용가능함.함수 내 변수는 local variable로, 다른 함수에 의해 영향을 받지 않음."호출 시 주어진 arguments(인자)" 를 "정의된 parameters(매개변수)에 할당"하여 입력 을 받고, return을 통해 출력 을 수행.function으로 구현하면, 이 후로 같은 처리가 필요할 때 해당 function을 호출하여 실행시키면 된다. (재사용성)예를 들어 100라인 이상의 code를 func..
[Python] Python Interactive Shell (or Python Interactive Prompt)
·
Programming
REPL or Interactive ModePython을 가장 쉽게 (또는 naive하게) 사용하는 방법은 Python Shell을 통해 사용하는 것임. 이 경우, Python Interpreter는Read: 사용자가 Python Shell의 prompt에 입력한 statements를 읽고,Evaluate: 이를 평가하여 실행을 시키고Print: 해당 결과를 즉시 사용자에게 출력하고 나서Loop: 다시 prompt를 통해 사용자의 입력을 대기함으로서 위 과정을 반복함.이같은 방식을 REPL (Read-Eval-Print Loop)이라는 약어로 부르거나 interactive mode라고 부른다.Python code를 statement 단위로 입력받아 수행해서 결과를 출력해주는 프로그램을 Python Int..
[Python] Python Script File 실행해보기
·
Programming
1. Python Script File (=main script file)의 구조다음은 일반적인 Python script file의 전형적인 구조를 간략히 나타냄. (고정된 것은 아님.)이미 구현된 기능 등을 사용하기 위해 외부 library 와 module을 import함.코드의 재사용성과 가독성 등을 위해 반복되는 code들을 function이나 class로 정의.main script (=main program)으로 동작하는 경우에 수행될 script에 해당하는 main function 작성.일반적으로 main 함수는 초기화 및 user input에 대한 처리 등으로 시작.이후 입력된 data들에 대해 processing을 수행 (2번에 정의한 function 및 class의 instance사용)처리..
[Python] Assignment와 Shallow Copy, Deep Copy
·
Programming
시작하기 전다음의 내용을 이해하고 보길 바람.https://ds31x.tistory.com/404 [Py] 객체(object)에 대한 정보 확인하기Python에서 object(객체)란?type, id, refcount, value 를 속성으로 가지고 있는 a chunk of data.https://dsaint31.tistory.com/517 [Python] Variable (and Object)Variable (and Object)1. 정의Python에서 Variable은 Memory에 할당된 Objectds31x.tistory.comhttps://ds31x.tistory.com/199 [Python] mutable and immutable: MutabilityMutabilityPython에서 Data ..
[Programming] Garbage Collection (GC)
·
Programming
Garbage Collection 이란?Garbage collection (GC)은 Programming에서 memory를 관리하는 기법 중의 하나임. Dynamical Memory Allocation에서 더 이상 사용되지 않는 object 또는 data에 할당된 memory를 자동으로 회수하는 Process를 의미한다.위의 그림은 variable 이 Python에선 객체를 가리키는 reference에 불과함을 위에서 보여줌.아래는 어느 변수도 가리키지 않는 객체는 free(메모리 해제, GC)됨을 의미.GC를 지원하지 않는 경우 GC를 지원하지않는 C, C++ 등의 프로그래밍 언어에서는일반적으로 programmer가 memory의 할당과 해제를 explicitly(명시적으로) 처리해야하며,이를 잘못 수..
[Python] recursive call : Fibonacci Sequence (and dynamic programming)
·
Programming
Recursive call의 경우, 특정 함수가 내부에서 자기자신을 다시 호출하는 것을 가르킴. 다음과 같은 재귀적인 수식을 있는 그대로 작성하게 해준다는 장점은 있지만,속도 및 메모리 사용 등의 측면에서는 그리 환영받지는 못함 (때문에 많이 사용되지 않음).$$f(t) = f(t-1) + ...$$$f(t)$를 정의하는데에 같은 함수가 사용되는 경우를 recursive call로 작성하면 매우 직관적인 구현이 가능하다.대표적인 예로 Fibonacci sequence를 들 수 있다.$$f(0) = 0, \\f(1) = 1 \\f(n) = f(n-1) + f(n-2) \text{ , where }n >1$$Python 구현 : Recursive call 이용한 경우.def fibonacci_recur(nu..