


문자열 N개가 주어진다. 이때, 문자열에 포함되어 있는 소문자, 대문자, 숫자, 공백의 개수를 구하는 프로그램을 작성하시오.
각 문자열은 알파벳 소문자, 대문자, 숫자, 공백으로만 이루어져 있다.
첫째 줄부터 N번째 줄까지 문자열이 주어진다. (1 ≤ N ≤ 100) 문자열의 길이는 100을 넘지 않는다.
첫째 줄부터 N번째 줄까지 각각의 문자열에 대해서 소문자, 대문자, 숫자, 공백의 개수를 공백으로 구분해 출력한다.
주어진 조건에 따라서 구현하면 되는 문제.
word.islower()
-> 문자가 소문자인지 판별해주는 함수
word.isupper()
-> 문자가 대문자인지 판별해주는 함수
word.isdecimal()
-> 문자가 int형으로 변환가능한지 판별해주는 함수
word.isblank()
-> 문자가 공백인지 판별해주는 함수
while True:
try:
s = input()
lower = 0
upper = 0
number = 0
blank = 0
for word in s:
if word.islower():
lower += 1
elif word.isupper():
upper += 1
elif word.isdecimal():
number += 1
elif word.isspace():
blank += 1
print(lower, upper, number, blank)
except EOFError:
break
종료 조건이 이 문제와 같이 명확히 주어지지 않은 경우에는
EOFError 를 사용할 수 있는데,
while True:
try:
...
except EOFError:
break
올바르지 않은 입력이 주어졌을 때 EOFError를 출력한다.
이러한 점을 활용하여 위와 같이 예외처리를 통해 구현할 수 있다.
https://www.acmicpc.net/problem/10820