假如你是一位地理老師,班上有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...