Если вы запустите это:
empty = ""
if empty.islower():
print("The empty string is lowercase")
elif empty.isupper():
print("The empty string is uppercase")
else:
print("The empty string is neither!")
Вы должны получить:
The empty string is neither!
Это потому, что isupper
сначала проверяет наличие более одного символа, прежде чем перейти к проверке его регистр ( смотрите здесь ):
Python isupper является одним из Python String метода, используемого для проверки, имеет ли данная строка хотя бы один символ, и символ либо в верхнем регистре или нет. Если он указан в верхнем регистре, то функция Python isupper возвращает True; в противном случае возвращается False.