파이썬에서 문자열의 대소문자 개수 세기
문자열이 주어졌을 때, 파이썬을 활용하면 대문자와 소문자가 각각 몇 개 포함되어 있는지 손쉽게 확인할 수 있습니다. 예를 들어 다음과 같은 문자열이 있다고 가정해 보겠습니다.
"Hello World"
이 문자열에 대한 카운트 결과는 다음과 같아야 합니다.
Upper case: 2 Lower case: 8
구현 방법
간단한 for 반복문과 두 가지 조건문만으로 대문자와 소문자를 각각 판별하여 개수를 셀 수 있습니다. 문자 하나씩 순회하면서 해당 문자가 영문 대문자 범위('A'~'Z')에 속하는지, 아니면 소문자 범위('a'~'z')에 속하는지 검사하면 됩니다.
예제 코드
def count_upper_and_lower(sentence):
upper = 0
lower = 0
for i in sentence:
if i >= 'A' and i <= 'Z':
upper += 1
elif i >= 'a' and i <= 'z':
lower += 1
print("Upper case: " + str(upper))
print("Lower case: " + str(lower))
count_upper_and_lower("Hello World")실행 결과
위 코드를 실행하면 다음과 같은 출력이 나타납니다.
Upper case: 2 Lower case: 8
더 간결한 방법: isupper()와 islower() 활용
비교 연산자 대신 파이썬의 내장 문자열 메서드인 isupper()와 islower()를 사용하면 코드를 더욱 직관적이고 안전하게 작성할 수 있습니다. 이 방법은 유니코드 문자도 올바르게 처리한다는 장점이 있습니다.
def count_upper_and_lower(sentence):
upper = sum(1 for c in sentence if c.isupper())
lower = sum(1 for c in sentence if c.islower())
print("Upper case:", upper)
print("Lower case:", lower)
count_upper_and_lower("Hello World")두 방식 모두 동일한 결과를 출력하지만, 실무에서는 isupper()와 islower() 메서드를 사용하는 것이 가독성과 유지보수 측면에서 더 권장됩니다.