随机生成车牌号
本文最后更新于 2025-12-17,文章内容可能已经过时。
综合练习
随机生成车牌号
要求,每次选择最多可以生成选择结果3次,每次生成20个不重复的车牌号,如果选择,则退出不继续生成。
车牌规则:共7位,第一位为汉子“京”;第二位为地级行政区由字母组成(且字母不为“I”,“O”);后5位由数字和字母混合组成,最多2位字母,且字母不能为“I”,“O”。
import random
First_Word = '京'
EN_Word = "ABCDEFGHJKLMNPQRSTUVWXYZ"
NUM_Word = "0123456789"
NUMBER = [
'1', '2', '3', '4', '5',
'6','7', '8', '9', '10',
'11', '12','13', '14', '15',
'16', '17', '18', '19','20'
]
Choice_Number = 3
Car_Max_Number = 20
def Creat_Car_Number():
#创建一个车牌号字符串
Surplus_Word = []
En_Number = 0
Second_Word = random.choice(EN_Word)
for i in range(5):
if En_Number < 2:
Number = str(random.sample(EN_Word + NUM_Word, 1))[2:3:]
if Number in EN_Word:
Surplus_Word.append(Number)
En_Number += 1
else:
Surplus_Word.append(Number)
else:
Surplus_Word.append(random.choice(NUM_Word))
Car_Number = First_Word + Second_Word + '-' + ''.join(Surplus_Word)
return Car_Number
def Choice_Car_Number():
#生成一个 Car_Max_Number数量的 不重复车牌号列表
Car_list = []
while 1:
Car_Number = Creat_Car_Number()
if len(Car_list) != Car_Max_Number and Car_Number not in Car_list:
Car_list.append(Car_Number)
elif len(Car_list) == Car_Max_Number:
return Car_list
else:
pass
def Show_Car_Number():
#把车牌号列表变成车牌号和选项号列表
result = list(enumerate(Choice_Car_Number(),1))
return result
def Print_Car_Number(Car_list_OBJ):
#把传过来的Car_list_OBJ打印出来
print('*' * 30)
for count, element in Car_list_OBJ:
print(f'选项编号:{count},车牌号:{element}')
print('*' * 30)
def Choice_Car_list():
#共有Choice_Number次选择机会,就会生成含有Choice_Number个Car_Max_Number的列表
Result_List = []
for i in range(Choice_Number):
Result_List.append(Show_Car_Number())
return Result_List
if __name__ == '__main__':
#从1开始
Choice_count = 1
#初始化车牌列表
Result_List = Choice_Car_list()
#引导用户使用
#输入序号选择车牌,输入n重新生成新的车牌列表,输入'q'退出。
#共能选择Choice_Number次
while 1:
print('当前为第{}批车牌'.format(Choice_count))
#打印当前批次车牌号
Print_Car_Number(Result_List[Choice_count-1])
s = str(input('请输入想选择的序号:输入n换一批:'))
#判断是否满足最大次数
if Choice_count>=Choice_Number-1:
while 1:
print('当前为第{}批车牌'.format(Choice_count+1))
Print_Car_Number(Result_List[Choice_count])
s = str(input('抱歉!您的选择机会已用完,请输入您想选择的序号:'))
# 选择正确的序号
if s in NUMBER:
s = int(s)
print('恭喜!您选择的号码是:{},车牌号为:{}'.format(list(Result_List[2])[s-1][0], list(Result_List[2])[s-1][1]),end='')
break
# 退出判断
elif s == 'q':
print('退出!')
break
#exit('退出!')
# 输入错误提示
else:
print('请输入正确的选项编号或序号!')
#选择正确的序号
elif s in NUMBER:
s = int(s)
print('恭喜!您选择的号码是:{},车牌号为:{}'.format(list(Result_List[Choice_count-1])[s-1][0],list(Result_List[Choice_count-1])[s-1][1]),end='')
break
#重新生成车牌
elif s == 'n':
print('已为您重新生成一批车牌。')
Choice_count += 1
#退出判断
elif s == 'q':
print('退出!')
break
# 输入错误提示
else:
print('请输入正确的选项编号或序号!')
执行结果
当前为第1批车牌
******************************
选项编号:1,车牌号:京V-R3F59
选项编号:2,车牌号:京D-P5E89
选项编号:3,车牌号:京F-Z1G14
选项编号:4,车牌号:京W-XP098
选项编号:5,车牌号:京V-YB211
选项编号:6,车牌号:京D-JE090
选项编号:7,车牌号:京Q-1NY99
选项编号:8,车牌号:京U-VN954
选项编号:9,车牌号:京U-4EB31
选项编号:10,车牌号:京T-K74Q1
选项编号:11,车牌号:京R-7Z0X8
选项编号:12,车牌号:京Q-042PA
选项编号:13,车牌号:京L-AM459
选项编号:14,车牌号:京V-T5N80
选项编号:15,车牌号:京T-9L53E
选项编号:16,车牌号:京X-PP158
选项编号:17,车牌号:京W-CT049
选项编号:18,车牌号:京A-GQ339
选项编号:19,车牌号:京E-CE535
选项编号:20,车牌号:京M-8XB37
******************************
请输入想选择的序号:输入n换一批:2
恭喜!您选择的号码是:2,车牌号为:京D-P5E89
exit()ipython中貌似有问题,这里都手动换成了break
- 感谢你赐予我前进的力量
赞赏者名单
因为你们的支持让我意识到写文章的价值🙏
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 纪梦鱼
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果
音乐天地

