KeyErrors и как поднять KeyError

для моего домашнего задания мне говорят поднять ключевую ошибку, если ключ (текст), который вводит пользователь, содержит любые не алфавитные символы и перепрофилируется. До сих пор у меня это работает, но, очевидно, не использует ожидаемую try/except structure

key=input("Please enter the key word you want to use: ")
ok=key.isalpha()
while (ok==False):
    print("The key you entered is invalid. Please try again")
    key=input("Please enter the key word you want to use")

1 ответов


Это не соответствующее использование KeyError (он должен использоваться для поиска dict или подобных ситуаций), но если это то, что вас попросили сделать, попробуйте что-то вроде этого :

def prompt_thing():
    s = raw_input("Please enter the key word you want to use: ")
    if s == '' or not s.isalnum():
        print("The key you entered is invalid. Please try again")
        raise KeyError('non-alphanumeric character in input')
    return s

s = None
while s is None:
    try:
        s = prompt_thing()
    except KeyError:
        pass