[python] 대소문자 관련 함수 islower(), isupper(), upper(), lower()

hxxziix·2024년 4월 17일

대소문자 변환 함수 upper(), lower()

upper(): 문자열을 모두 대문자로 바꿈
lower(): 문자열을 모두 소문자로 바꿈

str = "AbCdEf"
str.upper() # ABCDEF
str.lower() # abcdef

대소문자 확인 함수 isupper(), islower()

isupper(): 문자열이 모두 대문자이면 True, 아니면 False 반환
islower(): 문자열이 모두 소문자이면 True, 아니면 False 반환

아래의 코드는 결과값으로 모두 False를 반환한다. 이유가 무엇일까?

str = "aBCdEf"
str.islower() # False
str.isupper() # False

isupper(),islower() 두 함수는 문자열이 "모두" 소문자이거나 대문자 일 때에만 True를 반환한다.
하지만 위의 str은 대문자와 소문자가 섞여있어 False를 반환한 것이다.

그렇다면 아래의 코드 결과값은 어떻게 나올까?

str = "ABC123"
str.isupper()

str2 = "abc123"
str2.islower()

str, str2의 결과는 모두 True이다
그 이유는 두 함수 모두 숫자와 상관없이 알파벳이 소문자이냐 대문자이냐만 확인하기 때문에 두 결과 모두 True로 나오는 것을 확인할 수 있다.

그렇다면 대소문자가 섞여있는 문자열 중 대문자는 소문자로 소문자는 대문자로 변환할 때에는 어떻게 하는지 알아보자

str = "aBcDeF"
res = []

for s in str:
    if s.isupper():
        res.append(s.lower())
    elif s.islower():
        res.append(s.upper())
result = "".join(res)
print(result)

반복문으로 문자열 한글자 한글자에 접근하여 소문자인지 대문자인지 확인하고 대문자이면 lower()함수를 이용하여 소문자로 바꿔준 뒤 res 리스트에 추가 해주었고 반대로 소문자라면 upper() 함수를 이용하여 대문자로 바꿔준 뒤 res리스트에 추가 해주었다.

그리고 join() 함수를 이용하여 res 리스트에 있는 요소 하나하나를 result에 넣었고
결과로는 "aBcDeF" 문자열이 "AbCdEf"로 바뀐것을 확인할 수 있었다.

0개의 댓글