PYTHON/파이썬 기초

[PYTHON] 문자열 자료형

G허니 2024. 2. 25. 19:01

파이썬에서 문자열은 매우 유연하게 다룰 수 있으며, 다양한 연산이 가능합니다. 아래에 주요 문자열 연산에 대해 설명하겠습니다.

 

print("Hello World")

 


문자열 나열: 파이썬에서 문자열을 콤마 없이 나란히 나열하면, 그 문자열들이 합쳐진 결과를 얻을 수 있습니다. 콤마로 문자열을 구분하여 나열하면 튜플이 됩니다.

s = 'hello' 'world'
print(s)

 

 

여러 줄 문자열: 문자열 앞뒤에 따옴표 세 개(''')나 큰따옴표 세 개(""")를 사용하거나, '\n'을 사용하여 여러 줄의 문자열을 표현할 수 있습니다.

s1 = 'hello \nworld'
s2 = '''hello
	world'''
        
print(s1)
print(s2)

 

 

따옴표를 포함한 문자열: 문자열 안에 따옴표를 넣을 때는 큰 따옴표 안에 작은 따옴표를 사용하거나, 작은 따옴표 안에 큰 따옴표를 사용합니다. 또는, 따옴표 앞에 백슬래시()를 사용하여 따옴표를 문자열의 일부로 표현할 수도 있습니다.

s1 = 'hello "world"'
s2 = 'hello \'world\''
        
print(s1)
print(s2)

 

 

문자열 연산: 문자열 간의 '+' 연산은 두 문자열을 합칩니다. 또한, 문자열과 정수의 '*' 연산은 해당 문자열을 정수만큼 반복합니다.

s1 = 'hello'
s2 = 'world'

print(s1+s2)
print(s1*3)

 

 

format 메소드

 

문자열.format() 형태로 사용하여, 문자열 내의 일부분을 다른 값으로 치환할 수 있습니다

"Hello, {}. You are {} years old.".format("Alice", 20)
"Hello, {}. You are {:.2f} years old.".format("Alice", 20.12345)

 

 

f-string

 

최근에는 f-String이라는 방법을 많이 사용합니다. 이 방법은 문자열 앞에 'f'를 붙이고, 문자열 내에 변수명을 중괄호({}) 안에 넣어 사용합니다.

name = "Alice"
age = 20
print(f"Hello, {name}. You are {age} years old.")

 

 

문자열 인덱싱과 슬라이싱

 

문자열은 문자의 시퀀스로, 각 문자에는 위치 인덱스가 있습니다. 인덱싱은 특정 위치의 문자를 조회하는 것이고, 슬라이싱은 일정 범위의 문자열을 조회하는 것입니다. 인덱스 값은 0부터 시작합니다.

s = "Hello, World!"
print(s[0]) # 'H'
print(s[7:12]) # 'World'
print(s[-1]) # '!'

 

 

문자열 관련 주요 메서드

 

대/소문자 변환 : 

capitalize(): 문자열의 첫 문자를 대문자로, 나머지는 모두 소문자로 변환합니다.

"hello, world!".capitalize() # "Hello, world!"를 반환합니다.


title(): 각 단어의 첫 문자를 대문자로, 나머지는 모두 소문자로 변환합니다.

"hello, world!".title() # "Hello, World!"를 반환합니다.


upper(): 모든 문자를 대문자로 변환합니다.

"hello, world!".upper() # "HELLO, WORLD!"를 반환합니다.


lower(): 모든 문자를 소문자로 변환합니다.

"HELLO, WORLD!".lower() # "hello, world!"를 반환합니다.

 

 

자릿수 지정과 정렬:
rjust(x): 문자열을 오른쪽으로 정렬하고, 왼쪽에는 공백을 채워 총 x자리를 확보합니다.

 "Hello".rjust(10) # " Hello"를 반환합니다.


ljust(x): 문자열을 왼쪽으로 정렬하고, 오른쪽에는 공백을 채워 총 x자리를 확보합니다. 

"Hello".ljust(10) # "Hello "를 반환합니다.


center(x): 문자열을 가운데로 정렬하고, 양쪽에는 공백을 채워 총 x자리를 확보합니다.

"Hello".center(10) # " Hello "를 반환합니다.

 

 

일부 변경 및 제거:
replace(x, y): 문자열에서 x를 y로 모두 변경합니다.

"Hello, world!".replace("world", "Python") # "Hello, Python!"를 반환합니다.


strip(x): 문자열의 양쪽 끝에서 x를 제거합니다. x를 지정하지 않으면 공백을 제거합니다.

"   Hello, world!   ".strip() # "Hello, world!"를 반환합니다.


분리와 연결:
split(x): x를 구분자로 사용하여 문자열을 분리하고, 그 결과를 리스트 형태로 반환합니다.

"Hello, world!".split(", ") # ["Hello", "world!"]를 반환합니다.


join(s): s의 모든 요소 사이에 문자열을 삽입하여 하나의 문자열로 합칩니다.

", ".join(["apple", "banana", "cherry"]) # "apple, banana, cherry"를 반환합니다.