Python 举例random
程序员文章站
2022-05-18 18:41:51
...
之前看到一个自动生成测试题和答案的教程,觉得挺有意思,所以放进来,代码如下:
import random
capitals={
"北京": "北京","上海": "上海","天津": "天津",
"重庆": "重庆 ","黑龙江省": "哈尔滨","吉林省": "长春",
"辽宁省": "沈阳", "内蒙古": "呼和浩特","河北省": "石家庄",
"*": "乌鲁木齐","甘肃省": "兰州","青海省": "西宁",
"陕西省": "西安", "宁夏": "银川",'河南省': '郑州',
'山东省': '济南' ,'山西省' : '太原' ,'安徽省' : '合肥',
'湖北省' : '武汉' ,'江苏省' : '南京' ,'四川省' : '成都' ,
'贵州省' : '贵阳' ,'云南省' : '昆明' ,'广西省' : '南宁' ,
'*' :'拉萨' ,'浙江省' : '杭州' ,'江西省' : '南昌' ,
'广东省' : '广州' ,'福建省' : '福州' ,'*省' : '台北' ,
'海南省': '海口' ,'香港' : '香港' ,'澳门' : '澳门' }
Number = int(input("how many tests do you want to have? "))
for quizNum in range(Number):
quizFile = open('capitalsquiz{}.txt'.format(quizNum+1),'w',encoding='utf-8')
answerKeyFile = open('capitalsquiz_answer{}.txt'.format(quizNum+1),'w',encoding='utf-8')
#试卷头都是一样的
quizFile.write('姓名:\n\n学号:\n\n班级:\n\n')
quizFile.write(' '*20 + '省 配 对 省 会 测 试 题 {}'.format(quizNum+1))
#先把字典里的keys取出,打乱顺序
provinces = list(capitals.keys())
random.shuffle(provinces)
#找出正确答案
for questionNum in range(len(provinces)):
correctAnswer = capitals[provinces[questionNum]]
#错误答案的池子
wrongAnswer = list(capitals.values())
wrongAnswer.remove(correctAnswer)
wrongAnswers = random.sample(wrongAnswer,3)
#答案选项,打乱
answerOptions = wrongAnswers + [correctAnswer]
random.shuffle(answerOptions)
quizFile.write('\n{}. {}的省会是?\n'.format(questionNum+1,provinces[questionNum]))
for i in range(4):
quizFile.write('{}、{}\n'.format('ABCD'[i],answerOptions[i]))
#打印答案卷
num =answerOptions.index(correctAnswer)
answerKeyFile.write('{}.{}\n'.format(questionNum+1, 'ABCD'[num]))
quizFile.close()
answerKeyFile.close()
比如我们要做2份试卷,跑完程序之后会生成capitalsquiz1.txt;capitalsquiz2.txt 以及capitalsquiz_answer1.txt;capitalsquiz_answer2.txt的四份文件,且每份试卷的顺序都是不一样的。
其中一个如下:
对应的答案是:
下一篇: PHP利用qq邮箱发邮件