문자열은 char 형을 저장하는 List라고 생각하면 됩니다.
단, 한번 저장된 내용을 변경 할 수는 없습니다.
인덱스 연산자 [ ] 를 이용하여 특정 위치의 문자 1개만 가져올 수가 있습니다만,
이미 한번 저장된 문자열중 일부 또는 전체를 바꾼다거나, 다른 문자열을 붙인다던지 하는 것은 허용되지 않습니다.
str
= 'Luna the Star'
letter
= str[3]
print(letter)
|
문자열 중 그 일부분만을 추출하는 Substring 은 List의 일부분을 반환하는 연산과 같은 방법을 사용합니다.
sub1
= str[:3] #'Luna'
sub2
= str[2:7] #'na the'
sub3 = str[9:] #'Star'
|
2. 문자열 길이 구하기
len 함수를 이용하여 구할 수 있습니다.
n =
len(str)
print(n) # 13
|
이걸 이용하여 문자열에서 한 글자씩 추출하는 운행법(traversal)은 다음과 같이 할 수 있습니다.
i =
0
while i
< len(str):
letter = str[i]
print(letter)
i += 1
|
for를 이용하는 방법은 훨씬 간단합니다.
for c in
str:
print(c)
|
3. in 연산자
좌항의 문자열이 우항의 문자열에 포함되어 있다면 True 아니면 False의 결과값을 반환합니다.
>>>
'un' in str
True
>>>
'Un' in str
False
|
4. string method
>>>
type(str)
<class
'str'>
>>>
dir(str)
['__add__',
'__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__',
'__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__',
'__gt__', '__hash__', '__init__', '__iter__', '__le__', '__len__', '__lt__',
'__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__',
'__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__',
'__subclasshook__', 'capitalize', 'casefold', 'center', 'count', 'encode',
'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum',
'isalpha', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric',
'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower',
'lstrip', 'maketrans', 'partition', 'replace', 'rfind', 'rindex', 'rjust',
'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip',
'swapcase', 'title', 'translate', 'upper', 'zfill']
>>>
help(str.startswith)
Help
on built-in function startswith:
startswith(...)
method of builtins.str instance
S.startswith(prefix[, start[, end]]) -> bool
|
dir 을 이용하여 사용가능한 method 확인이 가능하며,
help를 이용하여 해당 method의 사용법 확인이 가능합니다.
5. string parsing
find 함수를 이용하여 특정 char 또는 string 의 위치를 찾아내서 인덱스 연산자의 부분집합 [ : ] 을 이용하여 추출하면 됩니다.
find 연산자의 두번째 인자로 찾을 시작위치 설정이 가능합니다.
(다른 언어들의 string find 함수와 같습니다.)
pos1
= str.find(' ')
print(pos1)
#4
str1
= str[:pos1 - 1]
print(str1)
#'Luna'
pos2
= str.find(' ', pos1 + 1)
print(pos2)
#8
str2
= str[pos2+1:]
print(str2) #'Star'
|
6. 형식 연산자 (format operator)
다른 언어의 format과 많이 다르지 않습니다.
문자열 내에 %d (정수형) , %g(실수형), %s(문자열) 을 섞어서 표현한 다음 % 연산자 뒤에 순서대로 변수를 나열해주면 됩니다. 변수가 1개 이상일 경우 괄호 ( ) 안에 넣으면 됩니다.
fstr
= '%s , %d year , %g percent.' % ('Luna',
1977, 85.7)
print(fstr) #
'Luna , 1977 year , 85.7 percent.'
|
연습문제 05
'X-DSPAM-Confidence: 0.8475'문자열에서 find 를 이용하여 ':'':'의 위치를 찾은 다음 그 다음에 있는 float를 부동 소수형의 변수에 저장하세요.
댓글 없음:
댓글 쓰기