Предыстория: В одном из «упражнений для пальцев» в моем вводном учебнике я попытался написать такую программу, чтобы научить меня использовать блок try-except. Учебник предназначен для сопровождения курса «6.00x» на edX, MOOC MIT. Это не часть самого онлайн-класса, а просто некоторая практика, чтобы я понял блоки try-excpet.
Вот мой код:
def sumDigits(s):
'''Assumes s is a string
Returns the sum of the decimal digits in s
For example, if is is 'a2b3c' it returns 5'''
try:
digitsum = 0
for i in s:
digitsum += int(i)
except TypeError:
return 'You have hit a TypeError'
except ValueError:
return 'You have hit a ValueError'
return digitsum
Итак, у меня возникли проблемы с тем, чтобы не знать, что добавить в предложение исключения. Текст, который я поместил в два предложения исключения, существует потому, что я просто хотел, чтобы моя программа работала. Я предполагаю, что интерпретатор проходит через строку типа «456ab», нажимает «a», затем распечатывает текст, который я сказал ему вернуть, когда он неизбежно попадает в ValueError. Как мне заставить его «игнорировать» буквенные символы в строке и просто использовать числа в строке, и все это в контексте блока try-except?
"".join(filter(str.isdigit, "dfg"))
. - person Ramchandra Apte   schedule 03.12.2013