파이썬에서 문자열은 텍스트 데이터를 다루는 데 사용되는 중요한 데이터 타입이다. 문자열은 작은따옴표(') 나 큰 따옴표("), 세 개의 따옴표 (''',""")로 둘러싸인 텍스트로 표현된다.
🖥️예제
str1 = '오늘도 즐거운 파이썬 수업'
print(str1)
str2 = '오늘도 즐거운 파이썬 수업'
print(str2)
str3 = '''류지:
오늘도 즐거운 파이썬
수업 '''
print(str3)
파이썬의 문자열은 유니코드(Unicode)
문자의 시퀀스로 구성되며, 문자열 값은 메모리에 저장되고 해당 값은 불변(immutable)한 특성을 가진다. 파이썬은 문자열 리터럴
의 공유 문자열
최적화와 같은 기술을 사용하여 문자열 메모리를 효율적으로 다룰 수 있도록 설계되어있다.
유니코드(영어: Unicode)는 전 세계의 모든 문자를 컴퓨터에서 일관되게 표현하고 다룰 수 있도록 설계된 산업 표준이다.
문자열 리터럴과 메모리 할당 : 파이썬에서 문자열 리터럴(값)을 생성하면, 값이 메모리에 저장된다. 예를 들어 "Hello, world!"라는 문자열을 생성하면 해당 문자열 값이 메모리에 저장되고, 변수에 할당할 때는 해당 값의 참조(reference)가 변수에 저장된다.
공유 문자열(String Interning) : 작은 크기의 문자열 리터럴은 '공유 문자열' 이라는 메모리 최적화 기술을 활용하며 동일한 문자열 값이 여러 변수에 할당되면, 파이썬은 메모리에 단일로 문자열을 저장하고 여러 변수가 해당 값을 참조하게 하여 메모리 사용을 줄일 수 있다.
🖥️예제
a = "Hello"
b = "Hello"
print(a is b) # 출력: True (동일한 문자열 객체를 참조)
print(id(a), id(b))
변수 a 와 b의 주소값이 동일한 부분을 확인할 수 있다.
식별(identify)을 비교
할 때 사용되는 연산자이며 객체의 긱별은 메모리내에서 객체가 저장된 위치를 말한다. is 연산자는 두 객체가 동일한 메모리 위치에 저장되어 있는지 여부를 판단한다.주소값
을 확인할 수 있는 함수이다.파이썬에서 문자열은 불변(immutable)
한 데이터 타입이므로 같은 변수에 문자열을 재할당하는 경우, 새로운 문자열 객체가 생성되고 변수는 새로운 문자열 객체를 참조하게 됩니다. 이전 문자열 객체는 변경되지 않는다.
변수 자체의 메모리 주소
는 파이썬에서 직접 액세스할 방법이 없다.
🖥️예제
a = "Hello"
b = a + ", python!" # 새로운 문자열 객체 생성
text = 'Hello'
print(id(text))
text = 'Python'
print(id(text))
🖥️예제
text = "Hello, Python!"
print(len(text))
2. 문자열 합치기- + : 두 문자열을 합쳐 새로운 문자열을 생성
🖥️예제
name = "김사과"
age = "20살"
message = name + ", " + age
print(message)
3. 문자열 반복하기- * : 문자열을 여러 번 반복하여 새로운 문자열을 생성
🖥️예제
apple = "🍎" * 10
print(apple)
4. 문자열 인덱싱과 슬라이싱 : 문자열 내부의 문자에 인덱스를 사용하여 접근하거나 슬라이스할 수 있다
🖥️예제(인덱싱)
str = '문자열 내부의 문자에 인덱스를 사용하여 접근하거나 슬라이스할 수 있습니다.'
print(str)
# 인덱싱
print(str[0])
print(str[1])
print(str[12])
print(str[-1])
print(str[-2])
🖥️예제(인덱싱)
str1 = '문자열 내부의 문자에 인텍스를 사용하여 접근하거나 슬라이스할 수 있습니다.'
print(str1)
print(str1[0:6])
print(str1[8:16])
print(str1[:16]) #처음부터 16전까지
print(str1[8:]) #8번부터 끝까지
print(str1[:]) #전체
문자열 메서드는 문자열 객체에 적용되는 함수로, 문자열을 조작하거나 변환하는 다양한 작업을 수행할 수 있게 해준다.
🖥️예제
text = "Hello, Python!"
print(text.upper())
print(text.lower())
2. count() - 특정 문자열의 등장 횟수 확인
🖥️예제
text = "Hello, Python!"
print(text.count('l'))
print(text.count('ll'))
3. find() - 특정 부분 문자열의 첫 번째 등장 위치(인덱스)확인
🖥️예제
text = "Hello, Python!"
print(text.find('l'))
print(text.find('ll'))
print(text.find('z'))
print(text.rfind('l'))
print(text.find('o', 5))
4. replace() - 문자열 대체
🖥️예제
text = "Hello, Python!"
new_text = text.replace("Python", "World") # in-place 연산
print(new_text)
5. strip() - 문자열 양쪽 공백 제거
🖥️예제
text = " Hello, Python! "
print(text)
print(text.strip())
6. split() - 문자열 분리
🖥️예제
text = '김사과 반하나 오렌지 이메론'
names = text.split() # 공백을 기준으로 분리
print(names)
text = '김사과,반하나,오렌지,이메론'
names = text.split(',') # ',' 를 기준으로 분리
print(names)
7. join() - 문자열 결합
🖥️예제
text = 'Hello'
print('🍎'.join(text))
8. startswith()와 endswith() - 접두사와 접미사 확인
🖥️예제
text = 'Hello, Pyhon!'
starts_with_hello = text. startswith("Hello")
print(starts_with_hello) # ;bool 타입으로 출력
print(type(starts_with_hello))
ends_with_wold = text.endswith('world!')
print(ends_with_wold)
문자열 함수
문자열 함수는 파이썬 내장 함수로, 문자열을 다루거나 처리하는 데 사용된다. 이러한 함수들은 문자열을 입력으로 받아 처리한 후 결과를 반환한다.
len() 등..
문자열 메서드
문자열 메서드는 문자열 자체에 대해 호출되는 함수로, 문자열 내부에서 작동하는 동작을 수행한다.
문자열 객체에 점(.)을 찍고 메서드 이름을 호출하는 방식으로 사용한다.
'문자열'.join(), 문자열.split()