【发布时间】:2020-02-25 02:55:27
【问题描述】:
尝试生成具有给定前缀的特定长度的信用卡号。
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'
【问题讨论】:
-
ccnumber + ''.join(random.choices(string.digits, k=16-length(ccnumber))) -
另外,请注意并非所有 16 位长数字都是有效的信用卡号。该号码应符合 Luhn 算法 (en.wikipedia.org/wiki/Luhn_algorithm) 才能被视为有效的 CC 号码
-
是的,我知道。 Luhn 算法对我来说不是问题。就是这部分让我头疼。花了几个小时来解决一个问题.. 1 秒 'Shift + TAB' 问题..
标签: python random while-loop credit-card