본문 바로가기
개발

파이썬 문자열 슬라이싱 하는 방법 - 예제 및 실전 연습

by developer's warehouse 2024. 1. 3.

파이썬에서는 문자열 슬라이싱을 사용하여 문자열을 특정 부분만 추출할 수 있습니다. 문자열 슬라이싱은 다음과 같은 형식을 가집니다: string[start:stop:step]. 여기서 start는 시작 인덱스, stop은 종료 인덱스(해당 인덱스는 포함되지 않음), step은 슬라이스 간격입니다.

파이썬 문자열 슬라이싱 하는 방법 썸네일

1. 파이썬 문자열 슬라이싱 기본 사용

text = "Hello, World!"

# 처음부터 끝까지 전체 문자열
result = text[:]
print(result)  # Output: Hello, World!

# 시작 인덱스부터 끝까지
result = text[7:]
print(result)  # Output: World!

# 시작 인덱스부터 종료 인덱스 이전까지
result = text[7:12]
print(result)  # Output: World

# 음수 인덱스 사용 (끝에서부터 역으로 세어짐)
result = text[-6:-1]
print(result)  # Output: World

2. 파이썬 문자열 슬라이싱 간격(Step) 사용

text = "Python Programming"

# 간격을 이용하여 홀수 번째 문자만 추출
result = text[::2]
print(result)  # Output: Pto rgamn

# 간격을 이용하여 역순으로 문자열 추출
result = text[::-1]
print(result)  # Output: gnimmargorP nohtyP

3. 파이썬 문자열 슬라이싱 특정 간격으로 슬라이싱

text = "abcdefgh"

# 2씩 건너뛰며 슬라이싱
result = text[1::2]
print(result)  # Output: bdfh

4. 파이썬 문자열 슬라이스 결과를 새로운 변수에 할당

text = "Python"

# 슬라이스 결과를 새로운 변수에 할당
substring = text[2:5]
print(substring)  # Output: tho


지금까지 살펴본 파이썬 슬라이싱 기능을 사용하면 문자열을 특정한 부분만 추출하여 필요한 정보를 효과적으로 다룰 수 있습니다.

5. 실전 사용 예

DBMS 프로그램시 특정 데이터를 바인딩하여 execute할때, 데이터가 길어서 예외가 발생하는 부분이 있습니다.

이 코드를 슬라이싱을 이용해서 수정합니다.

아래 코드는 execute시 예외가 발생하면 data의 마지막 요소의 길이를 100자로 잘라서 다시 execute하는 코드입니다:

p = ["?"]*len(tuples[0])
print(tuples[0])
sql = "INSERT INTO %s VALUES (%s)" % (tableName, ",".join(p))
for data in tuples:
    try:
        # Execute the query for each tuple
        self.cursor.execute(sql, data)
        insertCount = insertCount + 1
        # print("Inserted data: %s" % str(data))
    except Exception as e:
        # Print the SQL statement and the exception if an error occurs
        # print(f"Error executing SQL: {sql}")
        print(f"Exception: {e} Error executing SQL: {sql}")
        errCount = errCount + 1
        # If an error occurs, truncate the last element of data to 100 characters and retry
        data = list(data)
        data[len(data)-1] = data[len(data)-1][:100]
        try:
            self.cursor.execute(sql, data)
            insertCount = insertCount + 1
        except Exception as e:
            print(f"Exception after truncation: {e} Error executing SQL: {sql}")
            errCount = errCount + 1

위의 코드에서, 예외가 발생하면 data의 마지막 요소를 100자로 잘라서 다시 execute합니다. 만약 이후에도 예외가 발생하면, 그 예외도 출력합니다.

이렇게 하면 data의 마지막 요소의 길이가 문제를 일으키는 경우에 대응할 수 있습니다.

그러나 이 코드는 data의 21번째 요소가 문자열이라고 가정하고 있으므로, 이 가정이 맞는지 확인해야 합니다. 또한, 이 코드는 data의 21번째 요소가 문제를 일으키는 경우만 처리하므로, 다른 요소나 다른 문제가 예외를 일으키는 경우에는 추가적인 처리가 필요할 수 있습니다. 이러한 경우에는 오류 메시지를 분석하여 적절한 대응 방안을 결정해야 합니다.

오늘은 파이썬에서 문자열을 다루는 법을 알아보았습니다. 파이썬은 문자열을 일반 배열처럼 다룰 수 있게 해주는 슬라이싱 기능을 이용해서 편리하게 처리할 수 있습니다.

facebook twitter kakaoTalk kakaostory naver band shareLink