프로그래밍 관련/Python
파이썬 강좌 번외편. 클로저(Closure)
파이썬 강좌 번외편. 클로저(Closure)
2019.11.21이번 강좌는 클로저(Closure)에 대해 알아보도록 하겠습니다. 클로저는 위키백과의 정의를 빌어온자면 '컴퓨터 언어에서 클로저는 일급 객체 함수의 개념을 이용하여 스코프에 묶인 변수를 바인딩 하기 위한 일종의 기술이다.'라고 합니다. 파이썬을 처음 접하시는 분이라면 이 말이 무슨 말인지 전혀 감도 오지 않을 것입니다. 먼저 우리는 일급 객체 함수가 무엇을 말하는지 알아볼 필요가 있습니다. 일급 객체(First-class function) 파이썬에서 함수는 일급 객체입니다. 이는 우리가 평소에 숫자나 문자열, 클래스를 다루는 것처럼, 함수도 다른 객체와 동일하게 취급할 수 있다는 말과 같습니다. 즉, 함수를 매개변수로 넘기거나 다른 변수에 대입할 수 있으며, 반환값으로도 사용이 가능합니다. 심지어 리스트..
파이썬 강좌 번외편. 재귀 함수
파이썬 강좌 번외편. 재귀 함수
2019.03.29우리는 함수 내에서 또 다른 함수를 호출할 수 있습니다. 그리고 물론 자기 자신을 호출할 수도 있습니다. 여기서 함수 내에서 자기 자신을 호출하는 함수를 재귀 함수라고 부릅니다. 이 재귀 함수는 팩토리얼이나 피보나치 수열을 만드는 등과 같은 다양한 수학 문제를 해결하는 데 매우 유용합니다. 예제를 보며 직접 한번 살펴보도록 하겠습니다. >>> def recursive(num): print(num) num += 1 recursive(num) # 자기 자신을 호출한다! >>> recursive(10) 10 11 12 13 … 위의 예제를 직접 실행시켜보면 함수 recursive()가 자기 자신을 호출하고, 호출된 함수가 다시 자기 자신을 호출하며 끊임없이 변수 num의 값을 출력하고 있는 것을 볼 수 있습니..
파이썬 강좌 4-7편. 집합(Set)
파이썬 강좌 4-7편. 집합(Set)
2019.03.271. 집합(Set)파이썬에서는 집합에 관한 자료형을 제공합니다.집합 객체를 만드는 방법은 중괄호로 감싸고, 각 요소들은 쉼표(,)로 구분합니다. >>> A = {1, 2, 3, 4} >>> type(A) 빈 집합을 만들때는 아래와 같이 set 함수를 통해서 만들게 됩니다. >>> empty_set = set() >>> type(empty_set) >>> empty_set set()그러나 아래와 같이 중괄호를 사용하여 빈 집합을 만들 수는 없습니다. 아래 예제와 같이 중괄호를 사용하면 파이썬은 빈 사전 객체를 만들게 됩니다. 이는 위 예제에서 empty_set을 {}로 나타내는 게 아니라 set()로 나타내는 이유와 동일합니다. >>> B = {} >>> type(B) 집합 객체에는 순서가 있을까요? 사전..
파이썬 강좌 11편. 예외 처리(Exception Handling)
파이썬 강좌 11편. 예외 처리(Exception Handling)
2013.12.291. 예외 처리(Exception Handling) 오늘은 예외 처리(Exception Handling)에 대해 알아보려고 합니다. 여기서 '예외(Exception)'란 어떤 것일까요? 우리가 프로그램을 사용하다 보면 예기치 못한 상황으로 에러가 발생하여 비정상 종료되는 경험을 해보신적이 있으신가요? 예를 들어, 프로그램 내에서 존재하지 않는 파일을 열려고 한다던가 피제수를 0으로 나누려고 하는 등 런타임 도중 발생하는 에러를 예외라고 하며, 이는 프로그램의 작업 수행을 막아버리는 존재입니다. 우선 예외가 발생하는 상황을 한번 보도록 하겠습니다. >>> 2013 * (1229/0) Traceback (most recent call last): File "", line 1, in 2013 * (1229/0..
파이썬 강좌 10-2편. 파일 입출력(File I/O)
파이썬 강좌 10-2편. 파일 입출력(File I/O)
2013.12.15파일 입출력(File Input/Output) 오늘은 파일 입출력에 대해서 알아보도록 하겠습니다. 전 강좌에서는 화면에서 출력하고 입력하는 방법을 알아봤다면, 이번에는 파일에 출력하고 입력하는 것을 알아보도록 하겠습니다. 내장 함수 살펴보기 open: 파일 열기 파일을 읽고, 쓰고, 덧붙이는 등 세밀하게 작업을 위해 파이썬에서는 open이란 함수를 지원하는데 이 함수의 기본형은 아래와 같습니다. 파일객체 = open(file, mode) 기본적으로 들어가는 두 인자 중 file이란 인자에는 파일 이름이 이곳에 들어가고, mode에는 파일을 열 때 사용하는 모드를 말합니다. 여기서 파일을 열 때 사용하는 모드란 쓰기 모드, 읽기 모드 등과 같이 파일에 무언가를 쓸때는 쓰기 모드, 무언가를 읽어들일 때는 읽..
파이썬 강좌 10-1편. 입출력(I/O)
파이썬 강좌 10-1편. 입출력(I/O)
2013.12.131. 출력(Output) 오늘은 입력과 출력에 대해서 간단히 알아보도록 하겠습니다. 먼저 출력에 대해서 알아보도록 하겠는데요, 우리는 이미 화면에 무언가를 출력할 때 사용하는 함수는 'print' 함수 라는 것을 알고 있습니다. 이전 강좌에서는 간단히 화면을 출력하는 기능을 담당하는 함수라고 알고 있었지만, 이번에는 더 자세히 파고들어 보도록 하겠습니다.>>> print(3.14) 3.14 >>> print('Hello, World!') Hello, World! >>> t = 'variable' >>> print(t) variable 위 예제 그대로 print 함수에 넘겨주는 인자를 출력하고 있음을 확인하실 수 있습니다. 우리는 문자열과 문자열을 서로 연결하고 싶을때는 공백을 사용해서 연결할 수 있었는데..
파이썬 강좌 9편. 모듈(Module)
파이썬 강좌 9편. 모듈(Module)
2013.11.101. 모듈(Module) 이번에는 모듈(Module)에 대해서 알아보도록 하겠습니다. 파이썬에서의 모듈이란 변수, 클래스, 함수 등과 같은 여러 코드를 한곳에 모아놓은 코드의 모음이라고 할 수 있습니다. 이런 모듈이라는 것을 만들어 놓으면 계속 사용할 수 있으므로 코드의 재사용성을 극대화 시킬 수 있으며, 연관성이 있는 것들을 모듈 단위로 분리하여 효율성을 높일 수 있습니다. 모듈의 장점에 대해서는 차차 알아가보도록 하고, 먼저 모듈을 불러오는 방법부터 알아보도록 하겠습니다. 이 모듈이라는 것을 가져오려면 'import'라는 키워드를 통해 모듈을 불러올 수 있습니다. 아래와 같이 말입니다.import 모듈명 우리가 직접 모듈을 만들어 보기 전에, 파이썬에 기본으로 내장된 모듈을 불러와, 그 모듈의 기능을..
파이썬 강좌 8-4편. 연산자 오버로딩(Operator Overloading)
파이썬 강좌 8-4편. 연산자 오버로딩(Operator Overloading)
2013.11.021. 연산자 오버로딩(Operator Overloading) 이번에는 연산자 오버로딩(Operator Overloading)에 대해서 알아보려고 합니다. 이 연산자 오버로딩이란, 인스턴스 객체끼리 서로 연산을 할 수 있게끔 기존에 있는 연산자의 기능을 바꾸어 중복으로 정의하는 것을 말합니다. 예를 들어보자면, 아래와 같은 경우를 생각해 볼 수 있겠죠? >>> class NumBox: def __init__(self, num): self.Num = num >>> n = NumBox(40) >>> n + 100 Traceback (most recent call last): File "", line 1, in n + 100 TypeError: unsupported operand type(s) for +: 'N..
파이썬 강좌 8-3편. 상속(Inheritance)
파이썬 강좌 8-3편. 상속(Inheritance)
2013.10.271. 상속(Inheritance) 오늘은 클래스의 상속(Inheritance)에 대해 알아보려고 합니다. 상속이란 무엇일까요? 우리가 알고 있는 상속은 사전적 정의에 따르면 "일정한 친족적 관계가 있는 사람 사이에 한 쪽이 사망하거나 법률상의 원인이 발생하였을 때 재산적 또는 친족적 권리와 의무를 계승하는 제도"와 같습니다. 그런데 이 상속이란 개념이 파이썬의 클래스에도 존재합니다. 쉽게 말해서, 부모의 유산을 자식이 물려 받듯이 부모 클래스와 자식 클래스라는 것이 존재하여 부모 클래스의 멤버를 자식 클래스가 물려받을 수 있습니다. 위 그림처럼 상속 관계에 있다고 가정해봅시다. 먼저 사람(Person) 클래스는 부모가 되는 클래스이니 부모 클래스라고 말하고, 근로자(Employee) 클래스는 자식이 되는..
파이썬 강좌 8-2편. 생성자와 소멸자(Constructor and Destructor)
파이썬 강좌 8-2편. 생성자와 소멸자(Constructor and Destructor)
2013.10.271. 생성자(Constructor) 이번에는 생성자와 소멸자에 대해서 알아보도록 하겠습니다. 우선은 생성자부터 알아보고, 그 다음 소멸자에 대해 알아보는 순서로 공부를 할 생각입니다. 클래스라는 개념을 처음 접해보신 분들은 생성자라는 이름이 생소하시겠지만, 이름과 연관지어 생각을 해봅시다. 생성자라고 하면 '무언가 생성할 때 호출되는 녀석', '무언가 생성하기 위해 호출되는 녀석' 등 여러가지 추측을 해볼 수 있습니다. 파이썬의 생성자는 객체를 생성할 때 호출되는 함수로써, 객체 생성 시 초기화 작업을 위해 존재하는 녀석입니다. 생성자라는 녀석이 파이썬에서는 어떻게 표현이 되는지 확인해보도록 합시다.class 클래스명: ... def __init__(self): 문장 ... 위를 보시면 파이썬에는 생성자..
파이썬 강좌 8-1편. 클래스(Class)
파이썬 강좌 8-1편. 클래스(Class)
2013.10.20인스턴스(Instance) 이번에는 객체지향 프로그래밍에서 핵심이 되는 요소 중 하나인 클래스(Class)에 대해서 알아보도록 하겠는데, 그 전에 인스턴스란 개념에 대해 먼저 알아보도록 하겠습니다. 여기서 인스턴스와 객체(Object)는 같은 의미인데, 인스턴스는 클래스에 의해 만들어진 객체를 인스턴스라고 합니다. 이 설명에서 한가지 유추해보자면, 클래스는 인스턴스를 만드는 하나의 틀이라고 볼 수 있습니다. 우리가 앞으로 배울 클래스란 녀석을 통해서 인스턴스를 계속 만들어 낼 수 있습니다. 이제는 한번 클래스가 무엇인지 살펴보도록 합시다. 클래스(Class) 앞에서 인스턴스에 대해서 간단히 알아보았는데, 파이썬에서의 클래스를 간단하게 설명하자면 변수와 함수를 모아넣은 것이라고 할 수 있습니다. 클래스가 ..
파이썬 강좌 7편. 함수(Function)
파이썬 강좌 7편. 함수(Function)
2013.10.151. 함수(Function)오늘은 함수(Function)에 대해 알아보도록 하겠습니다. 파이썬의 함수에 대해 알아보기 전에, 이미 어디선가 함수란 말을 들은 기억이 있지 않나요? 중학교 수학시간에 나온 '함수'는, 우리가 배울 파이썬의 '함수'와 비슷합니다. x의 값을 넣으면, y의 값이 정해지듯이 파이썬의 함수 역시도 값을 함수에 집어넣으면, 함수는 결과값을 되돌려줍니다. 예를 들어서, 어느 특정한 수를 넣으면 그 수의 절댓값을 돌려주는 신비의 상자가 있다고 합시다. 우리가 만약 -2라는 값을 이 상자에 넣으면, 꺼낼때는 2가 되어 나오는 것입니다. 그리고 4라는 값은 역시, 4 그대로 꺼내집니다. 이를 그림으로 나타내보도록 하겠습니다.위의 박스는 어느 수를 넣으면 그 수의 절댓값을 돌려주는 기능을 합..