Descobri uma boa maneira de fazer isso usando uma função e um código básico. Este é um código que aceita uma string e conta o número de letras maiúsculas, letras minúsculas e também 'outras'. Outro é classificado como espaço, sinal de pontuação ou mesmo caracteres japoneses e chineses.
def check(count):
lowercase = 0
uppercase = 0
other = 0
low = 'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'
upper = 'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'
for n in count:
if n in low:
lowercase += 1
elif n in upper:
uppercase += 1
else:
other += 1
print("There are " + str(lowercase) + " lowercase letters.")
print("There are " + str(uppercase) + " uppercase letters.")
print("There are " + str(other) + " other elements to this sentence.")
character.isalnum() or character == "_"
.