Coding/Python 25

[Python] Python에서 빠른 입출력 방법

프로그래밍 대회나 알고리즘 문제를 풀 때, 입출력 속도는 매우 중요합니다. 특히 파이썬은 다른 언어에 비해 입출력 속도가 느린 편이기 때문에, 기본 입출력 방법을 사용하면 시간 초과가 발생할 수 있습니다. 이 글에서는 파이썬에서 데이터를 빠르게 입출력하는 방법을 소개하겠습니다. 빠른 입력기본적으로 파이썬에서는 input() 함수를 사용하여 입력을 받습니다. 하지만 이 함수는 내부적으로 버퍼링을 하지 않아 속도가 느립니다. 따라서 sys.stdin.readline() 함수를 사용하여 입력 속도를 향상시킬 수 있습니다.import sysdata = sys.stdin.readline().rstrip()sys.stdin.readline()은 한 줄의 입력을 빠르게 받아옵니다.입력받은 문자열의 끝에는 줄바꿈 문자..

Coding/Python 2024.10.06

[Python] UnicodeEncodeError: 'utf-8' codec can't encode characters in position : surrogates not allowed 해결방법

오늘은 Python에서 이모지와 관련하여 인코딩을 하는 과정에서 오류가 발생해서 해결하는 방법에 대해 소개하겠다.오류>>> text = "😊">>> print(text)UnicodeEncodeError: 'utf-8' codec can't encode characters in position 17-18: surrogates not allowed 이 오류는 주로 Python에서 이모지 또는 특정 유니코드 문자를 처리할 때 발생한다. 이 오류의 원인은 다음과 같다.서로게이트 쌍 문제: UTF-16에서 사용되는 서로게이트 쌍이 UTF-8로 인코딩 되려 할 때 문제가 발생한다. Python 내부에서 UTF-16 서로게이트 쌍을 UTF-8로 직접 변환하려고 하면, UTF-8이 해당 문자를 표현할 방법이 없기 때..

Coding/Python 2024.07.08

[Python] 파이썬에서 getter, setter 사용 방법(feat. Property)

파이썬에서 객체에 값을 저장하거나 가져올 때, getter와 setter를 사용하는데 이것들을 하나하나 선언하는 것 (get_name 또는 set_name)보다 파이썬에서 지원하는 것이 있다. 그것은 바로 Property(프로퍼티)이다. PropertyProperty는 클래스의 어떤 속성에 대한 접근을 제어하는 경우 사용한다. Property는 클래스 속성에 대해 접근을 하는 내장 함수이다. 이를 통해 클래스 속성의 값을 설정하거나 값을 가져올 때 추가적인 기능을 실행할 수 있도록 합니다. 이를 통해서 더욱 파이썬스러운 코드를 작성할 수 있습니다. getter, setter, deleter 사용방법기본적으로 Class 다음과 같이 선언되어있다고 해봅시다.class Person: def __init_..

Coding/Python 2024.06.13

[Python] 타입 힌트를 위한 typing 모듈에 대해 알아보자

Python에서 타입 힌트 등장 배경 Python은 동적 타입 언어로 알려져 있다. 이는 프로그래머가 변수의 타입을 미리 선언하지 않아도 되며, 프로그램 실행 시점에서 타입이 결정된다. 이러한 동적 타이핑은 개발의 유연성을 높이지만, 대규모 프로젝트나 복잡한 시스템에서는 종종 문제를 야기한다. 타입 오류가 런타임에서만 발견되기 때문에, 버그를 예방하고, 코드의 안정성을 향상시키기 어렵다. 이러한 문제점을 해결하기 위해 Python 3.5 버전에서 typing 모듈이 도입되었습니다. 타입 힌트(typing Module) Python의 typing 모듈은 개발자들이 변수, 함수 매개변수, 반환값 등의 데이터 타입을 명시적으로 선언할 수 있게 해주는 기능을 제공한다. 주로 코드의 가독성을 향상시키고, 정적 분..

Coding/Python 2024.06.12

[Python] 'Fatal error in launcher: Unable to create process using' 오류 해결 방법

오류> pipFatal error in launcher: Unable to create process usingpip 오류의 발생원인은 다음과 같다.환경 변수 문제: PATH 환경 변수에 Python 설치 경로가 정확하게 설정되지 않았을 수 있다.버전 충돌: 사용하는 Python 버전과 설치된 패키지 버전이 서로 호환되지 않을 수 있다. 해결방법# pip 재설치python -m pip install --upgrade --force-reinstall pip 해결방법은 pip를 재설치하면 된다.

Coding/Python 2024.06.04

[Python] Progress Bar(tqdm)을 깔끔하게 출력하는 방법은 무엇일까?

tqdm을 이용해서 for문이 실행될 때마다 실행결과를 확인하기 위해 print을 실행한다면 VSCode나 Jupyter에서 사진과 같이 출력된다. 이때 깔끔하게 출력하는 방법에 대해 알아보자. tqdm 기초는 여기를 보면 된다.Jupyter와 VSCode에 대해 각각 설명하겠다. 일단 결론부터 말하자면 다음과 같은 코드를 사용하면 된다.from tqdm.auto import tqdm  Jupyter에서 tqdm 사용방법tqdm 라이브러리 내부의 notebook 모듈을 사용하면 간단하게 해결된다. from tqdm.notebook import tqdmimport timefor i in tqdm(range(100)): print(1) time.sleep(0.1) VSCode에서 tqdm 사용방법..

Coding/Python 2024.05.30

[Python] decorator(데코레이터)에 대해 알아보자

Python FastAPI를 공부하면서 데코레이터를 알게 되었는데 왜 어떻게 작동하는지 잘 이해가 가지 않아서 공부를 하게 되었고 이에 대해 내가 알게된 점에 대해 소개해보려고 한다. 코드는 여기에서 확인할 수 있다. 데코레이터란 무엇인가?데코레이터는 파이썬의 고급 기능 중 하나로, 함수나 메서드에 코드를 수정하지 않고 기능을 주입하는 방법입니다. 함수를 여러 기능으로 사용해야 하며 코드에 수정을 가하지 않을 때 자주 사용한다. 데코레이터는 함수로 인자를 받고, 함수를 감싸는 래퍼(wrapper)를 정의하여, 함수에 추가적인 기능을 할 수 있도록 한다.  데코레이터를 사용하는 이유는?사용하는데 여러가지 이유가 있다.코드 재사용 : 코드가 중복될 때 함수를 사용하는데 이때 함수를 여러 방법으로 사용하기 위..

Coding/Python 2024.05.29

[Python] pydantic에 대해 알아보자

FastAPI를 공부하면서 pydantic 라이브러리에 대해 알게 되었고, pydantic document를 보게 되면서 공부를 하게되어서 공부하고 깨달은 점에 대해 소개하고자 작성하게 되었습니다. Pydnatic overview Pydantic은 Python의 타입 힌트를 활용하여 데이터 유효성 검사와 설정 관리를 자동화하는 강력한 라이브러리입니다. 개발자가 데이터 모델을 정의할 때 명확한 데이터 타입을 지정함으로써, Pydantic은 이 모델을 기반으로 데이터의 유효성을 자동으로 검증합니다. 이 과정에서 데이터 타입의 불일치나 필드의 누락과 같은 문제를 즉각적으로 식별하고 처리할 수 있습니다 다시말하면, 명시해준 데이터 타입과 입력에 대해 data validation을 진행합니다. 이 때, 타입이 다..

Coding/Python 2024.04.21

[Python] Docstring에 대해 알아보자

안녕하세요, 오늘은 Python에서 사용하는 Docstring에 대해 설명해드릴려고 합니다. Docstring이란? Docstring은 Python에서 함수, 클래스, 모듈이나 메소드 등 첫 번째 줄에 위치하며, 코드의 목적이나 동작을 설명하는데 사용됩니다. 파이썬의 help함수를 이용해서 Docstring에 접근할 수 있으며, 코드의 이해를 돕고 다른 개발자들이 코드를 더 쉽게 사용할 수 있도록 합니다. 예시 >>> help(len) len(obj, /) Return the number of items in a container. Docstring 기본 구조 함수나 메소드의 Docstring: 함수의 작동 방식, 매개변수, 반환 값, 발생할 수 있는 예외 등을 설명합니다. 클래스의 Docstring: ..

Coding/Python 2024.04.16

[Python] tqdm - Python에서 진행률을 시각적으로 표시

오늘은 Python에서 긴 작업을 처리할 때 진행상황을 알 수 있도록 나타내주는 'tqdm'과 'trange'이 사용됩니다. 이 도구들을 사용하는 방법에 대해 소개해드리려고합니다. tqdm이란? 'tqdm'은 아랍어로 "진행"을 의미하는 단어에서 유래했으며, Python에서 반복 작업의 진행 상황을 프로그레스 바 형태로 표시해주는 라이브러리입니다. 사용 방법은 매우 간단하여, 기존의 for 루프나 반복 가능한 객체에 tqdm() 함수를 적용하기만 하면 됩니다. 파라미터 설명 및 구현 주요 파라미터 ncols : 진행률 표시줄의 너비(문자 단위)입니다. 자동 조정을 원하면 None을, 최대 너비로 하고 싶으면 0을 설정 ascii : True로 하면 '#'문자로 진행바가 표시 desc : 진행률 표시줄 앞..

Coding/Python 2024.03.20