Как создать номер кредитной карты определенной длины с префиксом? - PullRequest
0 голосов
/ 29 октября 2019

Попытка сгенерировать номер кредитной карты определенной длины с заданным префиксом.

    while len(str(cc_number)) < (len(str(length)) - 1):
        digit = str(random.randrange(0, 9))
        cc_number = str(cc_number) + str((digit))
        return cc_number

Я ожидаю получить, скажем, 16-значный длинный номер с заданным префиксом переменного размера. Как сделать так, чтобы этот фрагмент кода генерировал строку чисел нужного размера? Этот код, кстати, объединяет только 1 случайную цифру в конец строки ... Так что я ожидаю получить «4349578451278456», но фактический результат равен «41»

Ответы [ 2 ]

0 голосов
/ 29 октября 2019

Поскольку вы уже используете модуль random, я просто хочу предложить альтернативное решение:

from random import choices
from string import digits

cc_digits = choices(digits, k=16)
cc_number = "".join(cc_digits)

print(cc_number)
0 голосов
/ 29 октября 2019

Если длина равна 16, str(length) даст вам строку '16', которая имеет len из 2. Просто используйте length без len или str.

Помимо этого, ваш оператор возвратадолжно быть вне петли

...