невозможно получить условия 'while True' для работы - PullRequest
0 голосов
/ 05 мая 2020

Я пытаюсь создать код, который может генерировать действительные номера кредитных карт. До сих пор я создал генератор случайных чисел, который добавляет перед ним префикс спецификатора c (в данном случае я использую префикс Visa «4» и генерирую дополнительные 15 случайных целых чисел за ним). Проблема, с которой я столкнулся, заключается в том, что я не могу заставить работать свои условия «while True». * числа, которые начинаются с «4», но не соответствуют алгоритму, который я установил в моих условиях «while True». Некоторые числа, напечатанные этим кодом, действительны при копировании и вставке сюда:

https://www.dcode.fr/luhn-algorithm

Однако большинство из них - нет.

Я использовал часть кода, которая подтверждает, что алгоритм Луна успешно работает в другом проекте, но по какой-то причине я не могу заставить его работать здесь. Любые указания приветствуются, так как я новичок в Python. Это то, что я сделал до сих пор ...

import random

    def s():
        prefix = '4'
        return (prefix + str(random.randint(100000000000000,999999999999999)))

    while True:
        print(s())
        q_16= (2*int(s()[14]),2*int(s()[12]),2*int(s()[10]),2*int(s()[8]),2*int(s()[6]),2*int(s()[4]),2*int(s()[2]),2*int(s()[0]))
        p= int("".join(map(str, q_16)))
        p2= list(map(int, str(p)))
        p3= sum(p2)+int(s()[15])+int(s()[13])+int(s()[11])+int(s()[9])+int(s()[7])+int(s()[5])+int(s()[3])+int(s()[1])
        if p3 % 10 == 0:
            break
...