(Другие ответы уже дали вам хорошие ответы, так что это не полный ответ, это просто объяснение того, что происходит не так.) Область вашего кода, которая вызывает проблему:
for x in password:
if x.isupper():
pass
else:
print('no upper case')
for y in password:
if y.islower():
pass
else:
print('no lower case')
Вы просматриваете весь пароль в цикле, проверяете, является ли каждый символ прописным, а затем выводите «без верхнего регистра», если это не так. Проблема в том, что если один символ слова не является прописным, «that_character_that_isn't_uppercase» .isupper () вернет false и напечатает сообщение об ошибке. Например, пароль PaSSWORD вернет один «без верхнего регистра», поскольку «a» .isupper () имеет значение False. Пароль passworD вернет 7 символов «без верхнего регистра», поскольку все символы p, a, s, s, w, o, r - строчные. То же самое происходит с тестом x.islower (), вы видите, является ли каждый отдельный символ строчным. Я бы реализовал что-то вроде этого:
#password.islower() will return true if all the entire string is lowercase(and thus not uppercase)
if password.islower():
print("No upper case")
elif password.isupper():
print("No lower case")
#Again, password.isupper() sees if all letters are uppercase(which means that there is no lowercase letters).
Надеюсь, это помогло!