Notice : 해당 자료가 저작권등에 의해서 문제가 있다면 바로 삭제하겠습니다.
빠르게 활용하는 파이썬 3.2 프로그래밍 – 1장 파이썬 개요 및 설치, 2장 자료형 및 연산자
빠르게 활용하는 파이썬 3.2 프로그래밍 – 3장 함수
빠르게 활용하는 파이썬 3.2 프로그래밍 – 4장 제어
빠르게 활용하는 파이썬 3.2 프로그래밍 – 5장 클래스
빠르게 활용하는 파이썬 3.2 프로그래밍 – 6장 모듈
빠르게 활용하는 파이썬 3.2 프로그래밍 – 7장 예외처리
빠르게 활용하는 파이썬 3.2 프로그래밍 – 8장 입출력
빠르게 활용하는 파이썬 3.2 프로그래밍 – 10장 문자열이야기
빠르게 활용하는 파이썬 3.2 프로그래밍 – 11장 날짜이야기
빠르게 활용하는 파이썬 3.2 프로그래밍 – 12장 숫자이야기
빠르게 활용하는 파이썬 3.2 프로그래밍 – 13장 파일 시스템을 자유자재로
빠르게 활용하는 파이썬 3.2 프로그래밍 – 14장 데이터베이스
▣ 10장 문자열 이야기
10.1 문자열 다루기
– str.capitalize() : 첫문자를 대문자로
– str.count(keyworf, [start, [end]]) ; keyword가 몇번 포함되어있는지(start, end 는 슬라이싱)
– str.encode([encoding, [errors]]) : 인코딩
– str.endswith(suffix[, start[, end]]) : 문자열이 suffix 으로 끝나면 True
– str.expandtabs([tabsize]) : 텝을 공백으로 치환
– str.find(sub[, start[, end]]) : 문자열의 keyword가 나타나는 첫번째 인덱스 반환, 못찾을 경우 -1
– str.index(sub[, start[, end]]) : find() 메소드와 동일, 못찾을 경우 ValueError 예외 발생
– str.isalnum() : 알파벳과 숫자로 구성 되어있으면 True
– str.isalpha() : 알파벳으로만 구성 되어있으면 True
– str.islower() : 모두 소문자이면 True
– str.isspace() : 모두 공백문자이면 True
– str.istitle() : 모든 문자열이 title 스타일이면 True(title 스타일 – 단어마다 첫글자가 대문자)
– str.isupper() : 모두 대문자이면 True
– str.isdecimal(), str.isdigit() : 모두 10진수이면 true
– str.isnumeric() : 숫자만으로 구성 되어있으면 True
– str.isidentifier() : 식별자인 경우에 True(식별자 – ‘a-z’또는 ‘A-Z’, ‘숫자’ _ 로 구성)
– str.isprintable() : 프린트가 가능한 경우 True
– str.join(iterable) : 순환가능한 입력인 시퀀스형 변수를 지정된 문자열로 연결해서 반환
– str.lower() : 모든 영문자를 소문자로 변환
– str.lstrip([chars]) : 문자열의 왼쪽을 잘라냄
– static str.maketrans(x[, y[, z]]) : translate() 함수에 쓰일 번역용 맵을 반환
– str.partition(sep) : 문자열을 sep으로 나눠줌
– str.replace(old, new[, count]) : old를 new 로 대체
– str.rfind(sub[, start[, end]]) : 문자열을 뒤에서 부터 조사해서 sub가 나타나는 첫번째 인덱스를 반환. 못찾으면 -1
– str.rindex(sub[, start[, end]]) : rfind() 메소드와 동일, 못찾을 경우 ValueError 예외 발생
– str.rpartition(sep) : 문자열을 뒤에서부터 조사해서 sep으로 나눔, 튜플반환
– str.rsplit(sep=None, maxsplit=-1) : 문자열을 뒤에서부터 조사해서 sep으로 나눔
– str.rstrip([chars]) : 문자열의 오른쪽을 잘라냄
– str.split(sep=None, maxsplit=-1) : 문자열을 앞에서부터 조사해서 sep으로 나눔
– str.splitlines([keepends]) : 라인으로 되어있는 문자열을 분리
– str.startswith(prefix[, start[, end]]) : prefix으로 문자열이 시작하면 True
– str.strip([chars]) : 문자열의 양쪽 끝을 잘라냄
– str.swapcase() : 소문자는 대문자로, 대문자는 소문자로 변경
– str.title() : title 스타일로 변환
– str.upper() : 대문자로 변환
http://docs.python.org/3.3/library/stdtypes.html#string-methods
카이사르(caesar) 암호법 예제
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
SHIFT=1 def encrypt( raw ): ret = '' for char in raw: ret+=chr( ord(char)+SHIFT ) return ret def decrypt( raw ): ret = '' for char in raw: ret+=chr( ord(char)-SHIFT ) return ret if __name__=="__main__": raw = input("input : ") encrypted = encrypt( raw ) print("encrypted : " + encrypted) decrypted = decrypt( encrypted ) print("decrypted : " + decrypted) |
10.2 정규표현식(re) 모듈
문자나 문자의 패턴을 나타내기 위한 특수문자
. : 개행문자를 제외한 문자 1자
^ : 문자의 시작
$ : 문자의 끝
[] : 문자의 집합
| : or 연산(또는)
() : 정규식 그룹
* : 문자가 0회 이상 반복
+ : 문자가 1회 이상 반복
? : 문자가 0 또는 1회 반복
{m} : 문자가 m회 반복
{m,n} : 문자가 m회에서 n회까지 반복되는 모든경우
{m.} : 문자가 m회 이상 반복
자주사용하는 이스케이프 문자열
\w : 유니코드에서 _ 숫자를 포함한 표현가능한 문자열 (ASCII의 경우 [a-zA-Z0-9_]와 동일)
\W : \w를 제외한 나머지 문자(ASCII의 경우 [^a-zA-Z0-9_]와 동일)
\d : [0-9] 를 포함하는 모든 숫자(ASCII의 경우 [0-9]와 동일)
\D : \d를 제외한 나머지 문자(ASCII의 경우 [^0-9]와 동일)
\s : 공백문자 (ASCII의 경우 [ \t\n\r\f\v]와 동일)
\S : \s를 제외한 나머지 문자(ASCII의 경우 [^ \t\n\r\f\v]와 동일)
\b : 단어의 시작과 끝의 빈공백
\B : 단어의 시작과 끝이 아닌 빈공백
\\ : 역슬래시(\)
\[숫자] : 지정된 숫자만큼 일치하는 문자열
\A : 문자열의 시작
\Z : 문자열의 끝
– re.search(pattern, string, flags=0) : string 전체에 대한 pattern 이 존재하는지 검사해 MatchObject 반환
– re.match(pattern, string, flags=0) : string이 시작하는 부분부터 pattern 이 존재하는지 검사해 MatchObject 반환
– re.split(pattern, string, maxsplit=0, flags=0) : pattern을 구분자로 string을 분리
– re.findall(pattern, string, flags=0) : string 에서 pattern이 매칭되는 모든경우를 찾아 리스트로 반환
– re.finditer(pattern, string, flags=0) : string 에서 pattern이 매칭되는 모든 경우를 찾아 이터레이터 객체로 반환
– re.sub(pattern, repl, string, count=0, flags=0) : string 에서 pattern이 매칭되는 부분에 대해 repl으로 대체 해서 결과문자열 반환
– re.subn(pattern, repl, string, count=0, flags=0) : re.sub와 동일, 단, 결과를 튜플로 반환
– re.escape(string) : 영문자, 숫자가 아닌문자열에 대해 백슬래시 문자를 추가
– re.compile(pattern, flags=0) : pattern을 컴파일해서 정규표현식 객체로 반환
http://docs.python.org/3.3/library/re.html#module-re
Raw 문자열 표기법
일반적인경우 이스케이프 문자를 표현하기 위해서는 \사용.
문자열 앞에 r을 붙여 \ 처리를 하지 않고 일반문자와 동일하게 처리
greedy 방식과 lazy 방식
greedy 방식 : 조건을 만족하는 한 가장 긴 문자열 선택 (.*)
lazy 방식 : 조건을 만족하는 한 가장 짧은 문자열 선택 (.*?)
Match 객체
search(), match() 결과로 반환
– match.group([group1, …]) : 매칭된 문자열 결과으 ㅣ부분집합을 반환
– match.groups(default=None) : 매칭한 결과를 튜플로 반환
– match.groupdict(default=None) : 이름붙여진 매칭결과를 사전형식으로 반환
– match.start([group]) : 매칭된 결과 문자열의 시작 인덱스를 반환
– match.end([group]) : 매칭된 결과 문자열의 마지막 인덱스를 반환
http://docs.python.org/3.3/library/re.html#match-objects