티스토리 뷰
String 변수 만들기
>>> a = '' # 빈 string 만들기
>>> a
''
>>> type(a)
str
>>> b = str()
>>> b
''
>>> type(b)
str

>>> a = 'String'
>>> a
'String'
>>> type(a)
str

숫자로 만들어진 String
은 Integer
가 아님
>>> a = '1'
>>> a
'1'
>>> type(a)
str
>>> b = 1
>>> b
1 # (주의) ''(작은 따옴표)가 없으면 integer 임
>>> type(b)
int

Apostrophe 사용하기
>>> a = "String's" # Apostrophe를 사용하기 위해서는 큰 따옴표를 사용.
>>> a
"String's"
String 변수를 만들 때 큰 따옴표(“”)와 작은 따옴표(‘’) 둘 중 아무거나 사용해도 상관 없으나 PEP8 권고 사항에서는 큰 따옴표를 사용하라고 함.
그러나 아래와 같이 문자열 안에 큰 따옴표를 사용해야 할 경우는 작은 따옴표를 사용
>>> a = 'I told "I like you"'
>>> a
'I told "I like you"'
>>> a = "I told \"I like you\"" # \(backslash)를 사용하면 escape 됨
>>> 'I told "I like you"'
Escape 문자 사용하기
>>> a = 'String\ntab\t' # Escape 문자 사용하기
>>> a
'String\ntab\ttab'
>>> print(a) # 내장 IDE에서는 escape 문자를 처리하지 못하기 때문에 print() 사용
String
tab tab
multiline 사용하기
>>> a = """multiline
multiline
multiline"""
>>> a
'multiline\nmultiline\nmultiline'
>>> print(a)
multiline
multiline
multiline
>>> b = '''multiline
multiline
multiline'''
>>> print(b)
multiline
multiline
multiline
mulitline을 사용하는 예시 중 하나는 HTML 태그를 변수에 저장하기 위함.
>>> a = """<html>
<body>
HTML code
</body>
</html>"""
Raw string 사용하기
>>> a = r'String\ntab\t'
>>> a
'String\ntab\t'
String 연산하기
>>> a = 'Ham'
>>> b = 'burger'
>>> a + b # Concatenate
'Hamburger'
>>> c = 1
>>> a + b + c
TypeError: can only concatenate str (not "int") to str
>>> a * 3 # Repeat
'HamHamHam'
>>> a = "I" ' like' " hamburger" # 이렇게 사용할 수 있으나 잘 사용하지 않음(가독성이 떨어지니까 ㅋ)
>>> a
>>> 'I like hamburger
String 변수는 다른 타입(예: Integer)의 변수와 연산될 수 없음
아래와 같이 형 변환을 하여 연산
>>> s = '42'
>>> i = 1
>>> int(s) + i
43
>>> s = str(i)
'421'
String indexing and slicing
Indexing
>>> a = 'Hello'
>>> a[0] # []을 사용하여 Indexing
'H'
>>> a[1]
'e'
>>> a[-1]
'o'
>>> a[-2]
'l'
첫 글자부터 indexing
하여 가져 올려면 0
부터 시작하고 마지막 글자부터 가져 올려면 -1
부터 시작함 .

Slicing
>>> a = 'Hamburger'
>>> a[:] # 모든 글자 포함
'Hamburger'
>>> a[:3] # 앞 3글자만 포함
'Ham'
>>> a[3:] # 앞 3글자 제외
'burger'
>>> a[1:] # 첫 글자 제외
'amburger'
>>> a[:-1] # 마지막 글자 제외
'Hamburge'
>>> a[1:3]
'am'
>>> a[1:-1] # 첫 글자와 마지막 글자를 제외
'amburge'
>>> a[0:-1] # 마지막 글자 제외
'Hamburge]
[start:end]
이와 같이 처음 자를 곳과 마지막으로 자를 곳을 지정.[strat:]
마지막 자를 곳을 지정하지 않으면 문자열 마지막을 의미.[:end]
처음 자를 곳을 지정하지 않으면 문자열 처음(0
)을 의미.[0:-1]
0은 문자열 첫 문자 앞을 의미하고, -1은 문자열 마지막 문자 앞을 의미.
[start:end:step]
이와 같이 step
을 지정하여 지정한 숫자 만큼 건너뛰고 문자를 가져 올 수 있음.

>>> a = 'sliceofspam'
>>> a[1:-1:2]
'lcosa'
>>> a[::2]
'siefpm'
>>> a[::1]
'sliceofspam'
>>> a[::-1] # reversing
'mapsfoecils'
>>> a[5:1:-1]
'oeci'
a[5:1:-1]
의 경우-1
로 인해서 slicing을 거꾸로 함. 즉 5번 부터 거꾸로 4글자를 가져옴.(예를들어a[1:5]
같은 경우 1번 부터 시작하여 4글자를 가져옴.). 헷갈림 ㅋ
slice()
사용
>>> 'spam'[slice(1, 3)]
'pa'
>>> 'sapm'[slice(None, None, -1)]
'maps'
String formatting
String formatting expressions
'...%s...' % (값)
형식을 사용.
>>> a = 'hamburger'
>>> 'I like a %s' % a # %s는 string을 의미
'I like a hamburger'
%d
는 Decimal을 의미하고 숫자 관련 출력 형식을 조절할 수 있음.
>>> x = 1234
>>> 'integers: %d, %06d' % (x, x)
'integers: 1234, 001234'
Dictionary-Based formatting expressions
>>> '%(qty)d more %(food)s' % {'qty': 1, 'food': 'spam'}
'1 more spam'
String formatting method call
'...{}...'.format(값)
형식을 사용.
# 위치에 따른 치환
>>> a = 'hamburger'
>>> b = 'sandwich'
>>> 'I like a {} and {}'.format(a, b)
'I like a hamburger and sandwich'
>>> 'I like a {0} and {1}'.format(a, b)
'I like a hamburger and sandwich'
>>> 'I like a {1} and {0}'.format(a, b)
'I like a sandwich and hamburger'
# 키워드 치환
>>> template = 'I like a {hamburger} and {sandwich}'
>>> template.format(hamburger='Cheese burger', sandwich='Ham sandwich'
'I like a Cheese burger and Ham sandwich'
# 위 두개 동시 사용
>>> template = 'I like a {0} and {sandwich}'
>>> template.format('Cheese burger', sandwich='Ham sandwich')
'I like a Cheese burger and Ham sandwich'
f-string
formatting
파이썬3.6 부터 지원.
위의 formatting 방식들과 비교 했을 때 가독성이 뛰어남.
string formatting
>>> a = 'hamburger'
>>> b = 'sandwich'
>>> f'I like a {a} and {b}'
'I like a hamburger and sandwich'
>>> f'I like a {b} and {a}'
'I like a sandwich and hamburger'
Dictionary 방식
>>> food = {'hamburger': 'Cheese burger', 'sandwich': 'Ham sandwich'}
>>> f'I like a {food['hamburger']} and {food['sandwich'])'
'I like a Cheese burger and Ham sandwich'
multiline
>>> name = 'John Doe'
>>> age = 32
>>> occupation = 'software engineer'
>>> msg = (
f'Name: {name}\n'
f'Age: {age}\n'
f'Occupation: {occupation}'
)
>>> print(msg)
Name: John Doe
Age: 32
Occupation: software engineer
calling function
>>> def add(x, y):
return x + y
>>> a = 3
>>> b = 4
>>> f'{a} + {b} = {add(a, b)}'
'3 + 4 = 7'
숫자 길이
>>> a = 123
>>> f'{a}, {a:04}, {a:05}'
'123, 0123, 00123'
들여쓰기
기본으로 왼쪽 열에 맞춤이고 설정을 할 수 있음.
>>> a = 123
>>> f'{a:>10}'
' 123'
String 메서드
a = 'string'
를 선언 시 변수 a
는 str()
클래스의 인스턴스가 되기 때문에 str()
클래스의 메서드를 사용할 수 있음.
변수
변수 선언 파이썬은 아래와 같이 변수 선언 >>> a = 1 # int 형 선언 >>> type(a) # type() 빌트인 함수를 사용하여 형 확인 int >>> a 1 >>> a = '1' # ''를 사용하면 str 형이 선언 >>> type(a) str >>> a '1'..
python-world.tistory.com
.find()
문자열에서 주어진 값의 인덱스를 반환. (예: hello 같이 l
이 두개 인 경우 처음 인덱스를 반환). 없으면 -1
을 반환.
>>> a = 'hello'
>>> a.find('he')
1
>>> a.find('o')
4
>>> a = 'String'
>>> a.find('St')
>>> a = ' String '
>>> a.rstrip()
' String'
>>> a.lstrip()
'String '
>>> a.strip()
'String'
>>> a
' String '
.strip()
공백을 제거하여 반환.
>>> a = ' String '
>>> a.rstrip()
' String'
>>> a.lstrip()
'String '
>>> a.strip()
'String'
>>> a
' String '
.rstrip()
는 오르쪽 공백만 제거..lstrip()
는 왼쪽 공백만 제거..strip()
는 양쪽 공백을 제거.
.replace()
문자열을 주어진 값으로 변환하여 반환.
>>> a = 'String....String....String'
>>> a.replace('St', 'b') # 전체를 변환
'bring....bring....bring'
>>> a.replace('St', 'b', 1) # 처음 하나만 변환
'bring....String....String'
>>> a
'String....String....String'
.join()
주어진 값을 구분자로 사용하여 list
안의 값들을 하나의 문자열로 합친 후 반환
>>> ','.join(['eggs', 'sausage', 'ham', 'toast'])
'eggs,sausage,ham,toast'
.split()
주어진 값을 구분자로 사용하여 하나의 문자열을 list
로 분리 후 반환
>>> a = 'eggs,sausage,ham,toast'
>>> a.split(',')
['eggs', 'sausage', 'ham', 'toast']
.isdigit()
String 변수가 1
같은 숫자 이면 True
반환, 아니면 False
반환
>>> a = '1'
>>> a.isdigit()
True
>>> a = 'String'
>>> a.isdigit()
False
.isalpha()
String 변수가 abc
같은 문자 이면 True
반환. 아니면 False
반환
>>> a = 'String'
>>> a.isalpha()
True
>>> a = '1'
>>> a.isalpha()
False
.upper()
문자열을 대문자로 반환
>>> a = 'string'
>>> a.upper()
'STRING'
.lower()
문자열을 소문자로 반환
>>> a = 'STRING'
>>> a.lower()
'string'
.startswith()
문자열이 주어진 값으로 시작하면 True
반환. 아니면 False
반환.
>>> a = 'String'
>>> a.startswith('S')
True
>>> a.startswith('s')
False
.endswith()
문자열이 주어진 값으로 끝나면 True
반환. 아니면 False
반환
>>> a = 'String'
>>> a.endswith('ng')
True
더 알아보기
파이썬3부터 string은 Unicode임.String
은 불변(변경할 수 없음) 타입임. 예를들어 .replace()
메서드로 원하는 값을 변경 시 원래의 문자열은 변경되지 않고 변경된 형태의 문자열이 반환됨. 즉 변경된 문자열을 사용하고 싶으면 별도의 변수에 저장.