Python实现随机生成任意数量车牌号(完全符合2020年中国车牌号标准)

更改:之前写的还是有漏洞的,之前写的默认后五位全是数字,但是实际上不是这样的,作者百度了相关标准,如下:
(一)前4位必须有1位且只能有1位是英文字母(但I和O不能使用),英文字母位置可以在4位中自由选择,其它3位是数字。另外,在选择字母时,郊区号牌的车辆所选字母只能在"N"到"Z"中选择,因为"A"至"M"已经在以前的号牌系统中使用过。
(二)第5位必须是数字,不能是字母。
因此作者对代码进行了修改,利用正则表达式完成筛选
(三)英文字母不能有I,O,具体原因自行百度
改正代码后的原文如下

之前做课设的时候舍友遇到了需要生成500w量级车牌号的问题,于是我便写了一个随机生成车牌号的程序,希望各位采纳。
注:Python实现

import random
import re
def chepaihao(len=6):
    char0='京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽赣粤青藏川宁琼'
    char1='ABCDEFGHJKLMNPQRSTUVWXYZ'#车牌号中没有I和O,可自行百度
    char2='1234567890ABCDEFGHJKLMNPQRSTUVWXYZ'
    char3='1234567890'
    len0=len(char0)-1
    len1 = len(char1) - 1
    len2 = len(char2) - 1
    len3 = len(char3) - 1
    while True:
        code = ''
        index0 = random.randint(1,len0 )
        index1 = random.randint(1, len1)
        code += char0[index0]
        code += char1[index1]
        code+=' '
        for i in range(1, 5):
            index2 = random.randint(1, len2)
            code += char2[index2]
        index3=random.randint(1,len3)
        code+=char3[index3]
        test=re.match('^.\w.[A-Z]\d{4}$|^.\w.\d[A-Z]\d{3}$|^.\w.\d{2}[A-Z]\d{2}$|^.\w.\d{3}[A-Z]\d$|^.\w.\d{5}$',code)
        if test:
            print(code)
if __name__=='__main__':
    chepaihao(len)

部分运行结果如下
在这里插入图片描述
如果对正则表达式存在疑惑,不知道这个东西应该怎么使用的话可以移步我的另一篇文章《一篇文章学会正则表达式》
其实筛选的过程遍历也行,不过正则表达式显得有逼格一点。

  • 8
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值