几个小知识:(程序中使用到了) random。shuffle()函数:方法将序列的所有元素随机排序 radom。sample(a,n)函数:从序列a中随机抽取n个元素,并将n个元素生以list形式返回 。keys()函数返回的是一个可迭代序列不是列表,需要list(X。keys())才能得到列表 index()函数可用于查找列表中对应函数的索引值并输出 ABCD〔i〕意思是:ABCD看成一个数组,在每次的循环中迭代,值分别是A、B、C、Dimportrandomcapitals{Alabama:Montgomery,Alaska:Juneau,Arizona:Phoenix,Arkansas:LittleRock,California:Sacramento,Colorado:Denver,Connectiuct:Hartford,Delaware:Dover,Florida:Tallahassee,Georgia:Atlanta,Hawaii:Honolulu,Idaho:Boise,Illinois:Springfield,Indiana:Indianapolis,Iowa:DesMoines,Kansas:Topeka,Kentucky:Frankfort,Louisiana:BatonRouge,Maine:Augusta,Maryland:Annapolis,Massachusetts:Boston,Michigan:Lanslng,Minnesota:SaintPaul,Mississippi:Jackson,Missouri:JeffersonCity,Montana:Helena,Nebraska:Lincoln,Nevada:CarsonCity,NewHampshire:Concord,NewJersey:Trenton,NewMexico:SantaFe,NewYork:Albany,NorthCarolina:Raleigh,NorthDakota:Bismarck,Ohio:Columbus,Oklahome:OklahomaCity,Oregon:Salem,Pennsylvania:Harrisburg,RhodeIsland:Providence,SouthCrolina:Columbia,SouthDakota:Pierre,Tennessee:Nashville,Texas:Austin,Utah:SaltLakeCity,Vermont:Montpelier,Virginia:Richmond,Washington:Olympia,WestVirginia:Charleston,Wisconsin:Madison,Wyoming:Cheyenne}forquizNuminrange(35):quizFileopen(capitalsquizs。txt(quizNum1),w)answerKeyFileopen(capitalsquizanswerss。txt(quizNum1),w)quizFile。write(Name:Date:Period:)quizFile。write((20)StateCapitalsQuiz(Froms)(quizNum1))quizFile。write()stateslist(capitals。key())random。shuffle(states)forquestionNuminrange(50):correctAnswercapitals(states〔questionNum〕)wrongAnswerslist(capitals。valuse())delwrongAnswers〔wrongAnswers。index(correctAnswer)〕wrongAnswersrandom。sample(wrongAnswers,3)answerOptionswrongAnswers〔correctAnswer〕random。shuffle(answerOptions)quizFile。write(s。Whatisthecapitalofs?(questionNum1,states〔questionNum〕))foriinrange(4):quizFile。write:quizFile。write(s。s(ABCD〔i〕,answerOptions〔i〕))quizFile。write()answerKeyFile。write(s。s(questionNum1,ABCD〔answerOptions。index(correctAnswer)〕))quizfile。close()answerKeyFile。close()