본문 바로가기

데이터/Python

[코딩테스트 준비] 코딩테스트 입문자 '코드트리' 사용후기 우연한 기회에 코드트리를 무료로 일정 기간(약 두달)동안 이용해볼 수 있는 기회를 얻었다. 결론부터 말하자면, 현재 코드트리에서 250문제를 해결하였으며, 만족도는 상당히 높아 체험 기간 이후에도 결제할 계획이다. 약 한달간 사용해보면서 느꼈던, 실력 향상에 도움이 되는 코드트리의 장점을 먼저 소개한다. 장점 1. 동기부여 - 코드트리에는 경험치 시스템이 있다. 문제 난이도에 따라 해당 문제를 풀었을 때 획득 경험치가 다르다. 또한 하루 경험치의 할당량을 정해놓고, 할당 경험치를 채웠는 지 매 문제마다 나타내준다. 이는, 경험치를 채우지 않고 끄면 찝찝함을 느끼게 해주어, 한두문제 더 찾아 풀어서 경험치를 채우게 만들어준다. - 물론 하루 할당 경험치는 나의 상황에 맞게 수정이 가능하다. 필자는 하루 1.. 더보기
tqdm을 라이브러리 사용하여 진행률 시각화하기 tqdm 이란 tqdm은 자동으로 진행 상태를 시각적으로 보여 주는 라이브러리입니다. 코딩을 하면서 가장 많이 사용하는 구문 중 하나는 for문일 것입니다. for문을 사용하면서, 반복을 굉장히 많이 하거나 반복문 내의 프로세스가 복잡하여 시간이 오래 소요될 경우 진행상황을 알기 위해 자주 사용합니다. 진행 상황을 progress bar로 보기 편하게 알려줍니다. from tqdm import tqdm import time my_list = range(200) for item in tqdm(my_list, desc="Processing"): # 작업 내용 time.sleep(0.01) tqdm 사용법 Iterable-based 리스트를 포함한 어떤 이터러블 객체가 오든, tqdm()으로 감싸면 된다. p.. 더보기
[파이썬] 클래스 사용하기 절차 지향 vs 객체 지향 객체 지향 프로그래밍(OOP)의 장점 : 코드의 재사용, 코드 중복 방지, 유지보수의 편의성, 대형 프로젝트 시 활용성이 좋음 기존 방식(함수 중심) : 규모가 큰 프로젝트의 경우 → 데이터가 방대, 복잡해져 유지 보수가 어려워짐 클래스 중심으로 진화 → 데이터 중심 → 객체로써 관리 절차지향 vs 객체지향 어떤 것을 선택해야 하는가? 간단한 프로그램(크롤링 등) → 절차 지향 배포 목적, 지속적인 프로그램 → 객체 지향 일반적인 코딩 - 일반적인 코딩으로 데이터를 저장하는 경우 아래와 같다. # 차량 1 car_company_1 = 'Ferrari' car_datail_1 = [ {'color': 'White'}, {'housepower': 400}, {'price': 800.. 더보기
[파이썬/Python] 클로저, closure 클로저란? - 클로저는 Outer function이 종료된 후에도 Outer function에 접근할 수 있는 함수(nested function)이다. - 즉, 지역함수가 종료된 후에도 지역함수의 변수에 접근할 수 있게 한다. - 클로저의 특성 : 불변자료구조이며, 멀티스레드 프로그래밍에 강점이 있다. 언제 사용하는가? 클로저는 전역 변수의 사용을 피하고, 데이터의 숨김(data hiding)을 제공하고, 몇몇 메서드들에 솔루션을 제공한다. - 데코레이터와 함께 사용하면 높은 확장성을 제공한다. - 여러 속성과 메서드들이 있는 경우에는 클래스 구현이 권장된다. def greet(name): # inner function def display_name(): print("Hi", name) # call in.. 더보기
[파이썬] 리스트 여러 요소를 담을 수 있는 자료형이 필요 리스트, 튜플, 딕셔너리 → 여러 요소를 담을 수 있는 자료형, 각각 다른 특징을 지님 리스트는 아무 데이터나 저장할 수 있다. 숫자형, 문자형 혼합해서 사용가능 순서를 가진다 → 인덱싱과 슬라이싱이 가능하다. 가장 많이 사용하는 자료형 [ ] 대괄호 사용 리스트 만들어보기 a = [] b = [1, 2, 3] c = ['Life', 'is', 'too', 'short'] d = [1, 'Life', 2, 'is'] 리스트도 연산이 가능하다 리스트 인덱싱과 슬라이싱 리스트 인덱싱 리스트 안의 특정한 값을 뽑아낸다 a = [1, 2, 3] b = ["Life", "is", "too", "short"] print(a[0]) print(a[-1]) #>>>1 #3 리스.. 더보기