[Day 5] 파이썬으로 데이터 다루기

2021. 1. 22. 18:11·AI/부스트 캠프 AI tech

[Day5] 파이썬으로 데이터 다루기

  • File / Exception / Log Handling

    • https://n-brogrammer.tistory.com/39
  • Python data handling

    • https://n-brogrammer.tistory.com/40

 

중요

정규식

정규 표현식의 기초, 메타 문자

그 문자가 가진 뜻이 아닌 특별한 용도로 사용하는 문자

. ^ $ * + ? { } [ ] \ | ( )

 

문자 클래스 []

문자 클래스로 만들어진 정규식은 "[ ] 사이의 문자들과 매치"라는 의미를 갖는다.

문자 클래스를 만드는 메타 문자인 [ ] 사이에는 어떤 문자도 들어갈 수 있다.

 

정규 표현식이 [abc]라면 이 표현식의 의미는 "a, b, c 중 한 개의 문자와 매치"를 뜻한다. 즉, 각각의 문자 하나씩 or로 연결 되어 있다고 생각하면 된다. 이해를 돕기 위해 문자열 "a", "cat", "dude"가 정규식 [abc]와 어떻게 매칭되는지 보면,

  • 'a'는 정규식과 일치하는 문자 'a'가 매칭
  • 'cat'은 정규식 'c'와 매칭
  • 'dude'는 정규식 a,b,c중 하나도 매칭되는것이 없다

 

[]안에 -을 사용하면 두 문자 사이의 범위를 의미 한다. 이때 범위가 맞는 문자여야 한다.

[0-9]는 [0123456789]와 동일한 의미를 가지게 된다.

자주 사용하는 문자 클래스

  • \d - 숫자와 매치, [0-9]와 동일한 표현식이다.
  • \D - 숫자가 아닌 것과 매치, [^0-9]와 동일한 표현식이다.
  • \s - whitespace 문자와 매치, [ \t\n\r\f\v]와 동일한 표현식이다. 맨 앞의 빈 칸은 공백문자(space)를 의미한다.
  • \S - whitespace 문자가 아닌 것과 매치, [^ \t\n\r\f\v]와 동일한 표현식이다.
  • \w - 문자+숫자(alphanumeric)와 매치, [a-zA-Z0-9_]와 동일한 표현식이다.
  • \W - 문자+숫자(alphanumeric)가 아닌 문자와 매치, [^a-zA-Z0-9_]와 동일한 표현식이다.

 

Dot(.)

.메타 문자는 줄바꿈 문자인 \n을 제외한 모든 문자와 매칭.

a.b  → 'a'+ 모든 문자 + 'b'와 매칭
a[.]b → a.b와 매칭

여기서 []메타 문자를 사용하면 .은 순수 문자 그 자체로 인식하게 된다.

 

반복(*), 반복(+)

  1. *메타 문자가 나온 바로 앞에 있는 문자가 (0~무한대)반복 될 수 있다는 의미
  1. +메타 문자가 나온 바로 앞에 있는 문자가 (1~무한대)반복 될 수 있다는 의미

 

반복({m,n}, ?)

  1. {m} : 해당 메타 문자 앞에 나온 문자가 반드시 m회 반복을 의미
  2. {m,n}: 해당 메타 문자 앞에 나온 문자가 m~n회 반복을 의미
  3. ?: 해당 메타 문자 앞에 나온 문자가 있어도되고 없어도 되는걸 의미 {0,1}과 같은의미이다.

 

정규식을 이용한 문자열 검색

  • match(): 문자열의 처음부터 정규식과 매치되는지 조사한다.
  • search(): 문자열의 처음부터 정규식과 매치되는지 조사한다.
  • findall(): 정규식과 매치되는 모든 문자열(substring)을 리스트로 돌려준다.
  • finditer(): 정규식과 매치되는 모든 문자열(substring)을 반복 가능한 객체로 돌려준다.

findall함수를 제외하고 나머지 함수들의 리턴값은 match 객체를 반환한다.

 

match 객체의 메서드

  • group(): 매치된 문자열을 돌려준다.
  • start(): 매치된 문자열의 시작 위치를 돌려준다.
  • end(): 매치된 문자열의 끝 위치를 돌려준다.
  • span(): 매치된 문자열의 (시작, 끝)에 해당하는 튜플을 돌려준다.

 

참고자료

  • https://wikidocs.net/4308

 

 

피어세션

  • namespace 와 scope 차이
  • ref : https://docs.python.org/3/tutorial/classes.html#tut-scopeexample:~:text=9.2.1. Scopes and Namespaces Example

    • nonlocal은 scope_test안에 선언
    • global은 함수 최상단 namespace에 선언
  • 월요일까지 깃공부해오기 - 몰랐던 부분 학습정리처럼 정리해오기

  • morsecode.py 코드리뷰

 

'AI > 부스트 캠프 AI tech' 카테고리의 다른 글

[Day9] Pandas II,확률론  (0) 2021.01.28
[Day8] Pandas I,딥러닝 학습방법 이해하기  (0) 2021.01.27
[Day7] 경사하강법  (0) 2021.01.26
[Day6] Numpy/벡터/행렬  (0) 2021.01.25
[Day4] 파이썬 기초 문법III  (0) 2021.01.21
[Day3] 파이썬 기초 문법II  (0) 2021.01.20
[Day 2] 파이썬 기초 문법  (0) 2021.01.19
파이썬/AI 개발환경 준비  (0) 2021.01.18
'AI/부스트 캠프 AI tech' 카테고리의 다른 글
  • [Day7] 경사하강법
  • [Day6] Numpy/벡터/행렬
  • [Day4] 파이썬 기초 문법III
  • [Day3] 파이썬 기초 문법II
N-analyst
N-analyst
  • N-analyst
    개발자CuCu
    N-analyst
  • 전체
    오늘
    어제
  • 공지사항

    • 티스토리에서 원하는 글 찾는 방법
    • 분류 전체보기 (140)
      • 티스토리 (4)
      • 알고리즘 (5)
        • 알고리즘 정리 (1)
        • 백준 (4)
      • 마크다운(Typora) (13)
        • 사용법 (13)
      • 에러 (1)
        • 파이썬 (1)
      • 데이터 분석 (5)
        • python_analysis (3)
        • Machine Learning (2)
      • AI (109)
        • 파이토치로 시작하는 딥러닝 기초 (2)
        • 부스트 캠프 AI tech (41)
        • 이론 (66)
      • 파이썬(python) (1)
        • 기타 (1)
      • 웹 프로그래밍 (1)
        • 설정 팁 (1)
  • 블로그 메뉴

    • 홈
    • 태그
  • 인기 글

  • 최근 글

  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.6
N-analyst
[Day 5] 파이썬으로 데이터 다루기
상단으로

티스토리툴바