본문 바로가기

Python

(43)
[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..
[Programmers] 디스크 컨트롤러 (Python 풀이) https://programmers.co.kr/learn/courses/30/lessons/42627 코딩테스트 연습 - 디스크 컨트롤러 하드디스크는 한 번에 하나의 작업만 수행할 수 있습니다. 디스크 컨트롤러를 구현하는 방법은 여러 가지가 있습니다. 가장 일반적인 방법은 요청이 들어온 순서대로 처리하는 것입니다. 예를 programmers.co.kr 이 문제를 풀기 위해서는 python의 heapq 라이브러리를 다룰 수 있어야합니다. 관련 정보는 다음 사이트를 참고하세요. https://docs.python.org/ko/3/library/heapq.html 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 import ..
[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] 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..
[Python] fucntools.lru_cache() - 함수의 결과 캐싱 파이썬의 표준 라이브러리에 있는 functools.lru_cache() 는 함수의 결과를 캐시해 주는 함수 데커레이터입니다. 같은 인수를 전달했던 호출 결과가 이미 캐시되어 있으면 함수를 실행하지 않고 캐시 결과를 반환합니다. 함수의 인수와 결과는 딕셔너리를 이용해서 연결하기 때문에 @lru_cache()를 붙인 함수의 인수는 숫자, 문자열, 튜플과 같이 딕셔너리의 key로 사용할 수 있는 객체를 사용해야 합니다. 예시 n번째 피보나치 수를 반환하는 함수 my_fibo() 함수는 재귀함수로 구현되어 있습니다. n이 커질수록 엄청나게 많은 함수가 중복되어 실행되기 때문에 실행 시간이 오래걸리게 됩니다. 1 2 3 4 5 6 7 8 9 10 11 from time import time def my_fibo(..
[백준 23290] 마법사 상어와 복제(Python 풀이) https://www.acmicpc.net/problem/23290 23290번: 마법사 상어와 복제 첫째 줄에 물고기의 수 M, 상어가 마법을 연습한 횟수 S가 주어진다. 둘째 줄부터 M개의 줄에는 물고기의 정보 fx, fy, d가 주어진다. (fx, fy)는 물고기의 위치를 의미하고, d는 방향을 의미한다. 방향 www.acmicpc.net 이 문제는 구현 문제로 문제에서 요구한 순서에 맞게 구현하는 것이 중요합니다. 주의할 점은 다음과 같습니다. 배열의 index가 0이 아닌 1번 부터 시작하도록 되어 있습니다. 물고기의 방향 정보 또한 1~8번 까지의 정보를 가지기 때문에 헷갈리지 않도록 조심해야합니다. 물고기의 냄새가 있는 곳은 '이동'을 못하는 것입니다. 따라서 물고기가 잡아 먹혀서 물고기 냄..