인덱싱 (indexing)이란 무엇인가를 '가리킨다'는 의미이고, 슬라이싱 (slicing)은 무엇인가를 '잘라낸다'는 의미입니다.
우선 문자열 인덱싱, 슬라이싱, 포매팅 이해하기 전에 가장 중요한 것은 '파이썬은 0부터 숫자를 센다'는 것입니다.
1. 문자열 인덱싱?
위 소스 코드에서 a[3]이 뜻하는 것은 a라는 문자열의 4번째 문자 n입니다.
파이썬은 0부터 숫자를 세기 때문에,
a[0]: 'M' , a[1]: 'y' , a[2]: ' ' , a[3]: 'n' , a[4]: 'a' , ...
이런식이 되는 것입니다.
변수 이름[번호]은 결국 문자열 안의 특정한 값을 뽑아내는 역할을 합니다.
마찬가지로, 음수를 사용해 문자를 뒤에서부터 읽는 것도 가능합니다.
2. 문자열 슬라이싱?
"My name is Jay"라는 문자열에서 특정한 한 문자를 뽑아내고 싶다면 슬라이싱 기법을 사용하면 됩니다.
문자열에서 'My' 부분만 뽑아내 보겠습니다.
a[0:2]가 뜻하는 것은 a 문자열에서 자리 번호 0부터 2까지의 문자를 뽑아낸다는 뜻입니다.
그런데 여기에서 a[0:1]이 아닌 a[0:2]인 이유는 슬라이싱 기법을 사용할 때 a[시작 번호:끝 번호]에서 끝 번호에 해당하는 것은 포함하지 않기 때문입니다.
슬라이싱할 때 시작 번호가 0이 아니어도 상관없으며, 끝 번호를 생각하면 시작 번호부터 문자열의 끝까지 뽑아냅니다.
시작 번호를 생략하면 문자열의 처음부터 끝 번호까지, 시작과 끝 번호 모두 생략하면 문자열의 처음부터 끝까지를 뽑아냅니다.
3. 문자열 포매팅?
문자열 안의 특정한 값을 바꿔야 할 경우가 있을 때 이것을 가능하게 해주는 것이 문자열 포매팅 (formatting) 기법입니다.
쉽게 말하자면 문자열 안에 어떤 값을 삽입하는 방법입니다.
문자열 안에서 숫자를 넣으려면, 넣고 싶은 자리에 %d 문자를 넣어 주고, 삽입할 숫자는 가장 뒤에 % 문자 다음에 써주면 됩니다.
숫자가 아닌 문자열을 넣으려면 %s를 사용해주면 됩니다.
문자열 안에 2개 이상의 값을 넣으려면 마지막 % 다음 괄호 안에 콤마로 구분하여 값을 넣어주면 됩니다.
+) 문자열 안에서 포매팅 연산자들과 % 문자를 함께 사용할 때는 %%를 사용해주어야 합니다.
%%를 사용하지 않았을 경우에 파이썬은 오류를 발생합니다.
하지만 문자열 안에 %d와 같은 포매팅 연산자가 없다면 % 문자는 홀로 쓰여도 상관 없습니다.
4. format 함수로 포매팅
문자열의 format 함수를 사용해서 문자열 포맷을 지정해줄 수 있습니다.
문자열의 {0} 부분이 바뀌게 됩니다.
{0}, {1}과 같은 인덱스 대신 {name} 형태를 사용할 수도 있습니다.
format 함수를 활용해 문자열을 왼쪽, 오른쪽, 가운데 정렬할 수 있고, 공백을 원하는 문자로 채워 넣을 수도 있습니다.
:< 와 :> 기호로 좌우정렬, :^ 기호로 가운데 정렬이 가능합니다.
정렬 문자 <, >, ^ 앞에 원하는 문자를 넣어주어 정렬할 때 공백 문자 대신에 지정한 문자 값으로 채울 수 있습니다.
format 함수를 이용해 소수점을 원하는대로 표현할 수 있습니다.
위와 같이 자릿수와 소수점을 지정해줄 수 있습니다.