영감이 번뜩이는 삶

[파이썬 입문] 자료형 - 문자열 인덱싱, 슬라이싱, 포매팅1 본문

Python 도전기

[파이썬 입문] 자료형 - 문자열 인덱싱, 슬라이싱, 포매팅1

돌굴러가유피하세유 2022. 11. 7. 21:00
반응형

사람과 컴퓨터는 문자열을 이해하는 방식이 많이 다르다.
그래서 코딩을 할때는 컴퓨터가 알아먹는 방식을 써야한다.

인덱싱(indexing)은 컴퓨터가 문자를 인식하는 방식 정도로 기억해두면 될꺼 같다.
예를 들어, 아래와 같이 입력하면
>>> x = "abcd efgh"

a b c d (공백) e f g h
0 1 2 3 4 5 6 7 8

컴퓨터는 위 표처럼 각 문자에 주소를 매기고 기억함
x[0]='a', x[1]='b', …, x[8]='h'
★첫번째가 아니라 0번째부터 센다는걸 꼭 기억하자!
★x[-1]='h'과 같이 뒤에서부터 세는 것도 가능함

 

슬라이싱(slicing)은 말 그대로 잘라내는 것!
문자열을 원하는 부분만 잘라내는 기능이다. 
위에 입력한 x 문자열로 써보면 x[시작번호:끝번호]로 표현할 수 있다.
★이때 시작번호부터 끝번호-1까지 추출된다는 점 유의

더보기

>>> x[0:4]='abcd'

 

시작번호나 끝번호를 생략한다면, 문자열 처음부터 끝번호까지 또는 시작번호부터 문자열 끝까지 쉽게 추출할 수 있다.

더보기

>>> x[:5]='abcd '
>>> x[5:]='efgh'

 

 

포매팅(fomatting)은 문자열에 형식을 만들어준다 정도?

포매팅을 활용하기 위해선 포맷 코드를 알아둘 필요가 있다. 표 참고

코드  
%s 문자열
%c 문자
%d 정수
%f 부동소수
%o 8진수
%x 16진수
%% 문자 '%' (문자열 내에 %가 있는 경우)

 

설명보단 예시!

더보기

>>> '나는 삼성전자 %d주를 보유하고 있다.' %11
'나는 삼성전자 11주를 보유하고 있다.

>>> '나는 삼성전자 %s주를 보유하고 있다.' %'열한'
'나는 삼성전자 열한주를 보유하고 있다.

>>> a = 11
>>> '나는 삼성전자 %d주를 보유하고 있다.' %a
'나는 삼성전자 11주를 보유하고 있다.'

간단하쥬?
2개 이상의 값일 경우, (ⓐ,ⓑ,ⓒ)와 같이 괄호 안에 콤마로 구분하면 됨

더보기

>>> a=11
>>> b='다섯'
>>> '나는 삼성전자 %d주를 보유하고 있었지만, %s주는 매도했다.' %(a,b)
'나는 삼성전자 11주를 보유하고 있었지만, 다섯주는 매도했다.'

 

포맷코드에서 %와 코드 사이에 숫자를 사용하면 문자를 정렬하거나 소수점 단위를 정해줄 수 있다.

더보기

>>> '%5s' %'ab' #포맷코드 사이에 5는 5칸짜리 문자열을 만들겠다는 의미
'   ab'

>>> '%-5s' %'ab'
'ab   '

>>> '%.4f' %3.141592 # .4는 소수점 넷째자리 의미
'3.1416'

 

예시를 보고 이런 코드는 어떨까 하면서 직접 shell에 쳐보는게 확실히 도움되니까 궁금하면 꼭 실행해보시길~

생각보다 글이 길어져서 format 함수와 f 문자열 포매팅 그리고 문자열 관련 함수는 다음 글에 계속...

반응형
Comments