문자열 조작
이스케이프 문자
이스케이프 문자는 백슬래시 \ 뒤에 삽입하려는 문자를 입력하여 생성됩니다.
| 이스케이프 문자 | 출력 결과 |
|---|---|
\' | 작은따옴표 |
\" | 큰따옴표 |
\t | 탭 |
\n | 줄 바꿈 (새 줄) |
\\ | 백슬래시 |
\b | 백스페이스 |
\ooo | 8 진수 값 |
\r | 캐리지 리턴 |
# 이스케이프 문자: 백슬래시를 사용하여 특수 문자 삽입
# \n = 줄 바꿈, \' = 작은따옴표
print("Hello there!\nHow are you?\nI\'m doing fine.")
Hello there!
How are you?
I'm doing fine.
원시 문자열 (Raw strings)
원시 문자열은 모든 이스케이프 문자를 완전히 무시하고 문자열에 나타나는 모든 백슬래시를 그대로 출력합니다.
# 원시 문자열 (r 접두사): 백슬래시를 리터럴 문자로 취급
print(r"Hello there!\nHow are you?\nI\'m doing fine.") # \n이 문자 그대로 출력됨
Hello there!\nHow are you?\nI\'m doing fine.
원시 문자열은 주로 정규 표현식 정의에 사용됩니다.
로그인하여 이 퀴즈에 답하고 학습 진행 상황을 추적하세요
r로 접두사가 붙은 문자열) 은 어떤 역할을 합니까?여러 줄 문자열 (Multiline Strings)
print(
"""Dear Alice,
Eve's cat has been arrested for catnapping,
cat burglary, and extortion.
Sincerely,
Bob"""
)
Dear Alice,
Eve's cat has been arrested for catnapping,
cat burglary, and extortion.
Sincerely,
Bob
문자열 인덱싱 및 슬라이싱
H e l l o w o r l d !
0 1 2 3 4 5 6 7 8 9 10 11
인덱싱 (Indexing)
# 문자열 인덱싱: 위치 (0 부터 시작) 로 문자에 접근
spam = 'Hello world!'
spam[0] # 첫 번째 문자 반환: 'H'
'H'
spam[4]
'o'
spam[-1]
'!'
슬라이싱 (Slicing)
# 문자열 슬라이싱: [시작:끝] 구문을 사용하여 부분 문자열 추출
spam = 'Hello world!'
spam[0:5] # 인덱스 0 부터 4 까지의 문자 반환: 'Hello'
'Hello'
spam[:5]
'Hello'
spam[6:]
'world!'
spam[6:-1]
'world'
spam[:-1]
'Hello world'
spam[::-1]
'!dlrow olleH'
로그인하여 이 퀴즈에 답하고 학습 진행 상황을 추적하세요
spam[::-1]은 문자열에 대해 어떤 작업을 수행합니까?fizz = spam[0:5]
fizz
'Hello'
in 및 not in 연산자
'Hello' in 'Hello World'
True
'Hello' in 'Hello'
True
'HELLO' in 'Hello World'
False
'' in 'spam'
True
'cats' not in 'cats and dogs'
False
upper(), lower() 및 title()
문자열을 대문자, 소문자 및 제목 케이스로 변환합니다:
greet = 'Hello world!'
greet.upper()
'HELLO WORLD!'
greet.lower()
'hello world!'
greet.title()
'Hello World!'
isupper() 및 islower() 메서드
문자열이 대문자 또는 소문자인지 평가한 후 True 또는 False를 반환합니다:
spam = 'Hello world!'
spam.islower()
False
spam.isupper()
False
'HELLO'.isupper()
True
'abc12345'.islower()
True
'12345'.islower()
False
'12345'.isupper()
False
isX 문자열 메서드
| 메서드 | 설명 |
|---|---|
| isalpha() | 문자열이 오직 문자로만 구성되어 있으면 True를 반환합니다. |
| isalnum() | 문자열이 오직 문자와 숫자로만 구성되어 있으면 True를 반환합니다. |
| isdecimal() | 문자열이 오직 숫자로만 구성되어 있으면 True를 반환합니다. |
| isspace() | 문자열이 오직 공백, 탭, 줄 바꿈 문자로만 구성되어 있으면 True를 반환합니다. |
| istitle() | 문자열이 오직 첫 글자는 대문자이고 나머지는 소문자인 단어들로만 구성되어 있으면 True를 반환합니다. |
startswith() 및 endswith()
'Hello world!'.startswith('Hello')
True
'Hello world!'.endswith('world!')
True
'abc123'.startswith('abcdef')
False
'abc123'.endswith('12')
False
'Hello world!'.startswith('Hello world!')
True
'Hello world!'.endswith('Hello world!')
True
로그인하여 이 퀴즈에 답하고 학습 진행 상황을 추적하세요
startswith()은 무엇을 반환합니까?True를 반환하고, 그렇지 않으면 False를 반환합니다join() 및 split()
join()
join() 메서드는 리스트, 딕셔너리, 튜플 또는 집합과 같은 반복 가능한 (iterable) 객체의 모든 항목을 가져와 문자열로 결합합니다. 구분자를 지정할 수도 있습니다.
''.join(['My', 'name', 'is', 'Simon'])
'MynameisSimon'
', '.join(['cats', 'rats', 'bats'])
'cats, rats, bats'
' '.join(['My', 'name', 'is', 'Simon'])
'My name is Simon'
'ABC'.join(['My', 'name', 'is', 'Simon'])
'MyABCnameABCisABCSimon'
split()
split() 메서드는 string을 list로 분할합니다. 기본적으로 공백을 사용하여 항목을 구분하지만, 원하는 다른 문자를 설정할 수도 있습니다:
'My name is Simon'.split()
['My', 'name', 'is', 'Simon']
'MyABCnameABCisABCSimon'.split('ABC')
['My', 'name', 'is', 'Simon']
'My name is Simon'.split('m')
['My na', 'e is Si', 'on']
' My name is Simon'.split()
['My', 'name', 'is', 'Simon']
' My name is Simon'.split(' ')
['', 'My', '', 'name', 'is', '', 'Simon']
로그인하여 이 퀴즈에 답하고 학습 진행 상황을 추적하세요
split()을 호출하면 무엇이 반환됩니까?rjust(), ljust() 및 center() 를 사용한 텍스트 정렬
'Hello'.rjust(10)
' Hello'
'Hello'.rjust(20)
' Hello'
'Hello World'.rjust(20)
' Hello World'
'Hello'.ljust(10)
'Hello '
'Hello'.center(20)
' Hello '
rjust() 및 ljust()의 선택적 두 번째 인수는 공백 문자 외에 채울 문자를 지정합니다:
'Hello'.rjust(20, '*')
'***************Hello'
'Hello'.ljust(20, '-')
'Hello---------------'
'Hello'.center(20, '=')
'=======Hello========'
strip(), rstrip(), 및 lstrip() 을 사용한 공백 제거
spam = ' Hello World '
spam.strip()
'Hello World'
spam.lstrip()
'Hello World '
spam.rstrip()
' Hello World'
spam = 'SpamSpamBaconSpamEggsSpamSpam'
spam.strip('ampS')
'BaconSpamEggs'
Count 메서드
적용되는 문자열에서 주어진 문자 또는 부분 문자열의 발생 횟수를 셉니다. 선택적으로 시작 및 끝 인덱스를 제공할 수 있습니다.
sentence = 'one sheep two sheep three sheep four'
sentence.count('sheep')
3
sentence.count('e')
9
# 문자열 시작부터 6 번째 문자 이후의 e 개수를 반환
sentence.count('e', 6)
8
sentence.count('e', 7)
7
Replace 메서드
주어진 부분 문자열의 모든 발생을 다른 부분 문자열로 대체합니다. 교체 횟수를 제한하기 위해 선택적으로 세 번째 인수를 제공할 수 있습니다. 새 문자열을 반환합니다.
text = "Hello, world!"
text.replace("world", "planet")
'Hello, planet!'
fruits = "apple, banana, cherry, apple"
fruits.replace("apple", "orange", 1)
'orange, banana, cherry, apple'
sentence = "I like apples, Apples are my favorite fruit"
sentence.replace("apples", "oranges")
'I like oranges, Apples are my favorite fruit'
로그인하여 이 퀴즈에 답하고 학습 진행 상황을 추적하세요
replace() 메서드는 무엇을 반환합니까?None을 반환합니다