Валидация ИНН

Для собственных нужд понадобилось соорудить на Python функцию для проверки корректности ИНН. Собственно, вот результат. Работает и со второй, и с третьей версиями Python.

def is_valid_inn(inn):
    '''функция проверяет корректность ИНН
    (длина, набор символов, контрольная сумма)
    :param inn: строка с ИНН (10 или 12 символов)
    :type inn: str or unicode
    :returns: True если ИНН корректный
    :rtype: bool
    '''
    multiplier = [3, 7, 2, 4, 10, 3, 5, 9, 4, 6, 8]
    try:
        inn = [int(i) for i in inn]
    except ValueError:
        return False
 
    def checksum(digit):
        _inn = [0] * (12 - digit) + inn
        s = sum([multiplier[i] * _inn[i] for i in range(11)])
        return _inn[11] == s % 11 % 10
 
    if len(inn) == 12:
        return checksum(11) and checksum(12)
    elif len(inn) == 10:
        return checksum(10)
    return False

Многоточие

В HTML есть вагон и маленькая тележка разнообразных сущностей, которые дают возможность довольно легко отразить в HTML документе символы, которых нет на клавиатуре.

Помимо прочих, есть и сущность для горизонтального многоточия (…), которое в народе более известно как просто многоточие. С момента моего первого знакомства с мнемониками, я наивно выделил в сочетании … знакомое слово hell и, искренне недоумевая как многоточие связано с адом, запомнил этот мнемоник как адский IP. И вот недавно я узнал, что hellip — это сокращение от… барабанная дробь… Horizontal ellipsis! Горизонтальное многоточие, то бишь.

С уважением, ваш Кэп.