텍스트 데이터를 다루는 데 사용되는 중요한 데이터 타입.
작은 따옴표(')나 큰 따옴표("), 세 개의 따옴표(''', """)로 둘러싸인 텍스트로 표현.
str1='오늘도 즐거운 파이썬 수업'
print(str1)
str2="오늘도 즐거운 파이썬 수업"
print(str2)
str3='''루킹:
오늘도 즐거운 파이썬
수업'''
print(str3)
오늘도 즐거운 파이썬 수업
오늘도 즐거운 파이썬 수업
루킹:
오늘도 즐거운 파이썬
수업
파이썬의 문자열은 유니코드(Unicode) 문자의 시퀀스로 구성되며,
문자열 값은 메모리에 저장되고 해당 값은 불변(immutable)한 특성을 가진다.
a='Hello'
b='Hello'
print(a is b) # 공유 문자열
True
a='Hello'
a=a+'.python!' # 새로운 문자열 객체 생성
text = 'Hello'
print(id(a))
print(id(text))
133911968704624
133911968700592
아스키(American Standard Code for Information Interchange) : 미국에서 개발된 문자 인코딩 표준. 아스키 코드는 7비트로 구성되어 총 128개의 문자(0~127)를 표현한다.
유니코드: 전 세계의 다양한 문자와 기호를 포함하기 위해 개발된 표준. 유니코드는 각 문자를 고유한 코드 포인트로 표현하며, 다양한 인코딩 방식(UFT-8, UTF-16, UTF-32 등)을 지원한다.
text = 'Hello, Python!'
print(len('text'))
print(len('Hello, World!'))
4
13
→ len : 문자열의 길이를 출력
# 문자열 합치기 (+): 두 문자열을 합쳐 새로운 문자열을 생성합니다.
name = '김사과'
age = '20살'
message1 = name + ", " +age
message2 = f'{name}, {age}'
print(message1)
print(message2)
김사과, 20살
김사과, 20살
# 문자열 반복하기 (*): 문자열을 여러 번 반복하여 새로운 문자열을 생성합니다.
apple = '❤️'*10
print(apple)
❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️
# 문자열 인덱싱과 슬라이싱: 문자열 내부의 문자에 인덱스를 사용하여 접근하거나 슬라이스할 수 있습니다.
str = '문자열 내부의 문자에 인덱스를 사용하여 접근하거나 슬라이스할 수 있습니다.'
print(str)
# 인덱싱
print(str[0])
print(str[1])
print(str[12])
print(str[-1]) # 끝에서 첫번째
print(str[-2]) # 끝에서 두번째
문자열 내부의 문자에 인덱스를 사용하여 접근하거나 슬라이스할 수 있습니다.
문
자
인
.
다
print(str)
# 슬라이싱
print(str[0:6]) # 0부터 6직전까지
print(str[8:16]) # 8부터 16직전까지
print(str[:16]) # 0부터 16직전까지
print(str[8:]) # 8부터 끝까지
print(str[0:6:1]) # 0부터 6직전까지 1씩 증가
print(str[0:6:2]) # 0부터 6직전까지 2씩 증가
print(str[8::-1]) # 8부터 0까지 -1씩 감소
문자열 내부의 문자에 인덱스를 사용하여 접근하거나 슬라이스할 수 있습니다.
문자열 내부
문자에 인덱스를
문자열 내부의 문자에 인덱스를
문자에 인덱스를 사용하여 접근하거나 슬라이스할 수 있습니다.
문자열 내부
문열내
문 의부내 열자문
문자열 메서드 : 문자열 객체에 적용되는 함수.
문자열을 조작하거나 변환하는 다양한 작업을 수행할 수 있게 해준다.
# upper()와 lower() - 대소문자 변환
text = 'Hello, Python!'
print(text.upper())
print(text.lower())
HELLO, PYTHON!
hello, python!
# count() - 특정 문자열의 등장 횟수 확인
print(text.count('l'))
print(text.count('ll'))
print(text.count('z'))
2
1
0
# find() - 특정 부분 문자열의 첫 번째 등장 위치(인덱스) 반환
text = 'Hello, Python!'
print(text.find('l'))
print(text.find('ll'))
print(text.find('z')) #-1
print(text.rfind('l')) # 뒤에서부터 검색
print(text.find('o',5)) # 인덱스 5 이후부터 검색
2
2
-1
3
11
→ 문자열 처음부터 0으로 시작하여 위치(인덱스)를 반환한다.
→ print(text.find('o',5)) 인덱스 5 이후부터 'o'를 검색한다.
# replace() - 문자열 대체
text = 'Hello, Python!'
new_text = text.replace("Python", "World")
print(new_text)
Hello, World!
# strip() - 문자열 양쪽 공백 제거
text = ' Hello, Python! '
print(text)
print(text.strip())
Hello, Python!
Hello, Python!
# split() - 문자열 분리
text = '김사과 반하나 오렌지 이메론'
names = text.split() # 기본값: 공백
print(names)
text = '김사과,반하나,오렌지,이메론'
names = text.split(',')
print(names)
text = '김사과,반하나,오렌지,이메론'
names = text.split('💕')
print(names)
['김사과', '반하나', '오렌지', '이메론']
['김사과', '반하나', '오렌지', '이메론']
['김사과,반하나,오렌지,이메론']
# join()-문자열 결합
text = 'Hello'
print('🙋♂️'.join(text))
H🙋♂️e🙋♂️l🙋♂️l🙋♂️o
# startswith()와 endswith() - 접두사와 접미사 확인
text = "Hello, Python!"
starts_with_hello = text.startswith("Hello")
ends_with_world = text.endswith("World!")
print(starts_with_hello)
print(ends_with_world)
True
False
문자열 객체가 생성된 후에는 그 값을 바꿀 수 없다는 것을 의미한다.
한 번 생성된 문자열 객체 내에서 특정 문자를 바꿀 수 없다.
만약 문자열의 일부를 변경하고 싶다면, 새로운 문자열을 만들어서 교체해야 한다.
my_string = "Hello"
print(my_string[0])
new_string = "h" + my_string[1:] # 'Hello'의 첫 글자를 바꾸기 위해 새로운 문자열 생성
print(new_string) # 출력: "hello"
H
hello