Я пытаюсь определить функцию, которая будет включать переменную n
, где n
будет строкой чисел, например, "3884892993"
, определение функции начинается как is_true(n)
, однако, если n собираетсябыть строкой, если она будет is_true(n)
, а затем, когда строка определена, я могу проверить функцию с примером строки, такой как n = "3884892993"
.Однако я получаю синтаксическую ошибку при использовании is_true(n)
.И мне просто интересно, как бы я протестировал эту функцию с примером строки для n.
Вся моя функция для определения показана здесь: http://oi44.tinypic.com/282i3qo.jpg, но имейте в виду, что я абсолютный новичоктак что, скорее всего, будет много ошибок, но я был бы признателен за помощь некоторых экспертов, если это вообще возможно:)
def is_valid("n"): #n is the number to be checked.
number =
[int(y) for y in A] #converts the string into a list of useable digits.
altern1 = integer[-2::-2] #sets altern1 as one set of alternating digits.
double = [x*2 for x in altern1] #doubles each element of the list altern1.
sum1 = sum(double) # adds together all the doubled items of the list.
altern2 = integer[-1::-2] #sets altern2 as the other set of alternating digits.
return sum2 = sum(altern2)#sums the other set of alternating digits.
sumtotal = sum1 + sum2 #works out the total sum to be worked with.
for mod = sumtotal % 10: #works out remainder when sumtotal is divided by 10
if mod == 0 : #if remainder is zero sumtotal is a multiple of 10
print 'True' #sumtotal is a multiple of 10 therefore n is a credit card number
else:
print 'False' #sumtotal is NOT a multiple of 10 therefore not a valid credit card number
Вот актуальный вопрос:
Алгоритм проверки номера следующий: (а) Начиная с предпоследней цифры и переходя к первой цифре, удваивайте каждую чередующуюся цифру.(b) Суммируйте удвоенные цифры, рассматривая 13 как 1 + 3 и т. д., и прибавьте результат к сумме недвоенных цифр (c) Если сумма делится на 10, число является действительным номером кредитной карты.
Напишите и протестируйте функцию is_valid (), которая принимает в качестве аргумента номер кредитной карты в виде строки (например, действителен («49927398716»)) и возвращает True или False в зависимости от того, является ли этот номер действительным номером кредитной карты.