Dolphins의 HelloWorld

Python의 문자열 본문

python

Python의 문자열

돌핀's 2018. 7. 4. 15:41

* 파이썬에서는 문자열을 색인( index)를 통해 접근할 수 있다.


아래의 코드에서 색인을 통해 접근하고 출력하는 모습을 확인할 수 있다.


exp = 'example'
print(exp[0]) #인덱스는 0부터 시작한다.
print(exp[1])
print(exp[5])






* len 함수를 통해 문자열의 길이를 알 수 있다.


아래는 len함수의 활용을 통해 list에서 가장 큰 수를 추출하는 프로그램이다.


mylist = [5,20,3,77,2,1] max = -1 for n in range(len(mylist)): # 0 부터 mylist의 길이 -1 까지 검사한다. if(mylist[n] > max): max = mylist[n] print(max)





* 문자열의 일부를 가져오는 방법 


파이썬에서는 대괄호와 콜론을 통해 문자열의 일부를 가져올 수 있다. 

(다른 언어에서의 substring과 같은 기능이라고 생각하면 될 것이다.)


예를들어


exp = 'HelloMyFriend'


에서 Hello만 뽑아서 출력하고 싶다면


시작 인덱스인 0과 끝나는 인덱스에서 1을 더한 5를 활용하여


print(exp[0:5]) 라는 명령어를 통해 출력해주면 된다.


exp[0:5]라고 할 때 5번째 인덱스는 포함하지 않는다는것을 잘 기억하자.


아래의 코드는 위의 기능을 여러가지로 활용할 수 있는 방법에 대한 것이다.


exp = 'HelloMyFriend' #이 문자열의 길이는 13
print(exp[0:5]) # 결과로 'Hello'가 나옴
print(exp[10:20])
#끝나는 값으로 문자열의 길이보다 더 큰 값을 주었지만
#에러 없이 10번째 문자부터 마지막 문자까지 출력된다.

print(exp[:7]) # 처음부터 6번째 문자까지 출력된다.
print(exp[4:]) # 4번째 문자부터 끝까지 출력된다.





* 특정 문자가 문자열에 포함되어있는지 검사


in 연산자를 통해 특정문자가 문자열에 포함되어있는지 검사할 수 있다. 


간단하므로 아래 예시를 통해 보고 넘어가겠다.


exp = 'HelloMyFriend' print('h' in exp) print('H' in exp) print('d' in exp)





* 사전상 순서 비교


우리에게 익숙한 == , > , < 연산자를 이용해 사전상으로 어떤 문자열이 먼저 나오는지 비교하는것도 가능하다.


exp1 = 'apple' exp2 = 'grape' print(exp1 < exp2) #apple 뒤에 grape가 나오는지 판별




보통 판별이 잘 되지만 대소문자나 특수문자를 섞어서 사용할 경우 잘 동작하지 않을 수도 있다는 점을 주의할 필요가 있다.


* 기타 문자열 함수


str.lower() # 문자열을 소문자로 변환

str.upper() # 문자열을 대문자로 변환

str.rstrip() # 문자열의 우측 공백 삭제

str.lstrip() # 문자열의 좌측 공백 삭제

str.replace(old, new[,count]) #문자열에서 일부 문자들을 원하는 것으로 교체

str.find(sub[, start[, end]]) #문자열에서 찾고자하는 문자를 찾아서 인덱스 반환


예시 코드를 통해 이 함수들이 쓰여지는 모습을 확인해보자.


#문자열 함수 활용

s = 'ABCDEFG'
s = s.lower(); print(s) #소문자로 변환 후 출력
s = s.upper(); print(s) #다시 대문자로 변환 후 출력

index1 = s.find('C'); print(index1) #문자 C의 인덱스 출력
index2 = s.find('EF'); print(index2) #EF가 시작하는 인덱스 출력

exp = '    123456'
exp = exp.replace('123','789'); print(exp) #123을 789로 교체
exp = exp.lstrip(); print(exp) #exp문자열에서 좌측공백 제거

exp2 = 'abc1234@google.com'
print(exp2.startswith('abc')) #exp2문자열이 abc로 시작한는지 검사

#위의 이메일에서 아이디만 추출하기
index = exp2.find('@')
print(exp2[:index])




'python' 카테고리의 다른 글

Python의 list2  (0) 2018.07.05
Python의 파일 입출력  (0) 2018.07.05
Python의 none/ is와 is not  (0) 2018.07.04
Python의 예외처리  (0) 2018.07.04
Python의 for in 반복문과 for in range  (0) 2018.07.01
Comments