第1关:模拟生成车牌号
任务描述
本关任务:编写一段能生成若干个车牌号的代码
在本题中,根据如下步骤随机生成若干个车牌号。
分行输入随机种子以及车牌号数量n,生成包含n个车牌号的列表并输出。
车牌号规则:
以’鄂A-‘或’鄂W-‘开头
长度总共为8位,后5位中包含最多2个字母字符,其余为数字
为避免数字与字母混淆,如’1’与’I’,‘0’与’O’,车牌号中不应出现字母’I’与’O’
生成车牌号步骤:
定义一个函数完成下列步骤
随机生成0~2之间的随机整数t,代表车牌中字母个数—random.randint()
在大写字母字符串string.ascii_uppercase(需要删除’I’与’O’)中随机抽取t个字母—random.choices(),权重相同
在数字字符串string.digits中随机抽取5-t个数字字符—random.choices(),权重相同
将生成的随机字母串与数字字符串连接,字母字符串在前
对连接后的列表随机打乱—random.shuffle()
将打乱后的列表中字符连接为字符串s
随机在列表[‘鄂A-’,‘鄂W-’]中随机抽取车牌前三位—random.choice()
将选取的车牌前三位与s连接得到车牌号并返回
为保证评测结果相同,代码中必须严格按照上述步骤顺序及使用指定随机数函数。
知识点
random.choices(pop, weights, k)
pop为样本序列
weight为从pop中随机抽取时对应的权重列表,如果省略,则默认为序列中每个样本被抽取的概率相同
本关任务要求编写代码模拟生成以'鄂A-'或'鄂W-'开头,符合特定规则的车牌号列表。车牌号长度为8位,最多包含2个字母,其余为数字,且不包含字母'I'和'O'。生成过程包括定义函数,随机生成字母和数字,连接并打乱顺序,最后随机选择车牌前三位。测试案例展示了预期输出。
已下架不支持订阅

1649

被折叠的 条评论
为什么被折叠?



