省会城市小测验

8章练习

#coding:utf-8
import random
capitals={'广东':'广州','福建':'福州','浙江':'杭州','江苏':'南京','山东':'济南','河北':'石家庄','河南':'郑州'}
tmpList=list(capitals)

title='''
Name:
Date:
Period:

'''

for i in range(7):
    seq = 'State Capitals Quiz (Form %s)'.center(50, '*')%(i+1)
    random.shuffle(tmpList) #共七分试卷,调整不同试卷问题的顺序
    name='test'+ str(i) +'.txt'   #生成试卷名称序号
    answerName='test'+ str(i) +'_answer.txt'   #生成试卷名称序号
    with open(name,'a',encoding='utf-8')as testfile:
        with open(answerName, 'a', encoding='utf-8')as anserfile:
            testfile.write(title)
            testfile.write(seq+'\n\n')
            anserfile.write(seq+'\n\n')
            for item in tmpList:
                question=item+'的省会是:\n'  #生成问题
                testfile.write(question)  # 写入题目
                correctchoice=capitals[item] #生成正确选项
                tmpValueList = list(capitals.values())#生成选项列表
                tmpValueList.remove(correctchoice)  #去除正确答案
                tmpNum=random.sample(tmpValueList,3)   #随机生成三个错误选项
                tmpNum.append(correctchoice)   #添加正确答案
                random.shuffle(tmpNum)         #打乱顺序
                # testfile.write('A.'+tmpNum[0]+'\n'+'B.'+tmpNum[1]+'\n'+'C.'+tmpNum[2]+'\n'+'D.'+tmpNum[3]+'\n')#写入所有选项
                for i in range(4):
                    testfile.write('ABCD'[i]+tmpNum[i]+'\n')
                testfile.write('\n')


                anserfile.write(question)
                # if correctchoice==tmpNum[0]:
                #     anserfile.write('A.'+correctchoice+'\n')
                # if correctchoice==tmpNum[1]:
                #     anserfile.write('B.'+correctchoice+'\n')
                # if correctchoice==tmpNum[2]:
                #     anserfile.write('C.'+correctchoice+'\n')
                # if correctchoice==tmpNum[3]:
                #     anserfile.write('D.'+correctchoice+'\n')
                anserfile.write('ABCD'[tmpNum.index(correctchoice)]+'.'+correctchoice+'\n')


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值