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

求助:SyntaxError: invalid syntax

程序员文章站 2022-06-26 13:20:23
...

求助:SyntaxError: invalid syntax

#! python3
import random
''' 目标:制作N份选项无序的试卷
        步骤:1.创建文件(试卷文件和对应答案文件)
              2.写入题头
              3.写入题目和选项
              4.关闭文件
        重点:1.无序选项如何实现
        已有数据是字典形式,key是题目内容,对应的value是正确答案,
        选项都是value,所以先把所有value提取出来并列表化,list(capitals.values())
        从中删除正确选项,并随机提取三个干扰选项,再加上正确答案,可形成具有4个元素的列表A。
        然后将A中元素顺序打乱,并提取,即可得到4个无序的选项。
              2.如何找出正确答案对应的选项
              要利用无序选项在写入时,对应ABCD的顺序等于正确答案在列表A的顺序
              'ABCD'[a.index(capitals[state])]
'''
#建立美国各州与州首府的字典数据
capitals = {'Alabama':'Montgomery','Alaska':'Juneau',
'Arizona':'Phoenix','Arkansas':'Little Rock',
'California':'Sacramento', 'Colorado':'Denver'}
#制作五份试卷
for quiznum in range(5):
    #创建对象,分别对应quiz(1-5)的试卷和answer(1-5)的答案
    quizFile = open('quiz%s.txt'%(quiznum + 1),'w')
    answerFile = open('answer%s.txt'%(quiznum + 1),'w')
    #quiz中写入姓名,班级和试卷题头
    quizFile.write('Name:\nClass:\n\n')
    quizFile.write((' '*20) + '美国地理常识测试题%s\n\n'%(quiznum + 1))
    #列表化各州,并打乱顺序
    states = list(capitals.keys())
    random.shuffle(states)
    #列表化各州首府,并打乱顺序
    capital = list(capitals.values())
    random.shuffle(capital)

    #在每份试卷中写入六道题
    for testnum in range(6):
        #从打乱顺序的州中依次提取州名,并在试卷中写入名字
        state = states[testnum]
        quizFile.write('%s.美国%s的首府是?%(testnum + 1,state)')
        #提取的州所对应的州首府,即正确答案
        correct = capitals[state]
        #删除州首府列表中的正确答案
        del capital[capital.index(correct)]
        #从州首府中随机提取3个州首府
        wrong = random.sample(capital,3)
        #列表化四个选项,并打乱顺序
        option = list(wrong) + list(correct)
        random.shuffle(option)
        #在试卷对象中写入4个选项
        for optionum in range(4):
            quizFile.write('%s.%s'%('ABCD'[optionum],option_[optionum]))
        #在答案对象中写入正确答案所对应的ABCD
        answerFile.write('%s.%s\n'%(testnum + 1,'ABCD'[option.index(correct)])
quizFile.close()
answerFile.close()

运行后显示:

C:\Users\carrie\Desktop\test>C:/Users/carrie/AppData/Local/Programs/Python/Python37/python.exe c:/Users/carrie/Desktop/test/自动化办公/无序试卷随机出题(自习).py
File “c:/Users/carrie/Desktop/test/自动化办公/无序试卷随机出题(自习).py”, line 55
quizFile.close()
^
SyntaxError: invalid syntax

相关标签: python