- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
def luhn(self):
all_sum = 0
self.__card_number = str(self.__card_number)
self.__card_number = list(self.__card_number)
for element in range(len(self.__card_number)):
if element % 2 == 0:
self.__card_number[element] = int(self.__card_number[element]) * 2
if self.__card_number[element] > 9:
number = self.__card_number[element]
self.__card_number[element] = number // 100 + number // 10 % 10 + number % 10 # sum digits of number
self.__card_number[element] = int(self.__card_number[element])
all_sum += self.__card_number[element]
checksum = 0
while checksum < 10:
if all_sum % 10 == 0:
checksum = str(checksum)
break
else:
all_sum += 1
checksum += 1
self.i = str(self.i)
self.i = list(self.i)
self.i.append(checksum)
self.__card_number = self.i
self.__card_number = "".join(self.__card_number)
Для преокта нужен был алгоритм луна, чтобы создать в конце контрольную сумму. При написании проебался, что мне card_number нужно просто добавить 1 цифру, а не менять его и по этому просто добавил костыль в виде i.
Комментарии (0) RSS
Добавить комментарий