生活随笔
收集整理的這篇文章主要介紹了
【功能更新-1:选项统一】利用python生成自制英语试题程序开发
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
生成試題截圖效果
在本地硬盤建立一個源試題程序文件
利用下面程序代碼,導入txt文件,同時生成一批練習文件
這個試題隨機生成的效果還是很棒的!
功能更新:
原程序,只能輸出一組試題,但問題是每題答案不同,有的單詞首字母是大小,而有的單詞首字母是小寫的,這就需要我們根據題目的設置,修改一下答案中的單詞首字母于是對程序進行了一個if…elif…的調整,根據答案先判斷這個題目的正確答案是首字母大寫,還是首字母小寫,如果是大寫,全部答案改為大寫,如果是小寫,那全部改變小寫。
letter_dx
= "False" if ord
('a') <= ord
(correctAnswer
[0]) <= ord
('z') else "True"if letter_dx
== 'True':answerOptions_dx
= [i.capitalize
() for i in answerOptions
] for i in range
(4):quizFile.write
(' %s. %s\n' %
('ABCD'[i
], answerOptions_dx
[i
]))elif letter_dx
== 'False':for i in range
(4):answerOptions_dx
= [i.lower
() for i in answerOptions
] quizFile.write
(' %s. %s\n' %
('ABCD'[i
], answerOptions_dx
[i
]))
import random,os,red
= {}
name
= ''
def file_list
():global zj_mlprint
('物理組卷---w,英語組卷---e')ml
= input
('輸入科目:')if ml
== 'e':zj_ml
= '英語組題'elif ml
== 'w':zj_ml
= '物理組題'files
= os.listdir
(f
'F:\物理練習圖\九年級\字典組建試題\{zj_ml}')return files
file = file_list
()def english
(file
):
for ind, x
in enumerate
(file
):print
(ind,
'-', x.strip
('.txt'),end
='\t')if ind%5
== 0:print
('')xz
= int
(input
('\n選擇序號:'))fil
= file
[xz
]fil
= ''.join
(fil
)with open
(rf
"F:\物理練習圖\九年級\字典組建試題\{zj_ml}\{fil}") as f:print
(f
'------{fil.strip(".txt")} *** 試題已經組卷成功.------\nF:\物理練習圖\九年級\英語試題生成文件 ')try:
for line in f:print
(line
)key,val
= line.split
('|')val
= ''.join
(val
)val
= val.strip
('\n')d
[key
] = valexcept ValueError:print
('請去檢查,源文件格式,本次編輯已忽略錯誤')return deng_tests
= english
(file
)
pd_letter_dx
= []file_name
= input
('文件名稱:')
for quizNum in range
(20):quizFile
= open
(r
'F:\物理練習圖\九年級\英語試題生成文件\{}-{}.doc'.format
(file_name,quizNum +
1),
'w',encoding
='utf-8')answerKeyFile
= open
(r
'F:\物理練習圖\九年級\英語試題生成文件\{}-_答案{}.txt'.format
(file_name,quizNum +
1),
'w')quizFile.write
('姓名:\t\t日期:\t\t學期:\t\t')quizFile.write
((' ' * 20) + f'英語專題_{file_name}測試 (卷 %s)' % (quizNum + 1))quizFile.write
('\n\n')eng_test_list
= list
(eng_tests.keys
())random.shuffle
(eng_test_list
)for questionNum in range
(len
(eng_test_list
)):correctAnswer
= eng_tests
[eng_test_list
[questionNum
]]wrongAnsewers
= list
(eng_tests.values
())wrongAnsewers
= set
(wrongAnsewers
)print
(wrongAnsewers
)wrongAnsewers
= list
(wrongAnsewers
)del wrongAnsewers
[wrongAnsewers.index
(correctAnswer
)]wrongAnsewers
= random.sample
(wrongAnsewers,
3)answerOptions
= wrongAnsewers +
[correctAnswer
]random.shuffle
(answerOptions
)quizFile.write
('\n%s. %s( ) \n' %
(questionNum +
1,eng_test_list
[questionNum
]))letter_dx
= "False" if ord
('a') <= ord
(correctAnswer
[0]) <= ord
('z') else "True"if letter_dx
== 'True':answerOptions_dx
= [i.capitalize
() for i in answerOptions
] elif letter_dx
== 'False':answerOptions_dx
= [i.lower
() for i in answerOptions
] for i in range
(4):quizFile.write
('%s. %s\t\t' %
('ABCD'[i
], answerOptions_dx
[i
]))quizFile.write
('\n')quizFile.write
('\n【答案】%s\n' %
( 'ABCD'[answerOptions.index
(correctAnswer
)]))quizFile.write
('\n')answerKeyFile.write
('%s.%s\n' %
(questionNum +
1,
'ABCD'[answerOptions.index
(correctAnswer
)]))quizFile.close
()answerKeyFile.close
()
希望更多的老師借鑒,提出寶貴的建議!
總結
以上是生活随笔為你收集整理的【功能更新-1:选项统一】利用python生成自制英语试题程序开发的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。