Language/Python [python] str 클래스/re 모듈/시간 표현/수학 모듈/데이터베이스
  • 728x90
    반응형

     

     

     

    Python 문법 기초

     


     

     

    목차

       

       

      str 클래스

      문자열을 다루는 기본 클래스 

       

      특별한 모듈을 import할 필요가 없음

       

      🎯 주요 메소드

      • capitalize( ) 첫 문자를 대문자로, 나머지 문자를 소문자 변경
      • count(keyword, [start,. [end]]) Keyword가 포함된 횟수를 반환
      • encode([encoding, [errors]]) 해당 인코딩으로 변경

       

      🔔 예)

       

       

       

       

      str 클래스 - con'd

      🎯 주요 메소드

      • endswith(postfix, [start, [end]]) Postfix 로 문자열이 끝나면 True를 반환
      • expandtabs([tabsize]) 탭을 공백으로 치환
      • find(keyword, [start, [end]]) 문자열 keyword가 나타나는 첫 번째 인덱스를 반환

       

      🔔 예)

       

      🎯 주요 메소드

      • index(keyword, [start, [end]]) find() 메소드와 동일하게 동작 keyword를 찾지 못하는 경우 ValueError 예외 발생
      • isalnum() 알파벳과 숫자로 이루어져 있으면 True를 반환
      • strip([chars]) 문자열의 양쪽 끝을 잘라냄 chars가 지정되지 않으면 공백문자를 제거, 지정되어 있을 경우에는 chars의 모든 조합을 제거

       

      🔔 예)

       

       

       

       

      re(정규 표현식) 모듈

      💡 re모듈이란?

      • 특정한 규칙을 가진 문자열을 표현하는데 사용되는 형식 언어
      • 주어진 패턴으로 문자열을 검색/치환하는데 사용

       

      정규 표현식 문법

       

       

       

       

      re모듈 - con'd

      🎯 정규식 예제

      • 정규식 '^app' 는 'apple and orange'는 매치되지만, 'orange and apple' 는 매치되지 않음
      • 정규식 'ple$'는 'orange and apple'는 매치되지만, 'apple and orange'는 매치되지 않음
      • 정규식 'ap*le'는 'ale', aple', 'apppple'와 같이 p가 0회 이상 반복되는 모든 경우와 매치되지 않음

       

      🎯 주요 모듈 함수

      • re.search(pattern, string[, flags]) string 전체에 대해서 pattern이 존재하는지 검사
      • re.match(pattern, string[, flags]) string 시작부분부터 pattern이 존재하는지 검사
      • re.split(pattern, string[, maxsplit=0]) Pattern을 구분자로 string을 분리하여 리스트로 반환

       

      🔔 예)

       

      정규 표현식 객체

      • 정규식으로 표현된 문장을 매번 다시 분석하지 않고, 컴파일하여 정규표현식 객체를 재활용
      • 동일 패턴을 반복적으로 검색하는 경우 성능 향상

       

      🔔 예)

       

       

       

       

      시간 표현 방법

      📌 컴퓨터에서 시간 표현 방법

      • 타임스탬프(Time Stamp)
      • UTC(Universal Time Coordinated, 협정세계시)
      • 그리니치 평균시
      • LST(Local Standard Time, 지방표준시)
      • 일광절약 시간제(Daylight Saving Time, DTS)

       

      struct_time 시퀀스 객체

      • 사람이 이해하는 표현 방

       

       

       

       

      time 모듈

      📌 시간을 표현하는데 사용

       

      🎯 주요 모듈 함수

      • time.time() 1970년 1월 1일 자정 이후로 누적된 초를 float 단위로 반환
      • time.gmtime([secs]) UTC기준의 struct_time 시퀀스 객체로 반환
      • time.localtime([secs]) 지방표준시 기준의 struct_time 시퀀스 객체를 반환

       

      🔔 예)

       

       

       

      datetime 모듈

      📌 기념일과 같은 날짜, 시간 연산을 위하여 사용

       

      🎯 주요 클래스

      • datetime.data 일반적으로 사용되는 그레고리안 달력(Gregorian Calendar)의 년,월,일을 표현
      • datetime.time 시간을 시, 분, 초, 마이크로 초, 시간대(Time zone)로 표현
      • datetime.datetime date 클래스와 time클래스의 조합으로 구성
      • datetime.timedelta 두 날짜 혹은 시간 사이의 기간을 표현

       

       

       

       

      math(수학) 모듈

      수치 연산 목적

       

      🎯 주요 함수 목록

      • 집계 연산

      sum(iterable[, start]), max(iterable), round(x[, n])

      • 수치 연산

      ceil(x), floor(x)

      • 지수/로그 연산

      pow(x, y), sqrt(x)

      • 삼각 함수 연산

      sin(x), cos(x)

      • 상수

      math.pi, math.e

       

      🔔 예)

       

       

       

       

      factions(분수) 모듈

      유리수를 표현하기 위하여 2.6 버전에 추가

      • 최대 공약수(GCD)를 구하는 모듈 함수
      • 유리수를 나타내는 Fraction 클래스

      🔔 예)

       

       

       

       

       

      decimal(십진수) 모듈

      • 실수를 표현하기 위하여 float 자료형보다 정확한 Decimal 클래스를 제공
      • 양의 무한대(Infinitity), 음의 무한대(-Infinitity), 음의 0(-0), NaN(Not a Number) 표현 가능

       

      🔔 예)

       

       

       

       

      random 모듈

      • 임의의 정수, 실수를 생성
      • 시퀀스 객체 중 임의의 값을 선택

      🔔 예)

       

       

       

      os.path

      📌 Os.path는 파일 경로를 수정하고, 파일의 정보를 다루는 모듈이다.

       

      • abspath(path) : 입력받은 경로를 절대 경로로 바꿔준다.
      • basename(path) : 입력받은 경로에서 파일명을 추출
      • commonprefix(path_list) : 입력받은 경로에서 공통적인 prefix 추출
      • dirname(path) : 폴더 경로를 반환
      • exists(path) : 해당 경로의 존재유무를 반환
      • expanduser(path) : 입력받은 경로 안에 ~ 사용자 디렉터리를 포함한 절대 경로로 반환
      • expandvars(path) : 경로안의 환경변수를 확장해준다
      • getatime(path) : 최근 접근 시간 반환
      • getmtime(path) : 최근 변경 시간 반환
      • getctime(path) : 생성시간을 반환
      • getsize(path) : 파일 크기를 반환
      • isabs(path) : 절대경로 인지 아닌지 검사
      • isfile(path) : 파일인지 아닌지 검사
      • isdir(path) : 폴더인지 아닌지 검사
      • join(path1[, path2 [, …]]) : 입력받은 경로들은 연결
      • normacase(path) : 해당 os에 맞도록 문자열들을 정규화
      • normpath(path) : 경로에대한 정규화
      • split(path) : 폴더부분과 파일부분을 분리
      • splitdrive(path) : 드라이버 부분과 나머지 부분을 분리
      • splitext(path) : 확장자 부분과 그외 부분으로 나눈다

       

       

      glob

      📌 윈도우의 dir 명령어나 리눈그의 ls 명령어와 비슷한 기능을 제공하는 모듈이다. (해당경로 내에서 canon이 포함되어있는 이름 검색)

       

       

       

       

       

      데이터베이스

      📌 SQLite3는 디스크 기반의 가벼운 데이터베이스 라이브러리이며, python에서는 기본적으로 제공되고 있다. 가볍고 별도의 서버를 필요로 하지 않기 때문에 노키아의 maemo나 구글의 안드로이드, 애플의 아이폰에서도 널리 사용되고 있다.

       

       

       

       

      데이터베이스 연결

      📌 데이터베이스를 사용하려면 실제 저장된 파일과 연결해야 한다. 아래의 예제코드는 test.유 파일과 연결된 connection 객체를 생성하는 예제이다. 해당 db파일이 없는 경우, 해당 파일이 생성하게 되며, 파일이 이미 존재하는 경우에는 그 db파일을 그대로 사용한다.

       

       

       

       

       

       

      SQL문 수행

      📌 Connection을 생성했으니, SQL문을 수행하는 법을 알아보도록 한다. 아래 예제를 보면 커서 객체를 생성한 후, 원하는 SQL문을 수행하는 것을 볼 수 있다.

       

       

       

       

       

      레코드 조회

      📌 입력된 데이터를 가져오는 방법으로 Exexcute 메소드를 이용하여 SELECT문을 수행하면, 커서 객체를 이터레이터처럼 이용해 결과를 가져올 수 있다.

       

       

      또한 fetchone은 조회된 결과집합으로부터 하나의 row객체를 가져오며, fetchmany는 여러 개의 결과를, fetchall은 모든 결과를 가져 온다.

       

      아래 예제를 보면 fetch에 대한 동작 방식을 이해할 수 있다.

       

       

       

       

       

      트랜잭션 처리

      📌 앞의 예제를 수행하고 나면 사실 db파일에는 아무런 결과가 저장되어 있지 않다. Commit을 하지 않았기 때문이다.

       

      다음과 같이, commit을 하게되면 다음에 수행할 경우 기존 결과가 db파일에 저장되어 있는 것을 확인 할 수 있다. (commit.db 에 저장)

       

       

      (commit.db 에 저장된 내용을 가져옴)

       

       

       

       

       

      자료형

      📌 SQLite3 에는 NULL, INTEGER, REAL, TEXT, BLOB 의 5가지 자료형이 제공된다. 그에 해당하는 파이썬의 자료형은 아래 표와 같다.

       

      해당 자료형들끼리는 특별한 자료변환이 필요 없이 혼용 가능하다.

       

       

       

       

      OS

      📌 os 모듈에서 제공하는 함수들은 아래와 같다.

       

      • getcwd, chdir : 현재 작업 폴더 위치를 보여줌, 현재 작업 폴더 위치를 변경
      • access : 특정 위치로의 접근이 가능한지 알려준다.
      • listdir : 해당 경로의 파일과 폴더들의 리스트를 반환
      • mkdir : 폴더를 생성
      • makedirs : 폴더를 재귀적으로 모두 생성
      • remove, unlink : 파일삭제
      • rmdir : 폴더 삭제
      • removedirs : 폴더를 재귀적으로 모두 삭제
      • rename : 파일을 변경하거나 이동
      • renames : 이동하면서 폴더를 생성
      • stat : 파일을 정보를 가져옴
      • utime : 파일의 접근시간과 수정시간을 수정
      • walk : 폴더를 순회
      • umask : umask 설정
      • pipe : 프로세스간의 통시에 쓰이는 파이프를 생성
      • fdopen : 파일디스크립트를 이용해 파일 객체를 생성
      • popen : 명령어를 수행하며 파일을 연다
      • getpid : 현제 프로세스의 ID를 알려준다
      • getenv : 환경변수를 반환
      • putenv : 환경변수 설정
      • strerror : 에러코드에 해당하는 에러메시지를 보여준다
      • system : 명령어를 수행
      • startfile : 해당 파일을 지정된 프로그램으로 실행
      • execl, execv : 새로운 프로그램으로 실행

       

       

      sys

      📌 sys모듈은 파이썬 이터프리터와 관련된 정보와 기능을 제공한다.

       

      • argv : 파이썬 스크립트로 넘어온 입력 인자들을 알려줌
      • exc_info : 현재 발생한 예외 정보
      • prefix : 파이썬이 설치된 경로
      • exit : 프로그램 종료
      • getrefcount : 객체의 참조 카운터값을 반환
      • getwindowversion : 현재 윈도우 버전
      • modules : 현재 로딩된 모듈을 알려줌
      • path : 모듈을 찾을 때 참조하는 경로
      • copyright, version : 설치된 파이썬의 저작권과 버전을 알려줌
      • getdefaultencoding : 현재 사용중인 기본문자열 인코딩을 알려줌
      • stdin, stdout, stderr : 표준 입력, 출력, 에러 스트링을 알려줌

       

       

       

       

       

       

      728x90
      반응형
    상단으로