반응형

Python 7

정규표현식(3) [Python]

반복 패턴 검사하기 다음은 반복 단어를 찾는 검색 패턴이다. (\w+) \1 이 패턴은 w 문자(글자, 숫자 혹은 언더스코어) 중 1개 이상으로 나열된 단어와 일치한 후 빈칸 다음에 동일한 단어가 반복되는 것을 찾는다. 이 패턴은 다음 문장과는 일치하지 않는다. the dog the와 dog는 모두 단어 조건(\w+)에 부합되지만, 두 번째 단어가 첫 번째 단어와 동일하지 않다. 단어 the는 태그되었지만, 이 경우에는 반복되지 않았다. 반면 다음 문장은 이 패턴과 일치한다. 태그된 부분 문자열인 the가 반복되기 때문이다. the the 동일 패턴을 사용한 전체 코드를 살펴보자. 대상 문자열을 the the로 설정했다. import re s = 'The cow jumped over the the moo..

Python 2022.11.28

정규표현식(2) [Python]

import re pat = r'\d{1,3}(,\d{3})*(\.\d*)?' lst = re.findall(pat, '12,000 monkeys on 55.5 cats.') print(lst) # 출력 # [(',000', ''), ('', '.5')] 역추적, 탐욕적 수량자와 게으른 수량자 정규표현식 예시 import re pat1 = r'(\w|[@#$%^&*!]){8,}$'# 문자와 언더스코어, @#$%^&*! 중 하나를 허용하며, 8개의 문자를 요구한다. pat2 = r'.*\d'# 0개부터 여러 개의 문자와 일치한 후 하나의 숫자와 일치한다. pat3 = r'.*[a-zA-Z]'# 0개부터 여러 개의 문자와 일치(.*)한 후 대문자 혹은 소문자 글자와 일치한다. pat4 = r'.*[@#$%^..

Python 2022.11.17

정규표현식(1) [Python]

정규표현식 더하기 기호(+)는 최소 1개 이상의 문자를 의미한다. ex) ab+c abc abbc abbbc ... 곱하기 기호(*)는 더하기 기호와 비슷하지만 0개의 경우도 포함한다. ex) ab*c ac abc abbc abbbc ... 전화번호를 검증하는 함수를 함수를 작성해보자. 숫자를 의미하는 #을 사용하는 경우 다음과 같이 패턴을 작성할 수도 있다. ###-###-#### 정규표현식 문법으로는 다음과 같이 작성할 수 있다. \d\d\d-\d\d\d-\d\d\d\d 이 경우 역스리시(\)는 이스케이프 시퀀스로 동작하지만 d를 리터럴 문자로 만들지 않고, 특별한 의미를 부여한다. 부분표현식 \d는 하나의 숫자와 일치하는 것을 의미한다. 다음 부분표현식으로도 숫자를 표현할 수 있다. [0-9] 반면..

Python 2022.11.16

리스트 복사 vs 리스트 변수 복사, 얕은 복사 vs 깊은 복사

python은 변수에 int, str, list 등을 변수에 넣을 때 객체를 가르키는 주소를 저장하는 특징을 가지고 있다. 그래서 변수에 자료형을 선언하지 않아도 쉽게 저장할 수 있는 장점을 가지고 있으나 계산할 때는 속도가 느려지는 단점이 있다. 이번 글에는 list를 다룰때 값을 복사하려 했으나 별칭을 만들게 되는 경우를 정리한다. a_list = [2, 5, 10] b_list = a_list b_list.append(100) a_list.append(200) b_list.append(1) print(a_list)# [2, 5, 10, 100, 200, 1] 출력 위와 같이 리스트의 변수를 직접 변수로 받는 경우 새로운 list가 아닌 list의 별칭을 가지게 된다. 1차원 list를 간단하게 값 ..

Python 2022.11.15

str 불리언(is) 메서드[Python]

메서드 이름/문법 테스트 통과 시 True 반환 str.isalnum() 모든 문자가 글자와 숫자로 이루어졌으며, 최소한 문자가 하나 이상 있는 경우 str.isalpha() 모든 문자가 알파벳 글자로 이루어졌으며, 최소한 문자가 하나 이상 있는 경우 str.isdecimal() 1. 모든 문자가 10진수 숫자로 이루어졌으며, 최소한 문자가 하나 이상 있는 경우 2. isdigit과 비슷하지만 유니코드 문자와 사용 str.isdigit() 모든 문자가 10진수 숫자로 이루어졌으며, 최소한 문자가 하나 이상 있는 경우 str.isidentifier() 1. 문자열이 유효한 파이썬 식별자 이름 규칙을 지키고 있는 경우 2. 첫 문자는 반드시 문자나 언더스코어(_)이어야 하며, 각 문자는 글자, 숫자 혹은 언..

Python 2022.11.11

set(세트)[Python]

딕셔너리는 key와 value로 구성되어 있지만 set은 key로만 구성되어 있으며 리스트와는 아래와 같이 다른 특징이 있다. 모든 항목은 유일하다. 모든 항목은 불변 타입이어야 한다. 항목이 정렬되지 않는다. 아래의 set_1과 set_2는 같다. set_1 = {1, 2, 3, 4, 5} set_2 = {5, 4, 3, 2, 1} set은 add와 remove 메서드를 사용하여 내용을 변경할 수 있다. set_1.add(6) set_2.remove(5) set을 생성할 때는 중괄호({})를 사용하여 생성할 수 없다. 중괄호를 사용하면 딕셔너리 생성과 같기 때문이다. 따라서 set()을 사용하여 생성해야 한다. A_set = set() set은 연산자를 사용하여 합집합과 교집합 같은 기능도 사용할 수 ..

Python 2022.11.11

같은 폴더에 들어있는 py파일 import하기

import os import sys from pathlib import Path FILE = Path(__file__).resolve() ROOT = FILE.parents[0] if str(ROOT) not in sys.path: sys.path.append(str(ROOT)) ROOT = Path(os.path.relpath(ROOT, Path.cwd())) __file__ : 실행한 위치에서의 파일의 상대경로를 표시 ex) 경로\파일이름.py Path(__file__).resolve() : 현재 경로 + python 파일이름 FILE : 현재 경로 + python 파일이름 FILE.parents[0] : 현재 경로 sys.path.append : sys.path에 현재 폴더를 추가하여 import..

Python 2022.06.16
반응형