如何生成带有前缀的特定长度的信用卡号?

时间:2019-10-29 20:10:03

标签: python random while-loop credit-card

尝试生成具有给定前缀的一定长度的信用卡号。

    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 :(得分:0)

如果长度为16,str(length)将为您提供字符串'16',其中len为2。只需使用length,不要使用len或str。

除此之外,您的return语句应该在循环之外

答案 1 :(得分:0)

由于您已经在使用random模块,所以我只想提供一种替代解决方案:

from random import choices
from string import digits

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

print(cc_number)