首页 > 技术文章 > Python3中.close()的报错

yuvejxke 2020-02-29 18:49 原文

 

 quizfile.close()始终报错

但是在终端中验证其他例子则可以成功,表示疑惑

代码如下

import random
import os
captials={'citysName1': '石家庄市',
 'citysName2': '邯郸市',
 'citysName3': '唐山市',
 'citysName4': '保定市',
 'citysName5': '秦皇岛市',
 'citysName6': '沙河市',
 'citysName7': '武安市'}

for quiznum in range(35):
    quizfile=open('capitalsquiz%s.txt' %(quiznum+1),'w')
    answerkeyfile=open('capitalsquiz_answers%s.txt'%(quiznum+1),'w')
    
    quizfile.write('name:\n\ndate:\n\nclass:\n\n')
    quizfile.write((' '*20)+'state\'s capitals quiz (form %s)' %(quiznum+1))
    quizfile.write('\n\n')
    
    states=list(captials.keys())
    random.shuffle(states)
    
    for questionnum in range(len(captials.keys())):
        correctanswer= captials[states[questionnum]]
        wornganswer=list(captials.values())
        del wornganswer[wornganswer.index(correctanswer)]
        wornganswer=random.sample(wornganswer,3)
        answersopt=wornganswer+[correctanswer]
        answersopt=random.shuffle(answersopt)

        quizfile.write('%s. what is the capital of %s'%(questionnum+1,states[questionnum]))
        for i in range(4):
            quizfile.write('%s. %s'%('abcd'[i],answersopt[i]))
        quizfile.write('\n')
        answerkeyfile.write('%s. %s\n'%(questionnum+1,'abcd'[answersopt.index(correctanswer)])
    quizfile.close()
    answerkeyfile.close()

 

推荐阅读