각 문자는 개별 주소를 가지며 주소로 값 가져오기
문자열, 리스트, 튜플 등등 자료형 타입에서 데이터 요소 하나하나에
번호를 부여하는 것
데이터 덩어리를 하나씩 또는 일부를 사용하기 위한 방법
문자열 str 타입 - 인덱스(Index)
- 인덱스(Index)
문자열을 구성하는 문자 한 개 한 개를 식별하기 위한 번호
파이썬에서 자동으로 부여함 ==> 인덱싱
- 종류
- 왼(앞) => 오(끝) : 0, 1, 2, ....
- 오(끝) => 오(앞) : -1, -2, -3, ....
- 특징
문자 한 개 원소는 2개의 인덱스를 가짐!- 원소 개수 파악 내장함수 => len(데이터)
msg = "오늘은 좋은 날!!" # 0 1 2 34 56789 # - - - -- ----- # 10 9 8 76 54321 ## - 전체 메시지 출력 print(msg, len(msg))
오늘은 좋은 날!! 10
## - '날'만 출력 print(msg[7], msg[-3]) ## - '은'만 출력 => 2, -8 print(msg[2], msg[-8])
날 날 은 은
## - '좋'과 '!' 출력 => 4, 8, 9, / -6, -2, -1 print(msg[4], msg[8], msg[9]) print(msg[-6], msg[-2], msg[-1])
좋 ! ! 좋 ! !
msg2 = 'Happy New Year 2025! Merry Christmas~♥' # 0 1 2 3 # 01234567890123456789012345678901234567 # -3 -2 -1 - # 87654321098765432109876543210987654321 # 전체 문자열 출력 print(msg2) # '5'만 출력 => 18, -20 print( msg2[18], msg2[-20])
Happy New Year 2025! Merry Christmas~♥ 5 5
# '2025'만 출력 => 18, -20 print( msg2[15], msg2[16], msg2[17], msg2[18]) # 2025 붙여쓰기기 print( msg2[15], msg2[16], msg2[17], msg2[18], sep='')
2 0 2 5 2025
# 'Christmas'만 출력 => 27~35 print( msg2[27], msg2[28], msg2[29], msg2[30], msg2[31], msg2[32], msg2[33], msg2[34], msg2[35])
C h r i s t m a s
• 각 문자의 인덱스를 기반으로 문자 잘라내기
- 형식 >> [ 시작번호: 끝번호]
- 주의 >> 끝 번호는 포함 안됨
문자열 str 타입
슬라이싱(Slicing)
- 전체 문자열에서 일정한 간격으로 연속된 문자열을 일부 추출하는 방법
- 문법
- 변수명[시작인덱스:끝인덱스+1] => 시작<= ~ < 끝+1
msg = 'Happy New Year 2025! Merry Christmas~♥' # 0 1 2 3 # 01234567890123456789012345678901234567 # -3 -2 -1 - # 87654321098765432109876543210987654321
# 전체 문자열 출력 print(msg) # - 'Happy'만 출력 print(msg[0], msg[1], msg[2], msg[3], msg[4], sep='')
Happy New Year 2025! Merry Christmas~♥ Happy
# - 0번 이상 5미만 print(msg[0:4], msg[0:5])
Happ Happy
# - '2025!'만 출력 # - 15 ~ 29 => 15:20 print(msg[15:20])
2025!
- 변수명[시작인덱스: ] => 시작<= ~ <끝까지
- 변수명[ : ] => 처음부터 ~ 끝까지
msg = 'Life is too short, you need python!' # 0 1 2 3 # 01234567890123456789012345678901234 # -3 -2 -1 # 54321098765432109876543210987654321
# - 'Life'만 출력 print(msg[0:4], msg[:4])
Life Life
# - 'Python!'만 출력 => 28 ~ 34 / -7 ~ -1 print(msg[28:35], msg[-7:35]) # msg[-7:0] -> 끝까지일 때, 0은 안됨! print(msg[28:], msg[-7:])
python! python! python! python!
# - 전체 출력 print(msg) print(msg[ : ])
Life is too short, you need python! Life is too short, you need python!
내장함수 len()
- 데이터를 구성하는 원소 갯수를 알려주는 함수
- int, float, bool 사용 못 함!
- 여러 개의 데이터로 구성된 데이터
(예) str 타입- 특징 : 요소 개수를 알면 인덱스 범위를 알 수 있음
- 2개 => 인덱스 0 ~ 1
- 3개 => 인덱스 0 ~ 2
- n개 => 인덱스 0 ~ n-1
data1 = 2025 # int data2 = 9.998 # float data3 = True # bool data4 = '' # str
기본 데이터 타입인 int, float, bool은 1개의 데이터를 저장
원소/요소가 없음! ==> len() 내장함수 사용 불가
###문자열 str 데이터 타입
- 인덱스와 슬라이싱 활용
[인덱스] 원소/요소 읽기 추출
msg = 'Pithon' # 012345
print('msg' , msg, id(msg))
print('msg[0]' , msg[0], id(msg[0]))
print('msg[1]' , msg[1], id(msg[1]))
1번 원소의 '1' ==> 'y' 변경 <= 불가 기능 미지원
msg[1] = 'y'
=> 문자열의 원소들을 분리해서 연결
print(msg[0])
print(msg[0] + 'y') # str + str => 연결
print(msg[0] + 'y' + msg[2:]) # str + str + str => 연결
이스케이프(Escape) 문자
- 이스케이프(Escape) 문자 : 특별한 의미를 가진 문자
- 형식 : +알파벳 1개
- 대표적인 문자
- '\n' - new line의 기능 즉, 엔터키
- '\t' - 탭 키 기능으로 간격
- '\' - 파일이나 폴더의 경로 나타낼 때 사용용
- '\'' - 인용부호 홀따옴표 의미
- '\"' - 인용부호 쌍따옴표 의미
[1] '\n' 이스케이프 문자 msg1 = """"술이 한 잔 생각나는 밤 같이 있는 것 같아요 그 좋았던 시절들""" msg2 = """"술이 한 잔\n생각나는 밤\n같이 있는 것 같아요\n그 좋았던\n시절들"""
print(msg1)
print(msg2)
"술이 한 잔 생각나는 밤 같이 있는 것 같아요 그 좋았던 시절들
"술이 한 잔
생각나는 밤
같이 있는 것 같아요
그 좋았던
시절들
[2] '\t' 이스케이프 문자
msg3 = """"술이 한 잔\t\t\t생각나는 밤\t같이 있는 것 같아요\t그 좋았던\t시절들"""
print(msg1)
print(msg3)
"술이 한 잔 생각나는 밤 같이 있는 것 같아요 그 좋았던 시절들
"술이 한 잔 생각나는 밤 같이 있는 것 같아요 그 좋았던 시절들
[3] '\"', '\'' 이스케이프 문자
msg3 = "오늘은 \"좋은 날\"입니다."
print(msg3)
msg3 = "오늘은 \'좋은 날\'입니다."
print(msg3)
오늘은 "좋은 날"입니다.
오늘은 '좋은 날'입니다.
[4] '\' 이스케이프 문자 = >'\U', '\n'
path = 'C:\Users\KDP-519\anaconda3' # \a -> 소리내는 문자(알람코드) # \U -> 유니코드
path = 'C:\Users\KDP-519\anaconda3'
print(path)
C:\Users\KDP-519\anaconda3
[5] raw string의 r' ', R' ', r" ", R" "
--> 문자열 안에 이스케이프 문자를 무시해주는 기능
msg1 = "오늘은\t\t좋은\t날\t\t"
msg2 = r"오늘은\t\t좋은\t날\t\t"
path = R'C:\Users\KDP-519\anaconda3'
print(msg1)
print(msg2)
print(path)
오늘은 좋은 날
오늘은\t\t좋은\t날\t\t
C:\Users\KDP-519\anaconda3