函数代码
1 | from random import Random |
4 | def completed_number(prefix, length): |
13 | while len (ccnumber) < (length - 1 ): |
14 | digit = str (generator.choice( range ( 0 , 10 ))) |
15 | ccnumber.append(digit) |
20 | reversedCCnumber.extend(ccnumber) |
21 | reversedCCnumber.reverse() |
22 | while pos < length - 1 : odd = int (reversedCCnumber[pos]) * 2 if odd > 9 : |
25 | if pos ! = (length - 2 ): |
26 | sum + = int (reversedCCnumber[pos + 1 ]) |
29 | checkdigit = (( sum / / 10 + 1 ) * 10 - sum ) % 10 |
30 | ccnumber.append( str (checkdigit)) |
31 | return ''.join(ccnumber) |
33 | def credit_card_number(prefixList, howMany = 1 , length = 16 ): |
36 | if type (prefixList) = = str : |
37 | prefixList = [[i for i in prefixList]] |
38 | if type (prefixList[ 0 ]) = = str : |
39 | prefixList = [[i for i in List ] for List in prefixList] |
41 | while len (result) < howMany: |
42 | ccnumber = copy.copy(generator.choice(prefixList)) |
43 | result.append(completed_number(ccnumber, length)) |
调用示例
#生成前缀为’123456′,1个,卡号长度16位
1 | fakecard = credit_card_number( '123456' ) |
#生成前缀为’123456′,1个,卡号长度16位
1 | fakecard = credit_card_number( '123456' ,1,16) |
#生成前缀为’123’或’234’的信用卡卡号,共15个,卡号长度16位
1 | fakecard = credit_card_number([ '123' , '234' ], 15,16) |
简单封装
2 | python credit_card_number.py |
原文链接: https://51.ruyo.net/8293.html