Python 문자열 소문자 변환 방법 3가지

영문으로 된 문자열을 소문자로 바꿔야 하는 경우가 있죠, Python 문자열 소문자 변환 방법을 함께 살펴보겠습니다.

Python 문자열 소문자 변환: str.lower() 메서드

우선 대문자 변환에서 str.upper() 메서드를 사용한 것과 같이 소문자 변환에서는 str.lower() 메서드를 사용할 수 있습니다.

string = "I LoVe YoU!"
string.lower()
Python

위의 코드를 실행하면 아래 그림과 같이 문자열이 소문자로 변환된 것을 확인할 수 있습니다.

그림 1. Python 문자열 소문자 변환: str.lower() 메서드 사용
그림 1. Python 문자열 소문자 변환: str.lower() 메서드 사용

Python 문자열 소문자 변환: str.casefold() 메서드

str.lower() 메서드는 영문에 적용되지만, str.casefold() 메서드는 다국어를 보다 적극적으로 지원합니다. 다음의 독일어 문장은 “나는 축구공을 샀다.”라는 표현입니다.

string = "Ich habe FußBälle gekauft."
>>> string.lower()
>>> string.casefold()
Python

아래에서 str.lower() 메서드와 str.casefold() 메서드를 사용한 결과에 차이가 있는 것을 살펴보세요.

그림 2. Python 문자열 소문자 변환: str.casefold() 메서드 사용
그림 2. str.casefold() 메서드 사용

재미삼아 대문자를 소문자로 변환해 보기

대문자와 소문자는 ASCII 코드로 일정한 값의 차이가 있습니다. 이를 활용해서 대문자를 소문자로 변환하는 코드를 작성해 보겠습니다.

def lower_case(string):
  diff = ord('a') - ord('A')
  result = ''
  for char in string:
    if 'A' <= char <= 'Z':
      result += chr(ord(char) + diff)
    else:
      result += char
  return result

print(lower_case("I LoVe YoU!"))
Python

위의 코드를 실행해서 아래와 같은 결과를 얻었습니다.

그림 3. 사용자 정의 함수 lower_case() 사용 결과
그림 3. 사용자 정의 함수 lower_case() 사용 결과

정리

영문만 변환하면 되는 경우에는 str.lower() 메서드를 사용하면 되며, 독일어 등 다국어 표현에서 보다 엄격하게 소문자로 변환하기를 원한다면 str.casefold() 메서드를 사용하면 됩니다.

관련 자료

Python의 Built-in Types를 참고했습니다.

같이 읽으면 좋은 글

Leave a Comment