Test/python

대소문자 바꿔서 출력하기 (upper, lower, swapcase)

soo15 2023. 4. 25. 16:27

[문제 설명]

영어 알파벳으로 이루어진 문자열 str이 주어집니다. 

각 알파벳을 대문자는 소문자로 소문자는 대문자로 변환해서 출력하는 코드를 작성해 보세요.


[제한사항]

1 ≤ str의 길이 ≤ 10
str은 알파벳으로 이루어진 문자열입니다.

 

[입출력 예]

입력 #1)
aBcDeFg


출력 #1)
AbCdEfG

 


 

[나의 풀이]

str = input()

a = []

# 1. 알파벳이 소문자인지 대문자인지 판별하여 상호변환
for i in str:
    if i.islower():
        a.append(i.upper())
    else:
        a.append(i.lower())

# 2. list인 a를 문자열로 바꾸기
print(''.join(a))

 


[설명]

1. 알파벳이 소문자인지 대문자인지 판별하여 상호변환 

    (대문자는 소문자로 / 소문자는 대문자로)

str = 'aBcDeFg'

a = []
for i in str:
    if i.islower():
        a.append(i.upper())
        print(a)
    else:
        a.append(i.lower())
        print(a)

Out[1]:

['A']

['A', 'b']

['A', 'b', 'C']

['A', 'b', 'C', 'd']

['A', 'b', 'C', 'd', 'E']

['A', 'b', 'C', 'd', 'E', 'f']

['A', 'b', 'C', 'd', 'E', 'f', 'G']

 

 

> 대문자인지 확인 :  string.isupper()

> 소문자인지 확인 :  string.islower()

 

> 대문자로 바꾸기 :  string.upper()

> 소문자로 바꾸기 :  string.lower()

 

 

2. list인 a를 문자열로 바꾸기

print(a)
print(''.join(a))

Out[2]:

['A', 'b', 'C', 'd', 'E', 'f', 'G']

AbCdEfG

 

 


[다른 사람 풀이 1]

print(input().swapcase())

[설명]

str = 'aBcDeFg'
print(str.swapcase())

Out[3]:

AbCdEfG

 

> swapcase()

  : 대문자를 소문자로, 소문자를 대문자로 상호 변환해 주는 함수

 


[다른 사람 풀이 2]

str = input()
for i in str:
    if i.islower():
        print(i.upper(),end='')
    else:
        print(i.lower(),end='')

> 알파벳을 상호 변환하여 끝을 ''로 만들기 


[다른 사람 풀이 3]

ans = ''
for a in input():
    if a.isupper():
        ans += a.lower()
    else:
        ans += a.upper()
print(ans)

> 알파벳을 상호 변환하여 ans에 하나씩 추가