代码如下,请有兴趣的朋友参考:
#! python3
import random
import os
#数据文件:key是州名,value是首府
capitals = {'Alabama': 'Montgomery', 'Alaska': 'Juneau', 'Arizona': 'Phoenix',
'Arkansas': 'Little Rock', 'California': 'Sacramento', 'Colorado': 'Denver',
'Connecticut': 'Hartford', 'Delaware': 'Dover', 'Florida': 'Tallahassee',
'Georgia': 'Atlanta', 'Hawaii': 'Honolulu', 'Idaho': 'Boise', 'Illinois':
'Springfield', 'Indiana': 'Indianapolis', 'Iowa': 'Des Moines', 'Kansas':
'Topeka', 'Kentucky': 'Frankfort', 'Louisiana': 'Baton Rouge', 'Maine':
'Augusta', 'Maryland': 'Annapolis', 'Massachusetts': 'Boston', 'Michigan':
'Lansing', 'Minnesota': 'Saint Paul', 'Mississippi': 'Jackson', 'Missouri':
'Jefferson City', 'Montana': 'Helena', 'Nebraska': 'Lincoln', 'Nevada':
'Carson City', 'New Hampshire': 'Concord', 'New Jersey': 'Trenton',
'New Mexico': 'Santa Fe', 'New York': 'Albany', 'North Carolina': 'Raleigh',
'North Dakota': 'Bismarck', 'Ohio': 'Columbus', 'Oklahoma': 'Oklahoma City',
'Oregon': 'Salem', 'Pennsylvania': 'Harrisburg', 'Rhode Island': 'Providence',
'South Carolina': 'Columbia', 'South Dakota': 'Pierre', 'Tennessee':
'Nashville', 'Texas': 'Austin', 'Utah': 'Salt Lake City', 'Vermont':
'Montpelier', 'Virginia': 'Richmond', 'Washington': 'Olympia',
'West Virginia': 'Charleston', 'Wisconsin': 'Madison', 'Wyoming': 'Cheyenne'}
cPath = 'c:\\test'
if os.path.exists(cPath) :
pass
else :
os.makedirs(cPath)
os.chdir(cPath)
mykeys = list(capitals)
for quizNum in range(1,36) : #共35份试卷
file = open('quiz' + str(quizNum)+'s.txt','w',encoding='utf-8')
fileans = open('quizAns' + str(quizNum)+'s.txt','w',encoding='utf-8')
cline = '姓名:'+ ' '*15+'学号:'+' '*15+'班级'+' '*15+'日期:'+' '*15+'\n\n\n'
file.write(cline)
lskeys = mykeys # 本次试卷用的临时键,每出一题,删除使用过的键
lskey = '' # 当前题目使用的键
lsvalue = [] # 当前题目使用的值
truevalue = ''
random.shuffle(lskeys) # 生成键的随机排列
for ni in range(0,50) :
lsKey = lskeys[ni]
truevalue = capitals.get(lsKey)
#print(truevalue)
lsvalue.append(truevalue) # 向答案列表中加入找到的正确答案
#print(lsvalue)
lsvalues = list(capitals.values())
random.shuffle(lsvalues)
lsvalues.remove(truevalue) # 从值列表中删除正确答案(已经用过)
for mi in range(3) :
myindex = random.randint(0,50-1-1)
lsvalue.append(lsvalues[myindex])
#print(lsvalue)
random.shuffle(lsvalue)
file.write('第' + str(ni+1) + '题:' +lsKey + '的首府是哪个城市?\n')
file.write('请选择:')
mysel = '(A) '+ lsvalue[0]+' (B) '+ lsvalue[1]+' (C) '+ lsvalue[2]+' (D) '+ lsvalue[3] + '\n\n'
file.write(mysel)
#xuhao = ''
#**以下代码不知道有没有更简便的方法**
if truevalue in lsvalue[0] :
xuhao = '(A) '
elif truevalue in lsvalue[1] :
xuhao = '(B) '
elif truevalue in lsvalue[2] :
xuhao = '(C) '
elif truevalue in lsvalue[3] :
xuhao = '(D) '
myans = '第' + str(ni+1) + '题:' + lsKey + '的首府是哪个城市?' + '答案:' + xuhao + truevalue + '\n\n'
fileans.write(myans)
file.close()
fileans.close()
以下代码不知道有没有更简便的方法?
if truevalue in lsvalue[0] :
xuhao = '(A) '
elif truevalue in lsvalue[1] :
xuhao = '(B) '
elif truevalue in lsvalue[2] :
xuhao = '(C) '
elif truevalue in lsvalue[3] :
xuhao = '(D) '