기술(Tech, IT)/파이썬(Python) 25

[Tech, Python] main method

파이썬의 스크립트 특성과 객체 지향 프로그래밍 모델 때문에 파이썬에서 "main" 메소드의 개념은 C나 C++의 main 함수와 완전히 다르다. C 또는 C++는 실행하기 위해 반드시 main 함수가 필요하지만 파이썬은 그렇지 않다. 그러나 스크립트를 독립 실행형 프로그램으로 실행할 때 시작점을 제공하고 스크립트를 다른 스크립트의 모듈로 가져올 때 실행해서는 안 되는 코드 부분을 구분하기 위해 C 또는 C++의 main 함수와 유사한 구조가 아래처럼 파이썬에서 자주 사용된다. def main(): # Your main code here print("Hello, world!") if __name__ == "__main__": main() def main() : 파이썬에서 main이라는 함수를 정의하는 부분..

[Tech, Python] \b (정규식)

정규식의 \b 메타 문자는 단어 경계를 나타낸다. 이는 문자를 일치시키는 것이 아니라 문자 사이의 위치를 일치시키는 것으로, 구체적으로 단어 문자(\w) 뒤에 단어가 아닌 문자(\W)가 오는 위치 또는 그 반대의 위치에 일치시킨다. 또한 첫 번째 또는 마지막 문자가 단어 문자인 경우 만자열의 시작 또는 끝에서도 일치한다. \b를 사용하면 텍스ㅌ 전체 단어 일치 : 'cat'이라는 단어를 문장에서 찾는데 'cat'이 다른 단어의 일부('catalog', 'bobcat' 같은 경우)가 아닌 경우를 찾을 때 import re text = "The cat scurried away from the catalog on the bobcat." pattern = r'\bcat\b' matches = re.findall..

[Tech, Python] re.group()

re.group() 함수는 검색된 패턴에서 일치하는 항목을 가져오는 데 사용된다. 이 함수는 정규식과 일치하는 문자열의 일부를 추출하는 데 사용할 수 있다. 예시를 살펴보자. 기본 사용법 import re # Compile a pattern and search in the string pattern = re.compile(r'\d+') # Matches one or more digits match = pattern.search('The price is 123 dollars.') # Use group to get the matched string if match: print(match.group()) # Output: 123​ 괄호를 사용해 일치하는 문자열 중 특정 문자열 접근 import re text ..

[Tech, Python] re.compile()

re.compile() 함수는 정규식 패턴을 정규식 객체로 컴파일하는 데 사용된다. 그런 다음 이 객체를 사용해 문자열과 일치시키거나 문자열 내에서 패턴을 검색할 수 있다. 정규식을 객체로 컴파일하면 몇 가지 이점이 있다. 효율성 : 정규식 패턴을 객체로 컴파일하면 패턴이 분석돼 매칭에 최적화된 내부 형식으로 한 번만 변환된다. 동일한 패턴을 여러 번 사용하려는 경우 한 번 컴파일하고 객체를 재사용하는 것이 re.match(), re.search() 등의 함수에서 패턴을 직접 사용할 때마다 다시 해석하는 것보다 더 효율적이다. 재사용 가능성 : 정규식 객체는 일단 컴파일되면 여러 문자열에 걸쳐 여러 번 재사용할 수 있다. 이렇게 하면 코드가 더 깔끔해질 뿐만 아니라 패턴이 한 곳에 정의되므로 유지 관리도..

[Tech, Python] re.escape

파이썬의 re 모듈에 있는 re.escape 함수는 문자열의 특수 문자를 escape 처리해 해당 문자가 특수 문자로 해석되지 않고 정규 표현식에서 사용될 수 있도록 설계됐다. "escape"라는 이름이 붙은 이유는 "escape"라는 더 넓은 프로그래밍 개념에서 유래했다. 많은 프로그래밍 언어와 문맥에서 "escape"한다는 것은 그 앞에 다른 문자 (종종 백슬래시 \)를 붙여 그 뒤에 오는 문자를 일반적인 특수 문자가 아닌 문자 그대로 해석해야 함을 나타낸다. 이는 정규식(다른 많은 구문과 마찬가지로)에서 특정 문자(.*?+()[]{}|^$ 등)가 수량화, 그룹화 또는 제어 구조를 나타내는 등 특별한 의미를 갖기 때문에 필요하다. 예시를 살펴보자. 기본적인 사용 : text에서 "Hello, worl..

[Python] raw strings

s = 'C:\Users\Name\Folder' 와 같이 s라는 일반 string(normal string) 앞에 r 또는 R을 붙여 raw string을 만들 수 있다. raw_s = r"C:\Users\Name\Folder" raw string은 '\' (백슬래시)로 인해 특별한 문자열로 인식되는 '\n', '\t', '\U' 등과 같은 문자열을 글자 그대로의 문자열로 인식하도록 한다. 아래는 Python 공식 홈페이지의 설명이다. : Both string and bytes literals may optionally be prefixed with a letter 'r' or 'R'; such strings are called raw strings and treat backslashes as liter..

[Python] SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape

해결책 : 사용하는 플랫폼(Windows, Linux 등)에 따라 동작하지 않는 해결책도 있음에 유의 기존 일반 string을 raw string으로 변환 dataset_dir = r"C:\Users\miche\Documents\school\jaar2\MIK\2.6\vektis_agb_zorgverlener"​ \을 /으로 치환 dataset_dir = "C:/Users/DeePak/Desktop/myac.csv" \를 \\으로 치환 dataset_dir = "C:\\Users\\DeePak\\Desktop\\myac.csv" 원인 : '\' (백슬래시) 는 다음에 오는 문자에 따라 특수 문자로 인식을 할 수 있다. 예를 들어, 에러를 살펴보면 '\U'는 Unicode로 인식이 되기 때문에 기대한 경로의..

[Python] pickle

파이썬 공식 웹사이트에서 설명하고 있는 pickle은 아래와 같다. : pickle 모듈은 파이썬 객체 구조를 직렬화 및 역직렬화하기 위한 바이너리 프로토콜을 구현한다. "Pickling"은 파이썬 객체 계층 구조를 바이트 스트림으로 변환하는 프로세스이며, "Unpickling"은 그 반대의 작업으로, 바이너리 파일 또는 바이트-열 객체에서 바이스트 스트림을 객체 계층 구조로 다시 변환하는 작업이다. : The pickle module implements binary protocols for serializing and de-serializing a Python object structure. “Pickling” is the process whereby a Python object hierarchy is..

[Python] 링크드 리스트 구현 - 1 (Singly Linked List)

Singly Linked List 구현은 매우 간단하고, 자주 사용하게 되므로 알아두는 것이 좋다. # Singly Linked List class 정의 class Node: def __init__(self, val): self.val = val self.next = None # '0'이라는 데이터를 담은 head와 cursor 선언 cur = head = Node(0) # '1'이라는 데이터를 담은 새로운 Node 선언해 head의 다음으로 연결 new = Node(1) cur.next = new cur = new # head부터 출력하면 0, 1을 출력으로 확인 가능 test = head while test: print(test.val) test = test.next

[Python] 파이썬 정규 표현식 (정규식, Python's Regular Expression)

정규식은 흔히 'regex' 나 'regexp'로도 약칭이 되는 string을 처리하는 강력한 도구 중 하나다. 정규식인 문자열을 식별하고 조작하기 위한 간결하고 유연한 수단이다. Python의 re 모듈은 정규 표현식으로 작업할 수 있는 함수와 클래스를 제공하고, 다음은 몇 가지 기본 사항이다. 1. 기본 패턴 (Basic Patterns) 'a', 'X', '9' - 일반 문자는 그 자체로 매칭 '.' - 줄바꿈을 제외한 모든 문자 매칭 '\w' - 단어 문자와 매칭 ('[a-zA-Z0-9_]'와 동일) '\W' - 단어가 아닌 문자와 매칭 '\d' - 숫자를 매칭 ('[0-9]'와 동일) '\D' - 숫자가 아닌 문자와 매칭 '\s' - 공백 문자와 매칭 (공백, 탭, 개행 등) '\S' - 공백이..