2015-03-31 5 views
-1

Мне было поручено сделать основной валидатор кредитной карты. Тем не менее, я застрял в той части, где все цифры номера кредитной карты должны индивидуально складываться, чтобы делиться на десять. Так, например, 12345 добавит до 15, а затем вернет False, а 1234 вернет True.Python - вопрос проверки валидации кредитной карты

Код у меня в данный момент:

for c in cardnum: 
    if sum(c) % 10 != 0: 
    return False 
    return True 

Ошибка у меня сейчас есть результат о том, что есть TypeError для типа неподдерживаемого операнда (ов) для +: «Int» и «ул»

+0

Что такое 'cardnum'? и его формат? – Kasramvd

+0

Скорее всего, 'cardnum' - это список или кортеж строк, а не ints. – cdarke

ответ

0

Ваша непосредственная проблема в том, что c кажется строкой, поэтому вы не можете добавить свои символы так, как хотите. Может быть, вы должны преобразовать их в целые числа первых:

if sum([int(d) for d in c]) % 10 != 0: 

Это список понимание: если c='1234', код в квадратных скобках создает список целых чисел: [1, 2, 3, 4], которые вы можете передать в функцию sum() без каких-либо проблем.

Смежные вопросы