본문 바로가기

Language/Python

[Python] <built-in method islower of str object at 0x0000026A92C282B0>

#터미널 실행결과

원래문자열: Hellow World
HELLOW WORLD
<built-in method lower of str object at 0x0000026A92C282B0>

<built-in method lower of str object at 0x0000026A92C282B0>


lower 메서드에 이상이 생겨서 난 오류입니다.

 

#한 문자열 안에 있는 대문자는 소문자로, 소문자는 대문자로 변경
a=input("원래문자열: ")


print(a.upper())
print(a.lower)  #() 안씀..

 

원인: print(a.lower)에서 ()를 쓰지 않았습니다.

#한 문자열 안에 있는 대문자는 소문자로, 소문자는 대문자로 변경
a=input("원래문자열: ")


print(a.upper())
print(a.lower())
#실행결과
원래문자열: Hellow World
HELLOW WORLD
hellow world

[lower -> lower()로 작성합니다.]
lower() 메서드에 붙여 쓰지 않았던 ()를 작성함으로써 대문자를 소문자로 바꿔주는 lower() 메서드가 적용됩니다.

 

아래는 추가로 연습하면서 발견한 오류입니다. 
이 오류도 isupper라는 내장 함수를 사용하는 구문에 ()를 덧붙이지 않아 발생한 오류입니다.
실행결과 isupper() 내장 함수가 적용되지 않아 str에 저장되는 입력받은 문자열의 모든 문자가 바로 if문 안으로 들어가 res+=str [i]. lower() 함수만 적용됩니다.

str=input("원래 문자열: ")
res=""

for i in range(len(str)):
    if (str[i].isupper): #isupper가 적용되지 않음. str[i]는 lower()만 적용됨.
        res+=str[i].lower() 
    else:
        res+=str[i].upper()

print(res)
#실행결과

원래 문자열:Hellow World
hellow world

 

[isupper -> isupper()로 수정해줍니다.]

str=input("원래 문자열: ")
res=""

for i in range(len(str)):
    if (str[i].isupper()): #isupper -> isupper()로 수정
        res+=str[i].lower() 
    else:
        res+=str[i].upper()

print(res)
#실행결과

원래 문자열: Hellow World
hELLOW wORLD

대문자는 소문자로, 소문자는 대문자로 적용이 잘 되었음을 확인할 수 있습니다.

'Language > Python' 카테고리의 다른 글

[Python] 섭씨온도 화씨온도 변환  (0) 2022.01.02
[Python] 거북이로 x표시, 원 그리기  (0) 2021.09.04