본문 바로가기
파이썬 독학

[파이썬 독학 5일차] 파이썬 문자열 완전 정복! 인덱싱, 슬라이싱,포매팅 완벽 가이드

by 꺼짐켜짐 2025. 1. 24.
반응형

 

지난 시간에 이어 오늘은 문자열의 인덱싱, 슬라이싱, 그리고 포매팅까지 마무리해보려고 합니다! 🧐
기초를 잘 다지면 나중에 실력 발휘하기 훨씬 수월해요. 그럼 바로 시작해볼까요?


1. 문자열의 인덱싱: 위치를 가리킨다!

먼저 "인덱싱"은 문자열에서 특정 위치의 문자를 확인하는 작업이에요.

실습을 위해서 a라는 변수에 "black mask" 라는 문자열을 대입시켜봅시다
>>> a = black mask
그럼 파이썬에서는 하기 표와 같이 저장을 한답니다

b l a c k   m a s k
0 1 2 3 4 5 6 7 8 9

 

여기서 "c"는 몇 번째 문자일까요?
👉 정답은 4번째입니다!
그런데... 파이썬에서 a[4]를 실행하면 "c"가 아닌 "k"가 나와요. 왜냐고요?

파이썬은 0부터 시작하기 때문이죠!


그렇다면 "c"를 출력하려면?

a[3]을 하면 "c" 가 출력이 되겠죠!

그럼 음수를 넣으면 어떻게 되느냐..!

파이썬에서는 음수를 사용하면 뒤에서부터 카운트해요.

a[-2] 를 하면, "s" 가 출력이 되죠


2. 문자열 슬라이싱: 원하는 부분만 똑 떼기

슬라이싱은 특정 구간의 문자열을 뽑아내는 작업이에요.

 

예를 들어 a라는 문자열의 "black mask"를 "black" 을 뽑고싶다면 어떻게 해야 할까요..!

물론 b = a[0] + a[1] + a[2] + a[3] + a[4] + a[5] 도 가능하지만 너무 번잡스러우니..

슬라이싱 기법을 이용해서

b= a[0:5] 으로 black 을 b변수에 집어넣을수 있겠죠

그런데 왜 [0:4] 가 아닌 [0:5] 인지 헷갈리시는 분들이 계실텐데요

 

슬라이싱 기법의 a[x:y] 의미는 x <= 인덱스 < y라는 점을 기억하세요!

그래서 끝 인덱스는 +1을 더해야 원하는 결과가 나옵니다.

 

그렇다고 꼭 0으로 시작할 필요는 없으며, 슬라이싱 기법은 이렇게도 사용이 가능해요

>>> a[6:]

mask

>>>a[:5]

black

이런식으로 원하는 인덱스를 기점으로 앞으로 혹은 뒤로 슬라이싱을 할수 있습니다!

 

3. 문자열 포매팅: 출력에 감칠맛 더하기!

포매팅은 문자열에 변수를 넣거나 형식을 지정하는 기술이에요.

(1) % 연산자를 이용한 포매팅

설명하기 전에 포멧 코드를 말하자면

포멧 코드 설명 예시 비고
%s 문자열 (String) "hello" , "3.1234", "2" 모든 문자를 사용가능
%c 문자 1개 (Character) "1", "c"  
%d 정수 (integer) "3","214"  
%f 소수점(floating - point) "3.1415","2.1"  

이런식으로 사용을 한다.

 

실습을 통해서 이해를 도와보자.

 

>>> "I like %s candy" %"apple"

이 코드는 %s 의 포메 코드 안에 %뒤에 있는 문자열인 "apple"를 대입해라 라는 뜻이다.

I like apple candy 로 표출이 된다.

 

그럼 두개 이상을 넣으려면 어떻게 해야할까

>>> " I have %d %s candy" %(2, "apple")

I have 2 apply candy가 된다

 

이번에는 포멧코드를 이용한 소숫점 자리를 세팅해보자

>>>"%0.4f"%3.141592

3.1416

 
 

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

format()은 조금 더 직관적인 방식이에요.

사실 위에 포멧코드를 그냥 format 함수로 바꿨다고 보면 되므로 굉장히 간단하다.

 

>>> "I have {0} apple candy" .format(2)

I have 2 apple candy

 

>>>number = 2

>>> "I have {0} {1} candy." .format(number,"apple")

I have 2 apply candy

여기서 주의할 점은 format 함수를 사용할때는 {0} 을 세팅후 {1}로 세팅을 해주어야 하는 점이다.

이 코드에서 {0} = number = 2로 포매팅이 된다고 생각해주면 된다.

 

>>>number = 2

>>> "{0} plus {0} = 4".format(number)

2 plus 2 = 4

가 나오게 된다.

 
정렬과 공백 채우기
 

1. format 함수를 이용한 왼쪽 정렬

>>> "{0:<10}".format("ok")

"ok        "

ok라는 문자를 가장 앞에 사용하고 10중 ok를 제외한 8의 공백을 준다 라는 뜻이다.

 

2. format 함수를 이용한 가운데 정렬

>>> "{0:^10}".format("ok")

"    ok    "

ok라는 문자를 가장 중간에 사용하고 10중 ok를 제외한 8의 공백을 준다 라는 뜻이다.

 

3. format 함수를 이용한 오른쪽 정렬

>>> "{0:>10}".format("ok")

"        ok"

ok라는 문자를 가장 오른쪽에 사용하고 10중 ok를 제외한 8의 공백을 준다 라는 뜻이다.

 

4. format 함수를 이용한 공백 문자 치환

>>>"{0:!^11}".format("yes")

!!!!yes!!!!

이런식으로 : 와 <,>,^ 사이에 원하는 문자를 넣으면 공백을 채워준다.

 
 

(3) f-string을 이용한 포매팅

Python 3.6부터 등장한 f-string은 간결함이 장점이에요.

 

>>> a = 2

>>> b = "boy"

>>> f "I have {a} {b}"

I have 2 boy

 

또한, 이런식으로도 가능하다.

>>> f"I have {a+2} {b}"

I have 4 boy

f-string으로 정렬하기

>>> f '{"ok" : < 10}

이렇게 format 함수와 다른듯 똑같은 양식으로 진행이 가능하고, 공백을 채우는것도 똑같이 하면된다.

 


🎯 실습 문제

문제: !!!python!!!을 출력해보세요.

 

딱 생각나야 하는건 ":!^" 을 사용해야 겠다! 이고

format을 사용할 것인지 f를 사용할 것인지를 고민해 보아야 한다.

 

1. format()을 사용한 방법:

>>> "{0:!^12}".format("python") 

 

2. f-string을 사용한 방법:

>>> f '{"python":!^12}' 

 


문자열은 파이썬 프로그래밍에서 정말 자주 사용하는 도구입니다.
오늘 배운 내용을 바탕으로 기초를 탄탄히 다져보세요. 다음 시간에는 리스트 자료형을 배워볼 예정이에요! 

저랑 같이 파이썬 독학을 계속해 나가실 분들이나 궁금하신 분들은 구독을 눌러주세요!!!

 

 

반응형