資源簡(jiǎn)介 (共16張PPT)Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.少兒編程課自創(chuàng)出題器小測(cè)驗(yàn)出一份試卷,題目全部為單項(xiàng)選擇題:每道選擇題共四個(gè)選項(xiàng),答對(duì)一題得20分,答錯(cuò)一題不得分;答題結(jié)束后,打印分?jǐn)?shù)。打印試題利用海龜先生的write函數(shù)將題目“寫”在屏幕上移動(dòng)畫筆到屏幕的左上角,準(zhǔn)備“寫”題目寫題干將選項(xiàng)構(gòu)建成列表移動(dòng)畫筆,準(zhǔn)備“寫”選項(xiàng)每個(gè)選項(xiàng)由英文字母和選項(xiàng)內(nèi)容組成,字母和選項(xiàng)內(nèi)容之間有一個(gè)空格每“寫”一個(gè)選項(xiàng)都要將畫筆下移一段距離打印試題import turtlet=turtle.Turtle()t.up()t.goto(-160,100) #挪筆t.write('我們學(xué)習(xí)的是什么語言?',font=('楷體',16)) #打印題干ops=['python','java','scratch','c++’] #選項(xiàng)m='ABCD'for x in range(4):t.goto(-160,60-40*x) #調(diào)整每次打印選項(xiàng)的位置t.write(m[x]+' '+ops[x],font=('楷體',16))輸入并判斷答案利用input函數(shù)獲得輸入,比較用戶的輸入和正確答案如果回答正確增加得分,如果不正確則不得分將本道題的回答結(jié)果和目前得分告知用戶輸入并判斷答案s=0 #記錄得分a=input('答案: ') #輸入答案if a=='a' or a=='A': #若輸入a或者As+=20 #回答正確,加20分print('回答正確,目前得分:',s)else:print('回答錯(cuò)誤,目前得分:',s)如何改變每次的選項(xiàng)順序如果每次“寫”題目時(shí),選項(xiàng)順序都是一模一樣的會(huì)大大降低題目的復(fù)雜性和趣味性,如何讓每次選項(xiàng)順序都不相同呢?很簡(jiǎn)單,只要每次“寫”選項(xiàng)前都使用random.shuffle對(duì)選項(xiàng)做一次亂序即可判斷答案選項(xiàng)順序改變了,也就意味著不能以ABCD作為答案正確與否的依據(jù)了。因?yàn)槊恳淮蜛BCD對(duì)應(yīng)的選項(xiàng)內(nèi)容都是不斷變化的。該怎么辦?判斷答案要記錄正確答案的內(nèi)容而非標(biāo)號(hào)根據(jù)用戶輸入的標(biāo)號(hào),找到標(biāo)號(hào)在ABCD中的位置根據(jù)這個(gè)位置,到亂序后的選項(xiàng)列表中找到對(duì)應(yīng)的內(nèi)容比較1和3,如果內(nèi)容一致則答對(duì),如果不一致則錯(cuò)誤判斷答案判斷答案判斷答案如何改變每次的選項(xiàng)順序from random import shuffleops=['python','java','scratch','c++']#選項(xiàng)shuffle(ops)m='ABCD'for x in range(4):t.goto(-160,60-40*x) #調(diào)整每次打印選項(xiàng)的位置t.write(m[x]+' '+ops[x],font=('楷體',16))記錄正確答案(而非標(biāo)號(hào))from random import shuffleops=['python','java','scratch','c++']#選項(xiàng)shuffle(ops)answer='python' #記錄題目的正確答案m='ABCD' #選項(xiàng)for x in range(4):t.goto(-160,60-40*x) #調(diào)整每次打印選項(xiàng)的位置t.write(m[x]+' '+ops[x],font=('楷體',16))找到輸入的答案位置upper():將所有的英文字符轉(zhuǎn)為大寫find():查找相應(yīng)的位置s=0 #記錄得分a=input('答案: ') #輸入的答案n=m.find(a.upper()) #找到用戶輸入的答案在m中的位置找到答案并比對(duì)if ops[n]==answer: #如果ops中對(duì)應(yīng)位置的內(nèi)容與answer一樣s+=20 #回答正確,加20分print('回答正確,目前得分:',s)else:print('回答錯(cuò)誤,目前得分:',s) 展開更多...... 收起↑ 資源預(yù)覽 縮略圖、資源來源于二一教育資源庫