Я работаю над валидатором кредитных карт. Эта сфера для меня новая, так что, пожалуйста, не смейтесь: D Я пытаюсь закончить ее без 1027 * * без каких-либо библиотек.
def creditCardValidation(creditcard):
creditcard = creditcard.replace( ' ', '' )
creditcard = [int(i) for i in creditcard]
evens = creditcard[::2]
odds = creditcard[1::2]
evens = [element * 2 for element in evens]
for j in evens:
if j >= 10:
j = [int(d) for d in str(j)]
for x in j:
evens.append(x)
for j in evens:
if j >= 10:
evens.remove(j)
return ((sum(evens) + sum(odds)) % 10 == 0)
creditCardValidation('1234 5678 9101 1213')
creditCardValidation('4561 2612 1234 5464')
creditCardValidation('4561 2612 1234 5467')
Так что проблема в массиве четных . Возвращает
[2, 6, 14, 0, 2, 2, 1, 0, 1, 4, 1, 8]
[8, 4, 2, 2, 6, 12, 1, 2, 1, 0, 1, 2]
[8, 4, 2, 2, 6, 12, 1, 2, 1, 0, 1, 2]
Должен возвращать те же результаты, кроме тех, которые больше 10. Все работает хорошо. Взгляните на первый массив, 18 удалены, а также 10, но 14 нет.