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

Python 如何生成具有前缀的特定长度的信用卡号?,python,random,while-loop,credit-card,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 而len(str(cc_编号))

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

    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
而len(str(cc_编号))<(len(str(长度))-1:
数字=str(随机的随机范围(0,9))
抄送号码=str(抄送号码)+str(数字))
返回抄送号码
我希望得到一个16位数的数字,前缀可变。如何让这段代码生成一个大小合适的数字字符串?顺便说一下,这段代码只将1个随机数字连接到字符串的末尾。。。因此,我希望得到'4349578451278456',但实际输出是'41'

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


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

因为您已经在使用
随机
模块,我只想提供一个替代解决方案:

from random import choices
from string import digits

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

print(cc_number)

ccnumber+''.join(random.choices(string.digits,k=16长度(ccnumber))
此外,请注意,并非所有16位数的数字都是有效的信用卡号。我知道,这个数字应该符合Luhn算法()才能被视为有效的CC数字。卢恩算法对我来说不是问题。是这部分伤了我的头。花了几个小时来解决一个问题。。1秒“轮班+制表”问题。。