Выполнение выполняется из первого IF-блока, т. Е. Если имеется несколько символов, оно не проверяет ожидаемость E3.
и после этого оно переходит к следующему ELIF-блоку, т.е.если есть специальные символы ..
Если вы видите покрытие кода, оно никогда не достигнет третьего блока.
И даже не требуется.Ваши первые две проверки ошибок могут справиться с этим довольно хорошо.
Однако вы все равно хотели бы иметь это исключение в своем тестовом примере, сначала необходимо проверить E3, а затем перейти к E1 и E2
.
Примерно так:
if player_input not in aToz and len(player_input) != 1:
print("Error: Multiple characters and Special characters")
elif len(player_input) != 1:
print("Multiple Characters")
elif player_input not in aToz:
print("Special Character")
else:
print(player_input)