5. 파이썬 문자열 연산, 포매팅, 인덱싱, 슬라이싱

  • 네이버 블로그 공유하기
  • 카카오톡 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 트위터 공유하기

문자열 연산

숫자형 이 아닌 문자열의 경우에도 연산을 할수 있습니다.
문자열의 연산은 문자열을 더해서 연결하거나 문자열을 곱해서 표현하는 방식입니다.

문자열 더해서 연결하기(Concatenation)

Python
top = "smartdev"
bottom = ".kr"
top + bottom

문자열을 더해서 연결하는 방법은 단순합니다.

문자열 곱하기

문자열을 곱한다고?
막상 문자열을 곱한다고 하면 의문이 들지만 역시 단순하게 생각하면 단순합니다.

Python
print("=" * 50)
print("Python test")
print("=" * 50)

위 소스를 test.py 에 적용한뒤 저장후 실행을 해보면
아래처럼 출력이 됩니다.
프로그램 제목같은걸 출력할때 보기 좋게 출력할때 사용하면 될거 같습니다.

문자열 길이 구하기

문자열의 길이는 len 함수로 구할수 있습니다.
기본 내장 함수이기 때문에 바로 사용이 가능합니다.

아까 사용한 top 라는 변수에 저장된 문자열의 길이를 확인해보겠습니다.

Python
len(top)

smartdev 라는 문자열의 길이인 8 을 출력해줍니다.

문자열 인덱싱(Indexing)

Python
a = "New habits will unlock new destinies"
     0         1         2         3
     012345678901234567890123456789012345
                          543210987654321

파이썬에서는 0부터 숫자를 시작합니다.
New 의 N 은 0 번째 문자입니다.

Python
a[0]

위 문장은 a 라는 변수안에 있는 문자열에서 특정한 값을 뽑아내라는것입니다. 0 번째 문자를 뽑아내는걸 의미합니다.
이런 작업을 인덱싱(Indexing) 이라고 합니다.

Python
a[5]

Python
a[12]

Python
a[-1]

Python
a[-5]

a[-1] 은 문자열의 뒤에서부터 인덱싱을 한다는 의미입니다.

문자열 슬라이싱(Slicing)

파이썬 문자열에서 한 개의 문자를 뽑아내는것이 아니라 한 개의 단어 .
예를 들어 위 문장에서 habits 라는 단어나 unlock 이라는 단어를 뽑아내는 방법을 문자열 슬라이싱 이라고 합니다.

Python
a[4:10]

a[4:9] 가 아니라 a[4:10] 으로 하는 이유는 끝번호에 해당하는 것은 포함하지 않습니다.

Python
a[23:-10]

위의 슬라이싱 예는 23 번째 ‘n’ 부터 -10 번째는 제외하고 끝에서부터 거꾸로 11 번째 까지가 됩니다.

문자열 슬라이싱 으로 문자열 나누기

Python
a = "20230326Rainy"
date = a[:8]
weather = a[8:]
date
weather

위 예제에서 date 는 a 의 문자열에서 8을 기준으로 처음부터 8 번째를 포함하지 않는, 즉, 0 부터 7번째까지
weather 은 8 번째를 포함해 이후까지 를 나누는 방법입니다.

문자열 슬라이싱으로 문자열 바꾸기

Python
a = "kiyboard"
a[1] = "e"

위 예제처럼 문자열에서 a[1] 에 해당하는 ‘i’ 를 ‘e’ 로 바꾸려 하면 오류가 납니다.
이럴때 문자열 슬라이싱 기법으로 변경을 할수 있습니다.

Python
a[:1]

Python
a[2:]

Python
a[:1] + 'e' + a[2:]

이렇게 문자열 슬라이싱 으로 새로운 문자열을 만들수가 있습니다.

문자열 포매팅(Formatting)

문자열 포매팅 이란 문자열의 특정한 값을 삽입하는 방법입니다.
예를 들어 ‘지금 시간은 5시입니다.’
시간이 지나 7시가 되었을때
‘지금 시간은 7시입니다.’라고 출력해주는 프로그램이 있다면 5 라는 숫자를 7 로만 변경해준겁니다.

문자열에 숫자 바로 대입

Python
"I eat %d strawberry." % 5

여기서 %d 를 문자열 포맷 코드 라고 합니다.

문자열 바로 대입

Python
"I eat %s strawberry." % "three"

여기서는 %d 가 아니라 %s 를 사용했습니다.
숫자는 %d, 문자열은 %s 를 사용합니다.

숫자를 입력한 변수로 대입

Python
number = 3
"I eat %d strawberry." % number

2개 이상의 값 넣기

Python
number = 50
day = "three"
"I eat %d strawberry. I had a stomach ache for %s days." % (number, day)

위 예제처럼 2개 이상의 값을 넣을때에는 마지막 % 뒤에 괄호와 콤마로 각각의 값을 넣어주면 됩니다.

문자열 포맷 코드

숫자형과 문자열 외에도 여러가지 포맷 코드가 있습니다.

코드 -  설명
%s - 문자열 (String)
%c - 문자 1 개 (character)
%d - 정수 (Integer)
%f - 부동소수 (floating‑point)
%o - 8 진수
%x - 16 진수
%% - Literal % (문자 % 자체)

이중에서 %s 는 자동으로 % 뒤에 있는 값을 문자열로 바꿔주기때문에 어떤형태의 값을 넣더라도 입력이 가능합니다.

Python
"I eat %s strawberry." % 3

Python
"I eat %s strawberry." % 3.55

문자열 안에서 ‘%’를 표현해주고 싶다면 ‘%%’ 를 사용해야 합니다.

Python
"The margin of error is %d%%." % 10

Leave a Comment