Почему не перехватывается исключение NameError?
Немогу понять, почему не перехватывается исключение NameError. Что не так с кодом?
def chek(args):
c = 1
while c == 1:
try:
count = 0
for a in args:
args[count] = int(a)
count += 1
except (TypeError, ValueError):
del args[count]
except NameError:
print(count)
args[count] = ''
else:
c = 0
return args
args = [5,'z',7,6,t,4]
args = chek(args)
Ответы (1 шт):
Автор решения: nomnoms12
Ваше решение можно упростить:
→ Ссылка
Переменная t не определена:
args = [5, 'z', 7, 6, t, 4]
# ^
Вы не перехватываете это исключение. Чтобы перехватывать его:
try:
args = [5, 'z', 7, 6, t, 4]
except NameError:
pass
Ваше решение можно упростить:
def chek(li):
i = 0
while i < len(li):
try:
li[i] = int(li[i])
i += 1
except (TypeError, ValueError):
del li[i]
return li