欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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的四份文件,且每份试卷的顺序都是不一样的。
其中一个如下:
Python 举例random

对应的答案是:
Python 举例random

相关标签: python random