[python] 문자열 인덱싱과 슬라이싱, 포매팅(formatting)

2020. 1. 26. 17:25etc.

오늘의 핵심은 문자열 인덱싱(기본)의 원리를 이용하여 슬라이싱, 그리고 포매팅

추후에 바뀔 수 있는 정보들을 이런 방법들을 이용해서 데이터만 바꿔 놓으면 수정한 그대로 출력된다.

 

문자열 인덱싱

"파이썬은 0부터 숫자를 센다"

Hello
01234

이런 식으로! 그리고 공백(띄어쓰기)도 함께 센다.

>>> a = "Life is too short, You need Python"
>>> a[0]
'L'
>>> a[12]
's'
>>> a[-1]
'n'

숫자 앞에 마이너스를 붙이면 (ex. -1) 맨 뒤에서 세었을 때.

즉 위의 예시에서는 맨 뒤에서 첫번째 문자인 'n'이 되겠다.

 

 

문자열 슬라이싱

>>> a[19:]
'You need Python'

a[시작 번호:끝 번호]에서 끝 번호 부분을 생략하면 시작 번호부터 그 문자열의 끝까지 뽑아낸다.

 

>>> a[:17]
'Life is too short'

a[시작 번호:끝 번호]에서 시작 번호를 생략하면 문자열의 처음부터 끝 번호까지 뽑아낸다.

 

>>> a[:]
'Life is too short, You need Python'

a[시작 번호:끝 번호]에서 시작 번호와 끝 번호를 생략하면 문자열의 처음부터 끝까지를 뽑아낸다.

 

>>> a[19:-7]
'You need'

슬라이싱에서도 인덱싱과 마찬가지로 마이너스(-) 기호를 사용할 수 있다.

 

 

 

문자열 포매팅

이번의 하이라이트. 문자열 포매팅!

문자열 안의 특정한 값을 바꿀 수 있다.

 

예를 들어서 바로 설명하기!

 

나의 주민등록 번호 출력하기

주민번호 입력: 961224-1234567

이라는 문자열(변수는 961224-1234567)을 그대로 출력하고 싶을 때.

 

1)  문자열 바로 대입

print("주민번호 입력: %s" % "961224-1234567")

문자열 포맷코드 %s 사용

(숫자열 포맷코드: %d)

 

 

2) format 함수를 이용한 포매팅

print("주민번호 입력: {0}" .format("961224-1234567"))

{0}의 항목이 .format("")의 큰따옴표 사이의 내용으로 변환

 

 

3) f 문자열 포매팅.

(파이썬 3.6 버전부터 사용이 가능하다던 f 포매팅. mac OS 에서는 기본적으로 3 이하 버전이 설치되어 있어,

추가로 최신 버전 재 설치후 파이참에서 인터프리터를 최신 버전으로 변환 시키고 실행해야함.. 애먹음.)

최신 버전에서 가능한 포매팅이니만큼, 가장 간편한 포매팅이다.

number = '961224-1234567'
print(f'주민번호 입력: {number}')

변수값을 설정하고

f'{변수}' 이렇게 하면 끝이다..

 

 

다양한 활용법과 경우의 수?가 있지만 더 자세한 내용은

참고자료인

https://wikidocs.net/13#_15

 

위키독스

온라인 책을 제작 공유하는 플랫폼 서비스

wikidocs.net

여기! 문자열 자료형 파트에서.

 

 

응용1)

이렇게 출력하고 싶을 때!

a = "Pithon"
print(f"오류난 단어: {a}")
# print(a[:1])
# print(a[2:])
print(f"정정한 단어: {a[:1] + 'y' + a[2:]}")

 

응용2)

 

 

# 변수 대입법
print("안녕하세요. 저는 %d 살 정미숙입니다." %25)

# format 함수를 사용한 포매팅: 2개 이상의 값 넣기
city = "서울시"
state = "중랑구"
print("그리고 저는 {0}의 {1}에 살고 있습니다." .format(city, state))

# f 문자열 포매팅
station = "상봉역"
print(f"가장 가까운 지하철 역은 {station}입니다.")

# f 문자열 포매팅 딕셔너리
d = {'hobby':'자전거 타기', 'specialty':'영상 편집'}
print(f"그리고 저의 취미는 {d['hobby']}입니다. 특기는 {d['specialty']}입니다.")

 

'etc.' 카테고리의 다른 글

[phython] 비전공자의 파이썬 첫 걸음마  (2) 2020.01.14