Моя задача заключается в следующем: «Используя исходное число, удвойте значение каждого другого ди 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 для второго. Я не могу на всю жизнь понять, почему это не работает.