본문 바로가기

프로그래밍167

파이썬(Python) - 제너레이터(generator)에 대해서 알아보자. 파이썬(Python)에서는 제너레이터(generator)라는 것이 있는데 이는 메모리 절약을 위한 용도로 사용된다. 이번 포스팅에서는 제너레이터(generator)에 대하여 알아보려고 한다. 제너레이터(generator) 1) 제너레이터(generator) 넌 누구냐?! 제너레이터(generator)는 쉽게 말해 return이 아닌 yield 문을 이용하여 순회 가능한(Iterable) 객체를 만들어내는 함수이다. 2) 제너레이터(generator) 생성하기 제너레이터는(generator)는 순회 가능한 객체를 yield 문으로 넘겨줘야 한다. 다음은 제너레이터를 생성하는 함수이다. def generator(iterable): for x in iterable: yield x 또한 제너레이터 컴프리헨션을 .. 2022. 9. 27.
파이썬(Python) - 객체(Class, 클래스) 타입 확인 및 일치 여부 (feat. type, isinstance) 파이썬(Python)에서는 주어진 객체가 어떤 클래스(타입)인지 알려주는 type 클래스와 해당 객체가 특정 클래스인지 아닌지 확인해주는 isinstance 함수가 있다. 이번 포스팅에서는 type와 isinstance에 대하여 알아본다. type와 isinstance 사용법 1) 너 누구야? 객체 확인하기 : type type은 객체(클래스)가 어떤 객체(클래스)인지 알려주는 클래스이다. type은 첫 번째 인자로 객체를 받는다. 아래 코드를 통해 사용법을 알아보자. class MyClass: def __init__(self, x=None): self.x=x a = 'hello world!' b = range(3) c = MyClass() print(type(a)) print(type(b)) print.. 2022. 9. 27.
파이썬(Python) - 클래스(객체) 속성 존재 확인, 속성 변경하기, 속성 값 확인, 속성 삭제 (feat. hasattr, setattr, getattr, delattr) 파이썬(Python)에는 클래스(또는 객체)의 속성을 다루는 여러 가지 함수들이 존재한다. 속성이 존재하는지 알려주는 hasattr, 속성을 값을 변경하는 setattr, 속성 값을 확인하는 getattr 그리고 속성을 삭제하는 delattr이 있다. 이번 포스팅에서는 이러한 속성 관련 함수들의 사용법을 알아보고자 한다. 클래스(객체) 속성 존재 확인, 속성 변경하기, 속성 값 확인, 속성 삭제 (feat. hasattr, setattr, getattr, delattr) 1) 속성의 생사를 확인하라! : hasattr hasattr는 객체 안에 해당 속성이 있는지 여부를 부울(bool)값으로 알려준다. 먼저 예제용 클래스(Person)를 정의하고 인스턴스를 생성해준다. class Person: def _.. 2022. 9. 26.
[정규 표현식] 메타 문자 알아보기 이번 포스팅에서는 정규 표현식 패턴의 기본이라고 할 수 있는 메타 문자에 대해서 알아보려고 한다. - 목차 - 1. 메타 문자란? 2. 검사 범위가 자동 지정 메타 문자 3. 수량 지정 메타 문자 4. 검사 범위 수동 지정 메타 문자 5. 검사 위치 메타 문자 1. 메타 문자란? 메타 문자는 단순 문자가 아닌 다른 용도로 사용되는 문자를 말하며 단일 문자 또는 백 슬래쉬 '\' + 단일 문자의 형태로 사용된다. 메타 문자는 검사 범위를 지정(자동 또는 수동)하거나 수량 그리고 검사 위치를 나타내는 등 그 기능에 따라 세부적인 분류를 할 수 있다. 이제 이러한 메타 문자들의 기능을 파이썬 코드와 함께 알아보자. 2. 검사 범위가 자동 지정 메타 문자 메타 문자 중에는 검사 범위가 자동으로 지정된 것들이 있.. 2022. 9. 26.
파이썬(Python) 셋(Set)에 대하여 알아보기 파이썬(Python)에는 셋(Set)이란 객체가 있다. 셋(Set)은 수학 시간 때 배운 집합의 개념과 동일하다. 따라서 셋(Set) 안에는 유니크한 원소들만 담겨있게 된다. 이번 포스팅에서는 파이썬(Python)의 셋(Set) 객체에 대해서 알아보려고 한다. 셋(Set)에 대해서 알아보자. 1) 셋(Set) 생성하기 a. 기본 셋을 생성할때에는 중괄호({ }) 안에 원소를 콤마로 구분하여 넣어주는 식으로 생성한다. a = {'a', 'b', 'c'} a 그렇다면 빈 셋(Empty Set)은 어떻게 생성할까? 다음과 같이 set( )을 해주어야 한다. { }은 비어있는 딕셔너리를 의미하므로 혼동하지 않도록 하자. empty_set = set() ## {}과 혼동하지 말자 empty_set b. 문자열과 .. 2022. 9. 22.
주피터 노트북( Jupyter Notebook ) 배경 테마, 폰트, 셀 폭( Cell Width ) 설정하기 주피터 노트북( Jupyter Notebook )은 필자가 즐겨 쓰는 코드 환경이다. 주피터 노트북 jupyterthemes 모듈을 설치하면 배경 테마, 폰트를 설정할 수 있다. 또한 코드를 한 화면에 더 많이 작성하기 위해 셀 폭( cell width ) 또한 설정할 수 있다. 이번 포스팅에서는 주피터 노트북( Jupyter Notebook )에서 배경 테마, 폰트, 셀 폭( cell width )을 설정하는 방법을 알아보고자 한다. - 목차 - 1. jupyterthemes 설치 2. 주피터 노트북( Jupyter Notebook ) 배경 테마 설정하기 3. 주피터 노트북( Jupyter Notebook ) 폰트 및 셀 폭 설정하기 1. jupyterthemes 설치 먼저 주피터 노트북( Jupyte.. 2022. 9. 21.
파이썬(Python) tqdm 사용법 알아보기 이번 포스팅에서는 tqdm 사용법을 알아보려고 한다. 파이썬(Python)에서 반복 루프를 돌다 보면 진행이 얼마나 되었는지 Progress Bar를 통해 알 수 있다. 이처럼 반복문에서 진행률을 Progress Bar로 표현해주고 남은 시간 정보까지 알려주는 것이 바로 tqdm이다. 이제 구체적인 사용방법을 알아보자. tqdm 사용법을 알아보자 1) 기본 tqdm은 기본적으로 순회가능한 객체(리스트, 튜플, 이터레이터 등)를 첫 번째 인자로 넣어주고 for 문에 삽입하면 된다. from tqdm import tqdm import time for i in tqdm(range(10)): ## tqdm 첫 번째 인자에 순회가능한 객체 전달 time.sleep(0.01) 아래와 같이 변수에 할당해서 사용할 수.. 2022. 9. 21.
파이썬(Python) 튜플(Tuple)과 리스트(List)의 공통점과 차이점 파이썬(Python) 코딩을 하는 사람이라면 반드시 알고 있어야 하는 객체로 튜플(Tuple)과 리스트(List)가 있다. 하지만 필자는 이들의 공통점과 차이점을 잘 알지 못했는데 이번에 알게된 내용을 포스팅하고자 한다. 튜플(Tuple)과 리스트(List)의 공통점과 차이점 1) 공통점 a. 길이를 갖는다. 튜플(Tuple)과 리스트(List)는 길이가 있다. 따라서 len 함수를 사용할 수 있다. a = [1,2,3] ## 리스트 b = (1,2,3) ## 튜플 print('a의 길이 :', len(a)) print('b의 길이 :', len(b)) b. 언패킹(Unpacking)이 가능하다. 언패킹(Unpacking)이란 여러 변수를 한 번에 할당하는 것을 말한다. 튜플(Tuple)과 리스트(Lis.. 2022. 9. 19.
파이썬(Python) 데코레이터(Decorator)에 대해서 알아보자 (feat. @) 파이썬(Python)에서는 데코레이터(Decorator)라는 것이 있다. 뭔가를 꾸미는 장식가라는 의미의 데코레이터(Decorator)라는 단어에서 알 수 있듯이 데코레이터(Decorator)는 다른 함수를 꾸며주는 함수로써 다른 함수의 추가 기능을 부여할 때 사용된다. 이번 포스팅에서는 데코레이터의 사용법을 알아보려고 한다. 데코레이터(Decorator)로 함수를 꾸며보자 먼저 꾸밀 함수를 정의해보자. 아래 코드에서 정의된 함수는 'Sleeping'이라는 문자열을 출력하고 3초간 잠을 자는(아무것도 안 하는) 함수이다. import time def f(): ''' Just Function ''' print('Sleeping') time.sleep(3) 1) 데코레이터(Decorator) 만들기 이제 위.. 2022. 9. 19.
[정규 표현식] 알파벳 패턴 대소문자 상관없이 매칭하기 (feat. (?i), re.IGNORECASE) 알파벳으로 이루어진 문자열에서 패턴 매칭을 하다 보면 대소문자 구분하지 않고 매칭하고 싶을 때가 있다. 해당 정규 표현식으로는 (?i)가 있고 re 모듈에서 re.IGNORECASE를 이용하면 대소문자 구분 없이 패턴 매칭을 할 수 있다. 이번 포스팅에서는 대소문자 구분없이 패턴 매칭하는 방법을 알아보려고 한다. 대소문자 상관없이 매칭하기 먼저 다음 예제를 살펴보자. 아래 코드는 'banana' 패턴이 매칭되는 문자열을 찾는다. 실행하면 대문자가 섞여있는 것은 패턴 매칭이 안된다. import re pattern = re.compile('banana') string_list = ['banana', 'Banana', 'BANANA', 'baNana'] for string in string_list: ## .. 2022. 9. 18.

맨 위로