본문 바로가기

About/Python

(25)
[Python] 파이썬 PEP 701: F-String 개선(Python 3.12버전 코드 예시) 파이썬에서 F-스트링(F-strings)은 코드의 가독성을 높이고 문자열 포매팅을 간편하게 만들어 주는 강력한 기능입니다. PEP 701은 이 F-스트링 기능의 개선에 관한 제안서입니다. F-스트링의 개선점 성능 향상: PEP 701은 F-스트링의 성능을 향상시키는 방법을 제안합니다. 이는 특히 대규모 데이터를 다룰 때 유용합니다. 추가 기능: 새로운 포매팅 옵션과 기능을 도입하여 더 다양한 사용 사례를 지원합니다. 예시 코드 # 기본 F-스트링 사용 예 name = "홍길동" age = 30 print(f"이름: {name}, 나이: {age}") # PEP 701에 따른 개선된 F-스트링 사용 예 # 예를 들어, 인라인 계산이나 더 향상된 형식 지정 기능을 포함할 수 있음 print(f"{name=}..
[Python] 파이썬 PEP 695: 타입 파라미터(TypeVar) 문법과 타입 문(예시 코드) 파이썬의 타입 시스템은 지속적으로 발전하고 있으며, PEP 695는 이러한 발전의 일환으로 제안되었습니다. 이 PEP는 특히 타입 파라미터 문법과 타입 문에 초점을 맞추고 있습니다. 주요 내용 타입 파라미터 문법: 이 문법은 제네릭 타입을 더 명확하고 간결하게 표현할 수 있게 해줍니다. 이는 타입 힌트의 가독성을 향상시키고, 복잡한 타입 구조를 더 쉽게 이해할 수 있게 합니다. 타입 문: 타입 문은 타입 힌트를 코드 내에서 더 명시적으로 표현할 수 있는 방법을 제공합니다. 이를 통해 개발자는 코드의 의도를 더 명확하게 전달할 수 있습니다. 예시 코드 # 타입 파라미터 문법 예시 T = TypeVar('T') class Stack(Generic[T]): def push(self, item: T) -> No..
[Python] 판다스(Pandas)에서 DataFrame 행 반복 처리하기 - iterrows 판다스(Pandas)는 파이썬에서 데이터 분석을 위해 널리 사용되는 라이브러리입니다. 이 글에서는 판다스의 DataFrame에서 행을 반복(iterate) 처리하는 방법에 대해 알아보겠습니다. DataFrame 행 반복의 기본: iterrows() 판다스에서 DataFrame의 각 행을 반복하는 기본적인 방법은 iterrows() 함수를 사용하는 것입니다. 이 함수는 DataFrame의 행을 (인덱스, 시리즈) 쌍으로 반복합니다. 예시 코드 import pandas as pd # 예제 DataFrame 생성 df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]}) # iterrows를 사용하여 행 반복 for index, row in df.iterrows(): prin..
[Python] Python 3.10에서 새롭게 도입된 패턴 매칭 기능 (match-case) 파이썬 3.10 버전에서 소개된 중요한 새로운 기능 중 하나는 패턴 매칭입니다. 이 기능은 다양한 데이터 타입과 구조를 더 직관적이고 유연하게 처리할 수 있도록 해줍니다. 패턴 매칭이란? 패턴 매칭은 주어진 데이터 구조를 특정 패턴과 비교하여, 해당 패턴에 부합하는지 여부를 확인하는 프로세스입니다. 이 기능은 많은 함수형 프로그래밍 언어에서 일반적으로 사용되며, 파이썬 3.10에서는 match 문과 case 문을 통해 구현됩니다. 기본 구조 match 대상_변수: case 패턴1: # 패턴1과 일치할 때 실행되는 코드 case 패턴2: # 패턴2와 일치할 때 실행되는 코드 ... 사용 예시 아래 예시는 파이썬 3.10의 패턴 매칭 기능을 보여줍니다: def greet(person): match perso..
[Python] Context Manager(컨텍스트 관리자) Context Manager 컨텍스트 매니저는 원하는 타이밍에 정확하게 리소스를 할당하고 제공하는 역할을 합니다. 보통 리소스 관리와 관련하여 Context Manager를 자주 사용합니다. 일단 파일을 열면 파일 디스크립터의 누수(resource leak)을 막기 위해 작업이 끝나면 적절히 닫히길 기대합니다. 또는 서비스나 소켓에 대한 연결을 열었을 때도 적절히 닫거나 임시 파일을 제거하는 등의 작업을 해야합니다. 위와 같은 경우에 일반적으로 할당된 모든 리소스를 해제해야 합니다. 모든 것이 잘 처리되었을 경우의 해제는 쉽지만 예외가 발생하거나 오류를 처리해야 하는 경우 모든 조합과 실행 경로에 대하여 처리하는 것은 쉽지 않습니다. 이 때 일반적으로 finally 블록에 정리 코드를 넣는 방법이 있습니..
[Python] 코드 검사 자동화(Mypy를 사용한 타입 힌팅, Pylint를 사용한 코드 검사) Mypy를 사용한 타입 힌팅 Mypy http://mypy-lang.org/ mypy - Optional Static Typing for Python Why mypy? Compile-time type checking Static typing makes it easier to find bugs with less debugging. Easier maintenance Type declarations act as machine-checked documentation. Static typing makes your code easier to understand and easier to modify without mypy-lang.org Mypy는 파이썬에서 가장 일반적으로 사용하는 정적 타입 검사 도구입니다. my..
[Python] 어노테이션(Annotation) vs docstring 이전 포스팅에서 docstring과 어노테이션에 대해 다루어 봤는데, 이번 포스팅에서는 이 둘의 관계와 차이에 대하여 알아보겠습니다. 2022.03.10 - [About/Python] - [Python] Docstring에 대하여 2022.03.17 - [About/Python] - [Python] 어노테이션(Annotation)에 대하여 어노테이션은 docstring을 대체하는 것일까? 어노테이션이 소개되기 오래전부터 함수의 파라미터 또는 속성의 타입을 문서화할 때 docstring을 사용했었기 때문에 docstring 대신 어노테이션을 사용해야 하는 것인지에 의문을 가질 수 있습니다. 대답은 "예" 입니다. docstring과 어노테이션은 서로 보완적인 개념이기 때문입니다. docstring에 포함..
[Python] 어노테이션(Annotation)에 대하여 어노테이션(Annotation) PEP-3107에서는 어노테이션을 소개합니다. https://peps.python.org/pep-3107/ PEP 3107 – Function Annotations | peps.python.org PEP 3107 – Function Annotations PEP 3107 Title Function Annotations Author Collin Winter , Tony Lownds Status Final Type Standards Track Created 02-Dec-2006 Python-Version 3.0 Post-History Contents This PEP introduces a syntax for adding arbitrary metada peps.python.org..
[Python] Docstring에 대하여 Docstring docstring은 소스 코드에 포함된 문서(document)라고 말할 수 있습니다. docstring은 기본적으로 리터럴 문자열이며, 로직의 일부분을 문서화하기 위해 코드 어딘가에 배치됩니다. 문서(documentation)라는 단어에 주목해보면, "이유"가 아니라 "설명"입니다. 따라서 docstring은 주석을 다는 것이 아니라 코드의 특정 컴포넌트(모듈, 클래스, 메서드 또는 함수)에 대한 문서화입니다. 이런 컴포넌트에 사용하는 것은 허용될 뿐 아니라 권장되는 부분입니다. 가능한 많은 docstring을 추가하는 것이 좋습니다. docstring을 코드에 포함시키는 것이 좋은 이유는 파이썬이 동적 타이핑을 하기 때문입니다. 예를 들어 함수는 파라미터의 값으로 무엇이든 사용될 수 ..
[Python] 파이썬 코드 스타일(PEP-8)을 따라야하는 이유 PEP 8이란? https://peps.python.org/pep-0008/ PEP 8 – Style Guide for Python Code | peps.python.org PEP 8 – Style Guide for Python Code PEP 8 Title Style Guide for Python Code Author Guido van Rossum , Barry Warsaw , Nick Coghlan Status Active Type Process Created 05-Jul-2001 Post-History 05-Jul-2001, 01-Aug-2013 Contents This document gives coding con peps.python.org PEP 8은 "Style Guide for Python..