본문 바로가기

Programming/Python27

[점프 투 파이썬] 8장 - 정규표현식: 강력한 정규 표현식의 세계 본 글은 '점프 투 파이썬(박응용)'을 바탕으로 공부한 내용을 정리한 글입니다. 문자열 소비가 없는 메타 문자조건만 확인하는 메타 문자들`|``A|B`: A 또는 Bimport rep = re.compile('Crow|Servo')m = p.match('CrowHello')print(m) # `^``^`: 문자열의 맨 처음과 일치`re.MULTILINE` 옵션 사용 시 문자열의 각 줄의 처음과 매치import reprint(re.search('^Life', 'Life is too short')) # print(re.search('^Life', 'My Life')) # None`$``$`: 문자열의 끝과 매치`re.MULTILINE` 옵션 사용 시 문자열의 각 줄의 끝과 매치import reprint(re.. 2025. 8. 28.
[점프 투 파이썬] 8장 - 정규표현식: 정규 표현식 시작하기 본 글은 '점프 투 파이썬(박응용)'을 바탕으로 공부한 내용을 정리한 글입니다.정규 표현식(regular expression): 문자열의 패턴을 표현하는 특별한 문법정규 표현식의 기초, 메타 문자메타 문자: 문자의 본래 의미가 아니라 특별한 의미를 가진 문자정규 표현식에 사용하면 특별한 의미를 갖게 되는 메타 문자들# . ^ $ * + ? { } [ ] \\ | ( )[ ] 문자 - 문자 클래스문자 클래스: 이 중에서 아무거나 하나라는 의미e.g. [abc]: a, b, c 중 하나a: 매치됨before: 매치됨done: 매치되지 않음범위 지정하기 - -(하이픈) 사용법[a-z]: 모든 소문자 알파벳[a-zA-Z]: 모든 알파벳(대, 소문자 모두)[0-9]: 모든 숫자(0부터 9까지)[가-힣]: 모든 한.. 2025. 8. 28.
[점프 투 파이썬] 7장 - 파이썬 날아오르기: type annotation(타입 어노테이션) 본 글은 '점프 투 파이썬(박응용)'을 바탕으로 공부한 내용을 정리한 글입니다. type annotation: 변수, 함수에 타입 지정동적 언어와 정적 언어동적 프로그래밍 언어: 프로그램 실행 중 변수의 타입을 동적으로 바꿀 수 있음 → 유연한 코딩 가능, 비교적 깔끔한 소스 코드 작성 but 타입 잘못 사용한 버그 확률 upa = 1print(type(a)) # a = "1"print(type(a)) # 정적 프로그래밍 언어: 한 번 변수에 타입 지정 → 지정한 타입 외 다른 타입 사용 불가// javaint a = 1;a = "1" // Compile error 발생type annotation변수에 타입 지정num: int = 1name: str = "홍길동"nums: list = [1, 2, 3]함.. 2025. 8. 27.
[점프 투 파이썬] 7장 - 파이썬 날아오르기: 이터레이터와 제너레이터 본 글은 '점프 투 파이썬(박응용)'을 바탕으로 공부한 내용을 정리한 글입니다.이터레이터iterator: 데이터를 하나씩 순서대로 꺼내올 수 있는 객체즉, next() 함수를 사용하여 값을 하나씩 가져올 수 있고모든 값을 가져오면 StopIteration 예외 발생for, next()로 그 값을 한 번 읽으면 그 값을 다시는 읽을 수 없음iterable(반복 가능) object ≠ iteratoriterable 객체는 상태 가지지 X → iteration 할 때마다 현재 상태 기억하는 새로운 iterator 객체 만듦iterator 객체는 상태(== 현재 위치) 기억 → iteration 하면 멈췄던 곳에서 다시 시작예를 들어, for-loop은 __iter__ 호출해 iterator 객체 얻음 → 그 .. 2025. 8. 27.
[점프 투 파이썬] 7장 - 파이썬 날아오르기: 클로저와 데코레이터 본 글은 '점프 투 파이썬(박응용)'을 바탕으로 공부한 내용을 정리한 글입니다.클로저클로저: 외부 함수의 변수를 기억하는 내부 함수. 즉, 함수가 생성될 때의 환경(변수 값)을 기억하는 함수클래스 사용하기class Mul: def __init__(self, m): self.m = m """ 기본적인 방법 -> __call__ 메서드 이용해 개선 def mul(self, n): return self.m * n """ """ __call__: Mul class로 만든 객체에 인수를 전달하여 바로 호출 """ def __call__(self, n): return self.m * n if __name__ == "__main__": mul3 = Mul(3) mul5 = Mul(5) print.. 2025. 8. 27.
[점프 투 파이썬] 7장 - 파이썬 날아오르기: 유니코드 본 글은 '점프 투 파이썬(박응용)'을 바탕으로 공부한 내용을 정리한 글입니다.파이썬과 유니코드유니코드: 문자 ↔ 숫자 1:1 대응시키는 전세계 표준인코딩 하기인코딩: 유니코드 문자열 → 바이트 문자열로 바꾸는 것# 유니코드 문자열 -> 바이트 문자열a = "Life is too short"b = a.encode('utf-8') # default='utf-8'print(b) # b'Life is too short'print(type(b)) # 디코딩 하기디코딩: 바이트 문자열 → 유니코드 문자열a = '한글'b = a.encode('utf-8')print(b) # b'\\xed\\x95\\x9c\\xea\\xb8\\x80'print(b.decode('utf-8')) # 한글c = a.encode('euc.. 2025. 8. 27.