python3 10장 문자열이야기

20
발표자 공지훈 [email protected] 10. 문자열 이야기

Upload: jihoon-kong

Post on 07-Jul-2015

973 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Python3 10장 문자열이야기

발표자 공지훈[email protected]

10. 문자열 이야기

Page 2: Python3 10장 문자열이야기

문자열 다루기

Page 3: Python3 10장 문자열이야기

.

문자열 메서드 사용법 1

Page 4: Python3 10장 문자열이야기

문자열 메서드 사용법 2Endswith(postfix,[start,[end]])postfix로 문자열이 끝나면 true반환 그외 falseStart,end를 지정시 슬라이싱효과1

expandtabs([tabsize]) tab을 공백처리한다. 디폴트 tabsize는 8자

Page 5: Python3 10장 문자열이야기

문자열 메서드 사용법 3find(keyword,[start,[end]])문자열 keyword가 나타내는 첫번째 인덱스를 반환한다. Start,end는 슬라이싱한결과 키워드를 못찾으면 -1 반환

index(keyword,[start,[end]])find()메서드와 동일하지만 못찾아서 에러시 value에러가 발생

Isalnum()알파벳과 숫자로 이뤄져 있으면 True, 다른문자가 하나라도 포함시 false

Page 6: Python3 10장 문자열이야기

문자열 메서드 사용법 3find(keyword,[start,[end]])문자열 keyword가 나타내는 첫번째 인덱스를 반환한다. Start,end는 슬라이싱한결과 키워드를 못찾으면 -1 반환

index(keyword,[start,[end]])find()메서드와 동일하지만 못찾아서 에러시 value에러가 발생

Isalnum()알파벳과 숫자로 이뤄져 있으면 True, 다른문자가 하나라도 포함시 false

Page 7: Python3 10장 문자열이야기

문자열 메서드 사용법 4Isalpha()알파벳으로 이뤄져 있으면 true, 다른문자가 하나라도 있으면 false

Islower()모든 알파벳이 소문자면 true 아니면 false

Isspace()모두 공백문자(스페이스,탭,개행문자)로 이루어져 있으면 true 아니면 false

Page 8: Python3 10장 문자열이야기

문자열 메서드 사용법 5istitle()문자열이 title 스타일인 경우에는 true를 반환하고 그렇지 않으면 false를 반환한다. 즉 문자열의 모든 단어마다 대문자에 이어 소문자가 나와야만 true 를 반환

Isupper()전알파벳이 대문자이면 true, 아님 false

Isdecimal(),isdgit() 10진수로 되있음 true, 다른문자가 섞여 있음 false

Page 9: Python3 10장 문자열이야기

문자열 메서드 사용법 6Isnumeric()숫자여부 를 체크한다 숫자로 이뤄져 있음 true,아님 false

Isidentifire()일반적으로 아스키 환경에서는 ‘a-z’,’A-Z’혹은 ‘_’로 시작하고 ‘a-z’,’A-Z’혹은 ‘_’로 구성되면 식별자로 사용할수 있다.이함수는 식별자의 경우 true아니면 false예제처럼 아스키 뿐아니라 다국어 환경에 대한 결과도 반영

Isprintable()프린트가 가능한경우 true아니면 false유니코드상에 other로 분류된 문자들은 false

Page 10: Python3 10장 문자열이야기

문자열 메서드 사용법 7join(sequence)Iterate 가능한 입력인 sequence 형 변수를 지정된 문자열로 연결하여 반환합니다.

Lower()모든 영문자를 소문자로 변환

lstrip([chars]문자열의 왼쪽을 잘라냅니다. Chars가 지정되지 않으면 공백문자를 제거 있을경우 chars의 모든조합을 제거한다.

Page 11: Python3 10장 문자열이야기

문자열 메서드 사용법 8maketrans(x,[y,[x]])이함수는 translate()함수에 쓰일 번역용 맵을 반환합니다. 입력인자가 하나인 경우에는 사전을 입력해주어야하며,입력인자가 두개인경우에는 길이가 같은 문자열을 입력받아야하고세개인경우 길이가 같은 문자열 둘과 마지막인자로 None을 대체할 문자을 입력 받습니다.

단순히 maketrans()함수만 쓴경우

위에 내용대로 할경우

Page 12: Python3 10장 문자열이야기

문자열 메서드 사용법 9partition(separator)문자열을 separator로 나눕니다. 결과로는 앞부분,seperator,뒷부분의 세튜플로 반환된다.

replace(old,new,[count])old를 new로 대체한다. Count 를 주면 그만큼만 대체한다.

rfind(keyword,[start,[end]]) 문자열의 뒤부터 검색해서 해당 keyword인덱스 반환 못찾을시 -1 반환

Page 13: Python3 10장 문자열이야기

문자열 메서드 사용법 10strip([chars])문자열의 양쪽끝을 짤라낸다. char가 지정안되있으면 공백문자를 제거하며 있으면 char의 조합제거

Swapcase()대문자는 소문자 소문자는 대문자로

Title()영문자를 타이틀형으로 변환

Upper()영문자를 대문자로

Page 14: Python3 10장 문자열이야기

카이사르 암호법 예제

Page 15: Python3 10장 문자열이야기

정규표현식 문법

특수문자 의미. 개행문자를 제외한 문자 1자를 나타냅니다.

re.DOTALL이 설정되어 있으면 개행을 포함한 문자 1자를 나타냅니다.

^ 문자열의 시작을 나타냅니다.re.MULTILINE이 설정되어 있으면 매라인마다 매치됩니다.

$ 문자열의 종료를 나타냅니다.re.MULTILINE이 설정되어 있으면 매라인마다 매치됩니다.

[] 문자의 집합을 나타냅니다. 예를 들어 [abcd]의 경우 ,’a’,’b’,’c’,’d’중 한문자와 매치됩니다.이렇게 문자의 집합을 나영하는 대신에 [a-d] 처럼 나타낼수도 있습니다. 또한 [^5]와 같이 ‘^’가 ‘[]’안에서 쓰이는 경우에는 ‘5’를 제외한 모든 문자를 나타냅니다.[$]는 문자열의 종료를 나타내는 대신에 순수 ‘$’를 나타냅니다.

| ‘A|B’와 같은 경우 ‘A’혹은 ‘B’를 나타냅니다.(OR연산).

() 괄호안의 정규식을 그룹으로 만듭니다. 직접’(‘,’)’(괄호)를 매칭시키기 위하여 ‘\(‘,’\)’나 ‘[(]’,’[)]’로 나타냅니다.

* 문자가 0회 이상 반복됨을 나타냅니다.

+ 문자가 1회 이상 반복됨을 나타냅니다.

? 문자가 0혹은 1회 반복됨을 나타냅니다.

{m} 문자가 m회 반복됨을 나타냅니다.

{m,n} 문자가 m회부터 n화까지 반복되는 모든경우를 나타냅니다.

{m,} 문자가 m회부터 무한 반복되는 모든경우를 나타냅니다.

Page 16: Python3 10장 문자열이야기

확장 문법

종류 설명\w 유니코드인 경우 숫자,밑줄(‘_’)를 포함하는 모든언어의 표현이 가능한 문자입니다. 아스키 코드이면

‘[a-zA-Z0-9]’

\W 유니코드인경우 숫자,밑줄과 표현 가능한 문자를 제외한 나머지 문자입니다. 아스키코드의 경우 ‘[^a-zA-Z0-9_]’과 동일합니다.

\d 유니코드인 경우 [0-9]를 포함하는 모든 숫자입니다. 아스키 코드인경우 [0-9]와 동일합니다.

\D 유니코드인 경우 숫자를 제외한 모든 문자입니다. 아스키 코드인 경우 [^0-9]와 동일합니다.

\s 유니코드인 경우 [\t\n\r\f\v]를 포함하는 공백문자입니다. 아스키 코드 인경우 [\t\n\r\f\v]와 동일합니다.

\S 유니코드인 경우 공백문자를 제외한 모든 문자입니다. 아스키 코드인 경우 [^ \t\n\r\f\v]과 동일합니다.

\b 단어의 시작과 끝의 빈공백입니다.

\B 단어의 시작과 끝이 아닌 빈공백입니다.

\\ 역슬래쉬(\) 문자 자체를 의미합니다.

\[숫자] 지정된 숫자만큼 일치하는 문자열을 의미합니다.

\A 문자열의 시작입니다.

\Z 문자열의 끝입니다.

Page 17: Python3 10장 문자열이야기

re모듈함수

결과로 match 객체를 반환합니다.

문자열의 처음부터 검색 만약에 중간이후로 해당 검색어가 있다면 false반환

문자열을 전체적으로 검색

:과 공백제거 하고 분리

단어 공백 : 등 모든요소가 분리됨

두개의 요소까지만 분리되고 공백과 : 제거

Page 18: Python3 10장 문자열이야기

결론

매칭되는 문자열에 이름을 부여

user_number이름에 해당하는 시작 인덱스

검색된 모든 문자열에 대해서 사전형태로 반환합니다.

user_number에 해당하는 문자열

정규식을 검증을 위한다면 이렇게

정규식을 이용해서 원하는 결과를 반환하고 싶다면 아래처럼

Page 19: Python3 10장 문자열이야기

Q&A

Page 20: Python3 10장 문자열이야기

감사합니다.