본문 바로가기
Python

파이썬 기초 04. 문자열

by Y25N 2023. 9. 18.
728x90
'''
문자열 인덱스
문자열에는 각 문자의 자리 번호 (인덱스) 가 있음
파이썬에서는 가장 첫번째 문자의 위치를 0으로 지정
음수 인덱스를 사용해 문자열의 뒤부터 셀 수 있음
음수 인덱스는 -1부터 시작

0   1   2  3  4  5  6  7  8  9 10
-11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1
H   E   L  L   O    W  O  R  L  D
-> 공백 문자도 일반 문자와 동일하게 문자로 취급
'''

#양수 인덱스 사용
a='HELLO WORLD'

#'H' 출력
print(a[0])

#'W' 출력
print(a[6])

#'D' 출력
print(a[10])

#음수 인덱스 사용
#'H' 출력
print(a[-11])

#'W' 출력
print(a[-5])

#'D' 출력
print(a[-1])

#범위 밖의 인덱스를 사용하면? 인덱스 에러 발생

#문자열 슬라이싱
'''
문자열의 일정 범위를 추출하는 작업을 슬라이싱이라고 함.
문자열[시작인덱스: 끝인덱스: 간격]
-> 문자열의 시작인덱스부터 끝 인덱스 바로 앞까지 지정한 간격으로 추출
'''
a = 'Hello World'
#Hello
print(a[0:5:1])
#world
print(a[6:11:1])
#Hello
print(a[-11:-6:1])
#world -> 마지막 문자 전까지만 출력되기 때문에 마지막 문자를 지정 x
print(a[-5:])

#첫번째와 마지막 인덱스 생략 가능
a = 'Hello World'
#hello
print(a[:5])
#world
print(a[6:])
#hello world
print(a[:])

#한문자씩 건너뛰어 출력
a= 'hello world'
print(a[::2])
#역순 출력
print(a[::-1])

"""
str function
str.find(search str) - 찾을 문자열의 시작 인덱스 찾기
str.replace(search str, replace str) - 찾을 문자열을 교체할 문자열로 바꾸기
str.lower() - 문자열을 모두 소문자로 바꾸기
str.upper() - 문자열을 모두 대문자로 바꾸기
str.split('str div') - 문자열을 구분자 기준으로 나누기
"""

#문자열 교체하기
a = '나는 초코우유가 좋아.'
#초코를 딸기로
a.replace('초코','딸기')

#문자의 위치
a = 'hello python'
#e의 위치 찾기
print(a.find('e'))
#l의 위치 찾기
print(a.find('l'))

#문자열 나누기
phone = '010-0000-5678'
print(phone.split('-'))

email = 'example123@example.com'
print(email.split('@'))

#연습문제
#사용자의 영문 이름을 입력받아 성과 이름 순서를 바꾸어서 출력하는 프로그램을 작성
#성, 이름은 공백으로 구분

#사용자의 영문이름 입력받기
name = input('이름을 입력하세요. 당신의 성과 이름을 공백으로 구분하여 입력하세요.: ')

#공백 위치 찾기
space = name.find(' ')
print(space)

#성, 이름을 각각 슬라이싱 해 변수에 담기
first = name[:space]
last = name[space+1:]
print (first, last)

#순서를 바꿔서 출력
print(last, first)