Python 문자열
● 문자열
공백이 있지 않는 문자열은 input() 함수를 통해서 입력받을 수 있다.
● 문자열은 1차원 배열과 같다. 문자열에는 인덱스를 사용하여 각각의 문자에 접근할 수 있다.
temp = "apple"
print(temp[0])
→ a 출력
● 문자열은 반복문 없이 print 함수 만을 사용해서 문자열을 출력할 수 있다.
print(temp)
→ apple 출력
● 문자열의 길이는 len() 함수를 사용하여 구할 수 있다.
print(len(temp))
→ 5 출력
● len() 함수는 \n나 공백도 1글자로 인식한다.
print(len("Hello"), len("Hello\n"))
→ 5 6 출력
● 문자열은 입력시 공백을 기준으로 나눠서 입력받을 수 있다.
temp1, temp2 = input().split() ← abc, def 입력
print(temp1)
print(temp2)
→ abc 출력
→ def 출력
● 문자열을 리스트에 넣을 시 2차원 배열과 같이 동작된다. (각각의 문자열은 1차원 배열과 같다)
arr = ["hello", "world", "devwon"]
print(arr[0]) → hello 출력
print(arr[1]) → world 출력
print(arr[2]) → devwon 출력
print(len(arr[0])) → 5 출력
print(len(arr[1])) → 5 출력
print(len(arr[2])) → 6 출력
print(arr[0][0]) → h 출력 (첫 번째 문자열의 첫 번째인 h 출력)
print(arr[1][1]) → o 출력 (두 번째 문자열의 두 번째인 o 출력)
print(arr[2][2]) → v 출력 (세 번째 문자열의 세 번째인 w 출력)
● 공백을 기준으로 문자열을 한줄에 여러개 입력받고자 할때는 split()함수를 사용하면된다.
● 문자열은 + 연산자를 활용하여 붙일 수 있다.
a, b = "Hello", "World"
print(a + b)
→ HelloWorld 출력
변수에 저장할 수 있다.
a, b = "Hello", "World"
a = a + b
print(a)
→ HelloWorld 출력
3개 이상의 문자열을 더 할때는 아래와 같이 코드를 작성할 수 있다.
a, b, c = "Hello", "World", "Python"
addStr = ""
addStr += a
addStr += b
addStr += c
print(addStr)
→ HelloWorldPython 출력
위의 코드는 아래와 같이 반복문과 리스트를 사용하여 간단하게 작성할 수 있다.
a, b, c = "Hello", "World", "Python"
addStr = ""
for i in [a, b, c]:
addStr += i
print(addStr)
→ HelloWorldPython 출력
● join() 함수
sep.join(리스트) 조인 함수는 sep를 기준으로 리스트를 합친다.
"''.join(['a','b','c']) → 'abc'
",''.join(['a','b','c']) → 'a,b,c'
a, b, c = "Hello", "World", "Python"
addStr = "".join([a, b, c])
print(addStr)
→ HelloWorldPython 출력
● 문자열에서 특정 문자 검출
s = 'Hello world'
length = len(s)
check = "없다"
for i in range(length - 1):
if s[i] == 'w' and s[i + 1] == 'o':
check = "있다"
print(check)
위 코드는 s 문자열에서 wo가 연속되는 문자가 포함되어 있는지 확인하여 있으면 있다. 없으면 없다를 출력하는 코드이다.
위 코드는 문자열에 슬라이싱이나 in키워드를 사용하여 훨씬 간결하게 코드를 작성할 수 있다.
● 슬라이싱 활용
s = 'Hello world'
length = len(s)
check = "없다"
for i in range(length - 1):
if s[i:i + 2] == 'wo':
check = "있다"
print(check)
● in 활용
s = 'Hello world'
if 'wo' in s:
print("있다")
else:
print("없다")
in은 True와 False를 반환한다.
● 파이썬에서 문자열은 변환할 수 없는 타입이다.
파이썬에서 문자열을 인덱스 형식으로 접근하면 아래와 같은 오류가 발생한다.
TypeError: 'str' object does not support item assignment
● 문자열 대문자 소문자 변환
문자열명.lower(): 문자열의 알파벳 문자를 모두 소문자로 변경한다.
문자열명.upper(): 문자열의 알파벳 문자를 모두 대문자로 변경한다.
● 문자열 문자(알파벳, 숫자) 여부 확인
.isalpha() : 문자열의 모든 문자가 알파벳인지 확인 후 True 혹은 False를 반환
.isdigit() : 문자열의 모든 문자가 숫자인지 확인 후 True 혹은 False를 반환
● 문자열 형변환
a = 123
str(a) : 정수 a인 123을 문자열로 변환