Python

Python 문자열

Devwon99 2023. 12. 8. 03:14

● 문자열


공백이 있지 않는 문자열은 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을 문자열로 변환