Обработка нескольких исключений(try except)

Пытаюсь обработать сразу два исключения но работает не правильно. Если вводить второму иксу такое же значение как у первого то вызывается то что нужно Exception, но вне зависимости от того что вводится дальше(правильно или нет) вызывается ValueError и цикл не заканчивается. В чем может быть проблема?

def CheckFloat():
    while True:
        try:
            num = float(input())
            break
        except ValueError:
            print('Incorrect input. Try again: ',end=' ')
    return num
def CheckDuplicates(arr):
    while True:
        try:
            num = float(input())
            if arr.index(num)>=0:      #проверка на то есть ли такой элемент в списке
                raise Exception
            break
        except ValueError:
            print('Incorrect input. Try again: ',end=' ')
        except Exception:
            print('The number was already there!. Try again: ',end=' ')
    return num
print('Enter the num of point: ')
n = CheckInt()
while n<=1:
    print('Incorrect input. Try again: ',end=' ')
    n = CheckInt()

arrayX=[]

print('Enter data for x and y: ')                   # Reading data points
for i in range(n):
    print( 'x['+str(i)+']=',end=' ')
    if i==0:
        arrayX.append(CheckFloat())
    else:
        arrayX.append(CheckDuplicates(arrayX))

В данном фрагменте я добавляю Нное кол-во элементов в список проверяя их на правильность ввода


Ответы (1 шт):

Автор решения: Швеев Алексей

Проблема находится в методе arr.index, которая (если вы не нашли элемент) так же вызывает исключение ValueError (а не -1). Вам стоит вместо num = float(input()) использовать num = CheckFloat()

→ Ссылка