대왕판다
ESTP 하고재비로 살아가기
대왕판다
전체 방문자
오늘
어제
  • 분류 전체보기
    • 일상
      • 먹고재비
      • 생각대로
    • 개발
      • html css
      • 자바
      • 자바스크립트
      • 파이썬
      • 알고리즘
      • 북TIL
      • 네트워크
      • 객체지향개발

블로그 메뉴

  • 홈
  • 태그

공지사항

인기 글

태그

  • 노개북
  • 브루트포스
  • 코딩
  • 양산맛집
  • html
  • 리액트
  • 자바스크립트
  • 상길북
  • 마이바티스
  • 양산
  • 알고리즘
  • 클론코딩
  • 노마드코더
  • 파이썬
  • 맛집
  • 타입스크립트
  • 자바
  • 챌린지
  • css
  • 백준

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
대왕판다

ESTP 하고재비로 살아가기

개발/북TIL

[북TIL] 파이썬 알고리즘 인터뷰 1~3장

2022. 7. 14. 19:51

오늘 TIL 3줄 요약

  • 파이썬이 왜 코테에 유리한가(코드잼, 카카오 공채 응시 언어별 통계로 확인)
  • 파이썬과 다른 언어들의 반복문, 구조체, 클래스 구현
  • 구조체, 동적 타이핑 언어, 제네릭 프로그래밍이란?
  • 파이썬의 인덴트는 공백 4칸(PEP 8)
  • 좋은 코드는 얼핏 쳐다 보기만해도 향기가 난다.

 

 

TIL (Today I Learned) 날짜

  • 2022.07.14 THU



오늘 읽은 범위

  • 파이썬알고리즘인터뷰(상길북)1~3장



책에서 기억하고 싶은 내용을 써보세요.

  • 파이썬은 동적 타이핑 언어로 사용하기엔 매우 편하지만, 타입을 명시하지 않으면 가독성을 낮추고 버그 발생 확률이 높아진다.

    # 타입을 명시하는 예
    from typing import TypeVar
    
    # 파이썬의 typing 내장 패키지가 파이썬을 정적 타입으로 만들어주지는 않는다.
    # 그러나 코드 상에 타입을 명시할 수 있고, 에디터 레벨에서 경고를 띄워주는것이 가능.
    
    T = TypeVar('T')
    U = TypeVar('U')
    
    def are_equal(a:T, b:U) -> bool:
        return a == b
    
    are_equal(10, 10.0)
    
  • 파이썬에는 구조체가 없어 네임드튜플을 사용하거나 dataclass 데코레이션(3.7이후)을 사용해 구조체 형태로 정의할 수 있다

    # python 3.7+
    from dataclasses import dataclass
    
    @dataclass
    # 클래스를 구현할때 데이터 클래스를 선언해주면 여러 내부 함수의 기능도 자동으로 구현가능
    class Product:
        weight: int = None
        price: float = None
        # 타입 힌트와 함께 사용
            
    apple = Product()
    apple.price = 10
    
  • 가독성을 위해 람다, 리스트 컴프리헨션 등 표현식은 2개를 넘지 않아야 한다.
  • 제너레이터는 루프의 반복 동작(iteration)을 제어할 수 있는 루틴 형태.
  • 제너레이터를 쓸 때 yield 구문을 사용하면 return과 달리 실행 중이던 값을 내보내고, 함수의 끝까지 실행된다.


오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요

  • 람다표현식에 map이나 filter를 사용하는 것이 더 능숙해보이고 어려워보였는데,

  • 정작 리스트 컴프리헨션을 이용하는게 가독성이 높다는 점이 인상적이다.

     



궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.

  • 제네릭 프로그래밍(영어: generic programming)은 데이터 형식에 의존하지 않고, 하나의 값이 여러 다른 데이터 타입들을 가질 수 있는 기술에 중점을 두어 재사용성을 높일 수 있는 프로그래밍 방식이다.

    • 즉 클래스를 정의 할 때는 데이터 타입을 확정하지 않고 인스턴스를 생성할 때 데이터 타입을 지정하는 기능이 제네릭이다. 이를 통해 중복의 제거와 타입 안정성의 추구가 가능해진다.

    • 또한 자바와 같은 컴파일 언어의 경우 실행중 런타임 에러를 맞는것보다, 컴파일 단계에서 에러를 내는것이 안전한데, 제네릭의 사용은 이를 가능하게 해준다.

       

'개발 > 북TIL' 카테고리의 다른 글

[북TIL] 파이썬알고리즘인터뷰 6. 문자열 조작  (0) 2022.07.27
파이썬 알고리즘 인터뷰 5장 리스트, 딕셔너리  (0) 2022.07.20
[북TIL] 실용주의 프로그래머 4. 실용주의 편집증  (0) 2022.05.20
[북TIL] 실용주의 프로그래머 3. 기본도구  (0) 2022.05.18
[북TIL] 실용주의 프로그래머 2장  (0) 2022.05.15
    '개발/북TIL' 카테고리의 다른 글
    • [북TIL] 파이썬알고리즘인터뷰 6. 문자열 조작
    • 파이썬 알고리즘 인터뷰 5장 리스트, 딕셔너리
    • [북TIL] 실용주의 프로그래머 4. 실용주의 편집증
    • [북TIL] 실용주의 프로그래머 3. 기본도구
    대왕판다
    대왕판다
    let's learn and roll!

    티스토리툴바