본문 바로가기

Python

(15)
프로그래머스 코딩테스트 문제 풀이 전략: 파이썬 편 개발자로 취업 및 이직을 하기 위해 대부분의 회사에서는 코딩 테스트를 실시하고 있다. 코딩 테스트는 개발자에 대한 역량을 평가할 때 가장 광범위하게 쓰이는 기준이고, 다양한 역량이 있지만 코딩 테스트를 통과할 수 있는 수준의 기본기가 없다면 뛰어난 개발자가 되기는 어렵다. 이 책은 코딩 테스트 학습이 처음인 사람도 차근차근 공부하면 튼튼한 기본기를 갖출 수 있고 코딩 테스트도 잘 볼 수 있을 것이라고 생각한다. 코딩 테스트를 보는 이유는 무엇일까? 목적은 크게 세 가지이다. 1. 문제 해결 과정을 보는 것 2. 생각하는 실력을 다지는 것 3. 똑같은 결과를 빠르고 효율적으로 푸는 것 코딩 테스트의 가장 기본이자 반드시 나오는 배열에 대해 알기 쉽게 설명하고 다양한 방식으로 다루어 볼 수 있다. 재귀 함수..
[책 이야기] 진지한 파이썬 - 쥘리앵 당주 파이썬은 타 언어에 비해 배우기 쉽고 심플하며 광범위한 라이브러리를 사용할 수 있는 프로그래밍 언어이다. 머신러닝/딥러닝, 데이터 분석 등에서도 많이 사용되고 있다. 나는 업무상 백엔드 프로그래밍에서 파이썬을 주로 사용하고 있고, 조금 더 깊게 파이썬을 알고 싶은 니즈가 있었다. 시중에 파이썬 관련 책은 정말정말 많지만 대부분 입문용, 데이터 분석, 머신러닝/딥러닝 관련 책이고 중급, 고급을 위한 책은 많지 않았다. '진지한 파이썬'은 기본 문법을 숙지하고 기본적인 프로그래밍이 가능한 프로그래머가 중급/고급자가 되기 위해 알아야 할 내용과 예제를 담고 있다. 파이썬 소스 코드를 효율적으로 작성하는 방법을 더 잘 이해할 수 있도록 파이썬 내부도 살펴본다. 내부에서 어떻게 소스 코드가 처리되는지 이해하면, ..
[PyCharm] 주석으로 'TODO' 관리하기 파이참에서는 주석을 이용해서 TODO와 같은 항목들을 관리할 수 있다. TODO를 기록하기 위해서 '# TODO'라고 입력하면 다른 주석과 다르게 색깔이 변하는 것을 확인할 수 있다. TODO로 등록한 주석은 파이참 도구창의 'TODO'를 클릭하면, 하단에 TODO 리스트가 활성화 된다. 리스트를 조회하고, 특정 항목을 클릭하면 해당 줄로 이동이 가능하여, 코드에서 중요하거나 자주 이동하는 곳을 표시하고 사용하면 유용하다. 'TODO' 외에 다른 이름으로 항목을 만들 수 있다. (Windows) File - Settings - Editor - TODO (mac) Preferences - Editor - TODO 우측의 + 버튼 클릭 후 '\b항목명\b.*' 입력 아래의 'Use color scheme T..
[Python] 네임드튜플 (namedtuple) 보통의 튜플의 경우에는 인덱스를 통해서 튜플에 접근이 가능한데, namedtuple을 사용하게 되면 키 값으로 접근이 가능하다. 네임드튜플 예시 from collections import namedtuple # collections 모듈의 namedtuple 호출 위해서 Tri = namedtuple('Triangle', ['bottom', 'height']) # 네임드 튜플 클래스 만듦 t = Tri(3, 7) # 네임드 튜플 객체 생성 print(t[0], t[1]) # 일반 튜플과 동일한 방법으로 접근 가능하다. 3 7 print(t.bottom, t.height) # 일반 튜플과 달리 이름으로도 접근이 가능하다. 3 7 네임드튜플 언패킹 예시 t = Tri(12, 79) # 네임드 튜플 객체 생성..
[Python] Iterable 객체와 Itorator 객체 Iterable 객체 : iter 함수에 인자로 전달 가능한 객체 ex) 튜플, 리스트, 문자 Iterator 객체 : iter 함수가 생성해서 반환하는 객체 ds = [1, 2, 3, 4] ir = iter(ds) # iterator 객체를 얻는 방법 next(ir) # iterator 객체를 통해 값을 하나씩 꺼내는 방법, 첫 번째 값 반환 1 next(ir) # 두 번째 값 반환 2 next(ir) # 세 번째 값 반환 3 next(ir) # 네 번째 값 반환 4
[Python] 리스트 컴프리헨션 (List Comprehension) 리스트 컴프리헨션은 반복되거나 특정 조건을 만족하는 리스트를 보다 쉽게 만들어 내기 위한 방법이다. 1. 리스트 컴프리헨션 기본 구조 r1 = [1, 2, 3, 4, 5] r2 = [x * 2 for x in r1] r2 [2, 4, 6, 8, 10] 2. if절이 추가된 리스트 컴프리헨션 r1 = [1, 2, 3, 4, 5] r2 = [x * 2 for x in r1 if x % 2] r2 [2, 6, 10] 3. 중첩된 for 루프 형태의 리스트 컴프리헨션 # ex1 r1 = ['Black', 'White'] r2 = ['Red', 'Blue', 'Green'] r3 = [t + p for t in r1 for p in r2] r3 ['BlackRed', 'BlackBlue', 'BlackGreen'..
[Python] 예외처리 1. 기본 예외처리 def main(): print("안녕하세요.") try: age = int(input("나이를 입력하세요: ")) print("입력하신 나이는 다음과 같습니다.", age) except ValueError: print("입력이 잘못되었습니다.") print("만나서 반가웠습니다.") 2. 적극적인 예외처리 def main(): print("안녕하세요.") while True: try: age = int(input("나이를 입력하세요: ")) print("입력하신 나이는 다음과 같습니다.", age) break # 입력이 정상적이면 while 루프 탈출! except ValueError: print("입력이 잘못되었습니다.") print("만나서 반가웠습니다.") 3. 둘 이상의 예외..
[Python] 모듈 모듈을 가져다 쓰는 방법 1 import circle def main(): r = float(input("반지름 입력: ")) ar = circle.ar_circle(r) print("넓이:", ar) ci = circle.ci_circle(r) print("둘레:", ci) main() 모듈을 가져다 쓰는 방법 2 from circle import ar_circle from circle import ci_circle # from circle import ar_circle, ci_circle def main(): r = float(input("반지름 입력: ")) ar = ar_circle(r) print("넓이:", ar) ci = ci_circle(r) print("둘레:", ci) main() 모듈..