生成隨機測驗

2021-09-25 20:17:04 字數 3346 閱讀 5965

假如你是一位地理老師,班上有35 名學生,你希望進行美國各州首府的乙個

小測驗。不妙的是,班裡有幾個壞蛋,你無法確信學生不會作弊。你希望用python隨機調整問題的次序,這樣每份試卷都是獨一無二的,這讓任何人都不能從其他人那裡抄襲答案。

以美國州為key,首府為value的字典如下

capitals =

完整**如下

for quiznum in

range(35

):point=

0 quizfile =

open

('captialsquiz%s.text'

%(quiznum +1)

,'w'

) answerkeyfile =

open

('captialquiz_answers%s.text'

%(quiznum +1)

,'w'

) quizfile.write(

'name:\n\ndate:\n\nperiod:\n\n'

) quizfile.write((''

*20)+

'state capitals quiz(form %s)'

%(quiznum +1)

) quizfile.write(

'\n\n'

) states =

list

(capitals.keys())

random.shuffle(states)

for questionnum in

range(50

):correctanswer = capitals[states[questionnum]

] wronganswers =

list

(capitals.values())

del wronganswers[wronganswers.index(correctanswer)

] wronganswers = random.sample(wronganswers,3)

answersoptions = wronganswers+

[correctanswer]

random.shuffle(answersoptions)

quizfile.write(

'%s.what is the capital of %s ?\n'

%(questionnum +

1,states[questionnum]))

for i in

range(4

):quizfile.write(

'%s.%s\n'%(

'abcd'

[i],answersoptions[i]))

my_answer= random.choice(

'abcd'

) quizfile.write(

'my answer is: %s\n'

%(my_answer)

) quizfile.write(

'\n'

) correct_answer =

'abcd'

[answersoptions.index(correctanswer)

]if my_answer == correct_answer:

point+=

1 answerkeyfile.write(

'%s.%s\n'

%(questionnum+

1,correct_answer)

) quizfile.write(

'score: %s\n\n'

%(point)

) quizfile.close(

) answerkeyfile.close(

)

有多個巢狀的for迴圈,會先把最裡面的乙個迴圈語句執行結束,比如上面寫的**裡巢狀了三個for迴圈,

for quiznum in range(35);for questionnum in range(50);for i in range(4);

**執行的邏輯:

quiznum=1,questionnum=1,i分別為1,2,3,4;

quiznum=1,questionnum=2,i分別為1,2,3,4

quiznum=1,questionnum=3,i分別為1,2,3,4

。 。

quiznum=1,questionnum=50,i分別為1,2,3,4

。 。

quiznum=2,questionnum=1,i分別為1,2,3,4

quiznum=2,questionnum=2,i分別為1,2,3,4

quiznum=2,questionnum=3,i分別為1,2,3,4

。 。

quiznum=2,questionnum=50,i分別為1,2,3,4

。 。

quiznum=35,questionnum=1,i分別為1,2,3,4

quiznum=35,questionnum=2,i分別為1,2,3,4

。 。

quiznum=35,questionnum=50,i分別為1,2,3,4

2.隨機函式介紹

random.randint(1,

10)#隨機生成乙個1~10之間的整數

random.choice(

)#隨機選取乙個序列中的元素

raandom.sample(

)#隨機選取乙個序列中的多個元素

random.shuffle(

)#隨機打亂乙個序列

1.編寫一段自動對答案的**,並給每份試卷打分(解決)

10-23更新:

在abcd中隨機生成乙個選項,作為學生填寫的答案

my_answer= random.choice(

'abcd'

)

如果這個選項和標準答案一樣,加1分

correct_answer =

'abcd'

[answersoptions.index(correctanswer)

]if my_answer == correct_answer:

point+=

1

模仿專案 生成隨機的測驗試卷檔案

根據專案 生成隨機的測驗試卷檔案 的 稍作改動後,有了以下的 隨機測試生成器.py 生成問題及答案 隨機生成問題並生成相應答案 import random 鍵為省份,值為省會。capitals 生成20份試卷。for quiznum in range 20 新建試卷及答案的txt文件。quizfil...

8 5 專案 生成隨機的測驗試卷檔案

假如你是一位地理老師,班上有 35 名學生,你希望進行美國各州首府的乙個小測驗。不妙的是,班裡有幾個壞蛋,你無法確信學生不會作弊。你希望隨機調整問題的次序,這樣每份試卷都是獨一無二的,這讓任何人都不能從其他人那裡抄襲答案。當然,手工完成這件事又費時又無聊。好在,你懂一些 python。下面是程式所做...

隨機生成隨機數

現畫乙個command命令按鈕,進行貼上。private sub command1 click show me scale 0,0 18,8 me.auto redraw true me.draw mode 2 circle 3,4 3,vb red me.auto redraw false lin...