조금씩 꾸준히 완성을 향해

[Python] 문자열 거꾸로 뒤집기(slice, reverse, for 반복문) 본문

Python/문법

[Python] 문자열 거꾸로 뒤집기(slice, reverse, for 반복문)

all_sound 2022. 8. 25. 15:40

 

문자열을 거꾸로 뒤집어 출력하기 위한  3가지 방법을 소개한다. 

 

▶ slice 사용

 

슬라이싱을 사용하면 간단하게 문자열을 뒤집어 출력할 수 있다.

 

slice(start, stop[, step])

슬라이싱은 세가지 인자를 받는다. (마지막 step은 optional)

  • start : 슬라이싱을 시작할 Index 
  • end : 슬라이싱이 종료될 Index (포함되지 않는 index  -> end 직전 index까지 슬라이싱 
  • step : index의 간격을 설정. 기본값은 1
str = 'Hello, World!'
reversed_str = str[::-1]

print(f'Original: {str}')
print(f'Reversed: {reversed_str}')

# Original: Hello, World!
# Reversed: !dlroW ,olleH

 str[::-1]

 start와 end가 비워져 있고, step 이 -1로 설정돼 있다. 

 즉, str 문자열 처음부터 끝까지 전범위에 걸쳐서 슬라이싱이 진행되고, 뒤에서부터 시작해서 차례대로 문자 하나하나가 출력된다. 

 

 

▶ reversed() 함수 사용

 

가장 직관적이고 간단하게 쓸 수 있는 내장 함수이다. 

str = 'Hello, World!'
print(reversed(str))  # <reversed object at 0x0000028A39C0BAC0>
print(type(reversed(str)))  #<class 'reversed'>

reversed_str = "".join(reversed(str)) # 문자열로 변환

print(f'Original: {str}') 
print(f'Reversed: {reversed_str}') 
# Original: Hello, World!
# Reversed: !dlroW ,olleH

먼저 문자열을 reversed() 함수에 넣으면 'reversed object'가 반환된다. 

join() 함수를 사용해 이 object를 다시 문자열로 바꾸면 뒤집기가 완성된다. 

 

 

▶ for 반복문 사용

 

for loop를 사용해서 문자 하나하나씩을 더하는 방법으로 출력할 수도 있다. 

str = 'Hello, World!'
reversed_str = ''
for i in str : 
    reversed_str = i + reversed_str
    
print(f'Original: {str}')
print(f'Reversed: {reversed_str}')
# Original: Hello, World!
# Reversed: !dlroW ,olleH

빈 문자열을 만든 후, str 에서 문자 하나하나를 꺼내 오른쪽으로 더하면 위와 같이 문자열이 거꾸로 만들 수 있다.