Обработка ошибок в python для пользовательских исключений

#python #python-3.x #error-handling

Вопрос:

Я пытаюсь поместить исключение ошибки в эти операторы. В принципе, я хочу выдать ошибку, если будет введено что-либо, кроме элементов в списке. Я знаю, почему этот код не работает, но я не уверен, как это исправить. Пожалуйста, помогите мне сделать так, чтобы это сработало. Спасибо

 while True:
        sign = [" ", "-" , "/" , "*"]
        try:
            operation_type=(input("what operation type you want to do?"))
            for i in range (len(sign)) :
                
                if (operation_type!= sign[i]):
                    print ("pass")
                    raise Invalid
                    i =1
                break
        except Invalid:
            print("Please input   or - or / or *")
 

Ответ №1:

Вот что я нашел, что сработало лучше всего (я включил комментарии, которые должны все объяснить):

 sign = [" ", "-" , "/" , "*"]

while True:
    operation_type=input("what operation type you want to do?")

    if operation_type in sign:#If the input is in one of the operations in sign, then quit.
        print(operation_type, 'passed')
        break#Break out of checking loop, as the requirement is met

    print('that is not the required operation')#Essentially your exception
         
 print('program done')
 

Я надеюсь, что это то, что вы ищете!