본문 바로가기

반응형

진리는어디에

(289)
[Python] 제너레이터(generator) 이번 포스트에서는 파이썬의 제너레이터(generator)에 대해 살펴 보도록 한다. 강의 순서상으로 함수를 배운 뒤에 언급 되어야 하지만 다음에 나올 시퀀스 자료형에 대한 강의 전에 알아두는 것이 효과적일것 같아 순서를 조정 했다. 본 포스트를 이해하기 위해서는 파이썬 함수의 기본 문법과 iterator의 개념을 이해하고 있어야 한다. 강의 순서가 꼬여서 혼란할 수 있지만 앞의 개념을 모른다면 먼저 살펴 보고 오도록 하자. 직접 마주 보고 있다면 중간 중간 끼어 드는 부분들에 대해서 좀 더 효율적이고 쉽게 전달 할 수 있었을 텐데 지면을 이용하다 보니 이런 방법 밖에 없다. 미안하게 생각한다. 제너레이터(generator)란? 제너레이터(generator)를 한마디로 정의하면 "특이한 iterable 객..
[Python] iterator 와 iterable 타입 이번 포스트는 파이썬 변수의 iterator과 iterable 타입에 대해 알아 보도록 한다. iteration 관련 표준 함수 iter() : 반복자를 리턴 next() : 반복자가 가리키는 값을 반환하고, 반복자는 다음 요소로 이동 reversed() : 뒤에서 부터 앞으로 순회하는 역 반복자 리턴 iterator iterator는 우리말로 번역하면 반복자라고 하며, 객체가 가진 각 요소에 순차적으로 접근 할 수 있게 해주는 도구다. 파이썬에서는 iter() 표준 함수를 통해 얻을 수 있다. 아래 예제는 문자열 객체의 각 문자에 iterator를 이용하여 순차적으로 접근하는 것을 보여주고 있다. s = 'ABCD' itr = iter(s) print(next(itr)) # A print(next(it..
[Python] 문자열 이번 포스트에서는 파이썬의 문자열에 대해 알아 보도록 하겠다. 강력한 문자열 관련 기능들은 파이썬이 많은 사람들에게 사랑 받는 이유 중의 하나다. 집중해서 살펴 보자. 문자열 리터럴 표기법 # 문자열 리터럴 표기법 s1 = 'hello' # 싱글 따옴표로 감싸면 문자열을 나타낸다 s2 = "hello" # 쌍따옴표 역시 동일한 의미를 가진다 # 문자열안에 "를 사용 s3 = "To be or \"not\" to be" s4 = 'To be or "not" to be' # 여러줄 문자열 리터럴 s5 = "AAA\nBBB\nCCC" # 개행 문자 사용 # 싱글 따옴표나 쌍따옴표 세개로 감싸고 직접 개행을 한다 s6 = """AAA BBB CCC""" Tip. 파이썬 멀티 라인 주석 공식적으로 파이썬에는 #외..
[Python] 변수 #2 변수의 타입 이번 포스트에는 파이썬의 타입들에 대해 살펴 보도록 한다. 간단한 내용들이므로 가볍게 읽고 다음으로 넘어가도록 하자. 파이썬 변수의 소개 >> 변수의 타입 변수의 다양한 정보 확인 ctype 모듈을 활용한 변수의 정보 확인 == 와 is 연산자 mutable 변수와 immutable 변수 변수의 삭제 파이썬 정수는 Overflow가 없다? 파이썬 표준 타입 종류 아래는 파이썬에서 제공하고 있는 표준 타입들을 나열했다. 정수형 : int 실수형 : float 문자열 : str 시퀀스(Sequence) : list, tuple, set, dictionary, ... 기타 : bool, NoneType, range, slice, ... 정수형 데이터를 저장하기 위해 int, 실수형 데이터를 위한 float, ..
[Python] 변수 #4 ctypes 모듈 활용 이번 포스트는 ctype 모듈을 활용하는 방법에 대해 살펴 본다. C에 대한 기본 지식이 있어야 이해가 가능하므로 C 프로그래밍 언어에 대한 사전 지식이 없다면 건너 뛰어도 된다. 목차 파이썬 변수의 소개 변수의 타입 변수의 다양한 정보 확인 >> ctype 모듈을 활용한 변수의 정보 확인 == 와 is 연산자 mutable 변수와 immutable 변수 변수의 삭제 파이썬 정수는 Overflow가 없다? ctypes.Structure ctypes는 파이썬용 외부함수(foregin function) 라이브러리다. C 호환 데이터형을 제공하며 DLL 또는 공유라이브러리에 있는 함수를 호출 할 수 있다. 그중 ctypes.Structure 모듈은 파이썬에서 C에 정의된 구조체를 파이썬 코드로 접근하기 위해 ..
[Python] 변수 #8 파이썬 정수는 Overflow가 없다? 이번 포스트는 파이썬 변수 시리즈의 마지막 강의로 시스템을 꽤 깊이 있게 들여다볼 예정이다. 굳이 시스템에 대해 깊이 있는 이해가 필요 없거나 궁금하지 않은 분은 파이썬의 정수는 Overflow가 없다는 것만 기억하고 이번 포스트를 건너뛰어도 파이썬 프로그램밍을 하는 대부분의 경우 무리가 없다. 하지만 파이썬에 대해 보다 깊은 이해를 하고 싶은 분이라면 이번 포스트르 꼭 보도록 하자. 목차 파이썬 변수의 소개 변수의 타입 변수의 다양한 정보 확인 ctype 모듈을 활용한 변수의 정보 확인 == 와 is 연산자 mutable 변수와 immutable 변수 변수의 삭제 >> 파이썬 정수는 Overflow가 없다? Overflow란? 프로그래밍에서 Overflow란 특정 값이 너무 커서 메모리에 담지 못하는 ..
[Python] 변수 #7 변수 삭제 del 이번 포스트는 변수의 이름을 삭제하는 del 키워드에 대해 살펴본다. 이 포스트의 내용을 이해하기 위해서는 파이썬 변수가 참조자의 역할을 하고 있다는 것을 알고 있어야 한다. 해당 내용은 [Python] 파이썬 기초부터 시작하기 - 변수를 참고하도록 하자. 목차 파이썬 변수의 소개 변수의 타입 변수의 다양한 정보 확인 ctype 모듈을 활용한 변수의 정보 확인 == 와 is 연산자 mutable 변수와 immutable 변수 >> 변수의 삭제 파이썬 정수는 Overflow가 없다? del 키워드 변수의 이름을 삭제 할 때 사용하는 키워드다. 단, 객체 자체를 삭제하는 것이 아니라 "변수의 이름만 제거"하고 "객체의 참조 계수를 감소" 시킨다. import sys n1 = 100 n2 = n1 print(..
[Python] 변수 #6 mutable vs immutable 변수 이번 포스트에서는 파이썬의 mutable변수와 immutable변수에 대해 알아 보도록 하겠다. 어렵지 않은 내용이지만 제대로 이해하지 못하면 버그를 양산 할 수 있으므로 꼭 이해하고 넘어가도록 하자(관련 버그에 대한 내용은 [여기]에서 자세하게 다루고 있다). 최소한 mutable은 "변경이 가능한 것", immutable은 "변경이 불가능한 것" 만큼이라도 알고 다음으로 넘어 가도록 하자. 이번 포스트를 이해하기 위해서는 파이썬의 변수란 '메모리 어딘가에 값을 가지고 있는 값 객체'를 가리키고 있는 참조자라는 것을 먼저 이해하고 있어야 한다. 모른다면 먼저 [여기]를 살펴 보고 오도록 하자. 목차 파이썬 변수의 소개 변수의 타입 변수의 다양한 정보 확인 ctype 모듈을 활용한 변수의 정보 확인 ==..
[Python] 변수 #5 == 와 is 연산자 필자가 처음 파이썬을 시작 할 때 == 와 is 연산자의 차이를 알지 못하고 그냥 같은 역할을 하는 연산자인데 코드 가독성을 위해 is라는 것을 추가했나 보다라고 짐작하고 개발을하다 버그를 만들어 한참을 고생한 적이 있다. 이번 포스트는 이 두 연산자의 차이에 대해 알아 보도록하겠다. 이번 포스트를 이해하기 위해서는 파이썬의 변수란 '메모리 어딘가에 값을 가지고 있는 값 객체'를 가리키고 있는 참조자라는 것을 먼저 이해하고 있어야 한다. 모른다면 먼저 [여기]를 통해 살펴 보고 오도록 하자. 목차 파이썬 변수의 소개 변수의 타입 변수의 다양한 정보 확인 ctype 모듈을 활용한 변수의 정보 확인 >> == 와 is 연산자 mutable 변수와 immutable 변수 변수의 삭제 파이썬 정수는 Overfl..
[Python] 파이썬 기초부터 시작하기 - Coding Style 이번 포스트에서는 다른 프로그래밍 언어와는 사뭇 다른 파이썬만의 코딩 스타일에 대해 살펴 보겠다. 가벼운 마음으로 머리 식힐겸 한번 읽어 보면 되는 내용이다. 파이썬에는 ++연산자가 없다 n = 10 n = n + 1 n += 1 ++n # 버그. 파이썬은 ++연산자가 없다 정수를 1씩 증가 할 때, C/C++, C#, Java에서는 ++ 연산자를 이용해 간단하게 증가 시킬 수 있지만 파이썬에는 ++연산자가 없기 때문에, 1씩 증가하는 코드를 작성하려면 위 예제의 2 또는 3라인 처럼 작성해야 한다. ++ 로 작성된 코드는 단순히 +연산자를 두번쓴것으로 인식하고 아무것도 하지 않는다. 에러도 발생 시키지 않는 무의미한 코드이므로 버그를 유발 할 수 있으니 파이썬에서는 ++연산자는 사용하지 말도록 한다. ..

반응형