Почему моя программа проверки контрольной суммы возвращает одинаковые значения для is_valid и контрольной суммы? - PullRequest
0 голосов
/ 22 марта 2020

Моя задача заключается в следующем: «Используя исходное число, удвойте значение каждого другого ди git. Затем сложите значения отдельных цифр вместе (если удвоенное значение теперь имеет две цифры, добавьте цифры по отдельности). Идентификационный номер действителен, если полученная сумма делится на 10. "

Пока мой код выглядит следующим образом:

def validateID(this_id):
is_valid = 0
checksum = 0
sum2 = 0
sum1 = 0
sum3 = 0 

this_id = [int(num) for num in this_id]
for i in range(len(this_id)):
    digit_int = this_id[i]
    if digit_int % 2 == 0:
        doubled_every_other = digit_int * 2
        return doubled_every_other
        if doubled_every_other >= 10:
            sum1 = (doubled_every_other % 10) + (doubled_every_other // 10)
            return sum1
        else:
            sum2 += doubled_every_other
            return sum2
        every_other_sum = sum1 + sum2
        return every_other_sum
    else:
        sum3 += digit_int
        return sum3
    checksum = every_other_sum + sum3
    return checksum
if checksum % 10 != 0:
    is_valid = False
else:
    is_valid = True

return is_valid
return checksum

def main():
    this_id = "1762483"
    is_valid = validateID(this_id) 
    checksum = validateID(this_id)
    print ("Checksum: %d\n" %checksum)
    print ("Valid: %d\n" %is_valid)

    this_id = "79927398713"
    is_valid = validateID(this_id)
    checksum = validateID(this_id)
    print ("Checksum: %d\n" %checksum)
    print ("Valid: %d\n" %is_valid)



   return
# Main program
if __name__ == "__main__":
    main ()

Моя программа при запуске выдает значения 1 для Контрольная сумма и Действительный для первого числа и 7 для второго. Я не могу на всю жизнь понять, почему это не работает.

...