在CSDN刷每日一题的时候,发现四个答案没一个对的,不知道该咋选了😂......
题目描述:
某市随机生成车辆号牌的规则是:号牌字头为"某A-","某B-"等(字母为除了C以外的A~H范围内的大写字母),字头后面由5位字符组成,第1位必须是数字;第2、3、4、5位可以是任意数字或不含字母"O"的大写英文字母。程序功能为:调用自己设计的函数license_plate(),随机生成5个车辆号牌,等待输入一个心仪号码的序号选择号牌,并将其打印输出。程序运行结果如下图所示:
代码:
import random
def getchar(list):
return random.choice(list)
def license_plate():
s = "某"
s = s + getchar(['A', 'B', 'D', 'E', 'F', 'G', 'H'])
s = s + '-'
s = s + getchar(['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'])
for i in range(4):
s = s + getchar(['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'])
return s
lst = []
for i in range(5):
plate = license_plate()
lst.append(plate)
print(str(i + 1) + ":" + plate)
x = int(input("请输入您心仪的号牌序号:")) - 1
print("您选中的号牌为:" + lst[x])
解析:
本程序,最重要的地方就是random.choice()的使用,此方法是从序列中随机选取一个元素,按照题目中要求,第1个字母为处C以外的A~H中的一个字母,字符串连接可以直接相加,后面2~5字符同理;生成五个车牌就利用 for 循环,循环五次,使用列表的 append 方法在列表末尾添加元素,保存在列表中。