파이썬에서 문자열은 순회 가능한(iterable) 객체입니다. 즉, 인덱싱과 슬라이싱을 통해 문자열의 값에 접근할 수 있으며, 이 기법들을 활용하면 개별 문자나 특정 범위의 문자들을 손쉽게 가져올 수 있습니다.
이 글에서는 파이썬 문자열에서 마지막 문자를 제거하는 방법을 알아봅니다. 실제 예제를 단계별로 따라가며 자신의 코드에서 이 작업을 어떻게 수행할 수 있는지 함께 살펴보겠습니다.
파이썬: 문자열에서 마지막 문자 제거하기
직원 식별자(identifier)에서 마지막 문자를 제거하는 프로그램을 만들어 보겠습니다. 이 마지막 문자는 해당 직원이 소속된 부서를 나타냅니다.
예를 들어 "M"이라는 값은 직원이 마케팅 부서에 근무하고 있음을 의미합니다. 새로운 부서 관리 시스템이 도입되면서 이 문자가 더 이상 필요하지 않게 되었고, 이를 제거하려는 상황입니다.
먼저 input() 메서드를 사용해 사용자에게 직원 식별자를 입력받는 코드부터 시작해 보겠습니다.
identifier = input("직원 식별자를 입력하세요: ")
다음으로 식별자에서 마지막 문자를 제거합니다.
new_identifier = identifier[:-1]
[:-1]은 문자열 슬라이싱 연산으로, 문자열의 마지막 문자를 잘라내는 역할을 합니다. 음수 인덱싱을 사용하면 문자열의 끝에서부터 요소에 접근할 수 있습니다. 이제 새로운 식별자를 콘솔에 출력해 보겠습니다.
print("직원의 새 식별자는 {}입니다.".format(new_identifier))
.format() 문장은 문자열 안의 중괄호({})를 직원의 새 식별자 값으로 대체합니다. 코드를 실행하면 다음과 같은 결과가 출력됩니다.
직원 식별자를 입력하세요: 28371M
직원의 새 식별자는 28371입니다.
프로그램이 직원 식별자의 마지막 문자를 성공적으로 제거했습니다.
예외 처리로 완성도 높이기
하지만 아직 끝난 것이 아닙니다. 만약 사용자가 아무 값도 입력하지 않으면 프로그램은 다음과 같이 출력합니다.
직원의 새 식별자는 입니다.
이런 결과는 다소 어색해 보이므로 개선이 필요합니다. 식별자의 길이가 2자보다 길 때만 슬라이싱을 수행하고, 그렇지 않은 경우에는 유효한 식별자를 입력하도록 안내하도록 바꿔 보겠습니다.
식별자의 길이를 검사하는 if 문을 추가해 보겠습니다.
identifier = input("직원 식별자를 입력하세요: ")
if len(identifier) > 1:
new_identifier = identifier[:-1]
print("직원의 새 식별자는 {}입니다.".format(new_identifier))
else:
print("유효한 식별자를 입력해 주세요.")
len() 메서드로 직원 식별자의 길이를 확인합니다. 식별자의 길이가 1보다 크면 if 문이 실행되고, 그렇지 않으면 else 문이 실행됩니다.
이제 한 글자짜리 식별자를 입력하여 프로그램을 실행해 보겠습니다.
직원 식별자를 입력하세요: B
유효한 식별자를 입력해 주세요.
코드가 유효한 식별자를 입력해야 한다고 정확하게 안내해 줍니다.
참고: 다른 방법들
[:-1] 슬라이싱 외에도 마지막 문자를 제거하는 몇 가지 방법이 있습니다.
len() 함수와 조합한 슬라이싱:
new_identifier = identifier[:len(identifier) - 1]
rstrip() 사용:
text = "28371M" new_text = text.rstrip(text[-1])
다만 rstrip()은 지정한 문자가 문자열 끝에 연속으로 나타나면 모두 제거한다는 점에 유의해야 합니다. 예를 들어 "28371MM"에 위 코드를 적용하면 M 두 개가 모두 삭제됩니다. 정확히 마지막 한 글자만 제거하려면 슬라이싱 방식이 가장 안전합니다.
마무리
슬라이싱 문법을 활용하면 파이썬에서 문자열 객체의 마지막 문자를 아주 간단하게 삭제할 수 있습니다. 문자열 뒤에 [:-1]만 붙여주면 됩니다. 참고로 파이썬의 문자열은 불변(immutable)이므로 원본 문자열은 변경되지 않고, 잘라낸 결과로 새로운 문자열이 생성된다는 점도 기억해 두시기 바랍니다. 이제 여러분도 전문가처럼 파이썬 문자열의 마지막 문자를 제거할 준비가 되었습니다!