(
课件网) 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. 少儿编程课 自创出题器 小测验 出一份试卷,题目全部为单项选择题:每道选择题共四个选项,答对一题得20分,答错一题不得分;答题结束后,打印分数。 打印试题 利用海龟先生的write函数将题目“写”在屏幕上 移动画笔到屏幕的左上角,准备“写”题目 写题干 将选项构建成列表 移动画笔,准备“写”选项 每个选项由英文字母和选项内容组成,字母和选项内容之间有一个空格 每“写”一个选项都要将画笔下移一段距离 打印试题 import turtle t=turtle.Turtle() t.up() t.goto(-160,100) #挪笔 t.write('我们学习的是什么语言?',font=('楷体',16)) #打印题干 ops=['python','java','scratch','c++’] #选项 m='ABCD' for x in range(4): t.goto(-160,60-40*x) #调整每次打印选项的位置 t.write(m[x]+' '+ops[x],font=('楷体',16)) 输入并判断答案 利用input函数获得输入,比较用户的输入和正确答案 如果回答正确增加得分,如果不正确则不得分 将本道题的回答结果和目前得分告知用户 输入并判断答案 s=0 #记录得分 a=input('答案: ') #输入答案 if a=='a' or a=='A': #若输入a或者A s+=20 #回答正确,加20分 print('回答正确,目前得分:',s) else: print('回答错误,目前得分:',s) 如何改变每次的选项顺序 如果每次“写”题目时,选项顺序都是一模一样的会大大降低题目的复杂性和趣味性,如何让每次选项顺序都不相同呢? 很简单,只要每次“写”选项前都使用random.shuffle对选项做一次乱序即可 判断答案 选项顺序改变了,也就意味着不能以ABCD作为答案正确与否的依据了。因为每一次ABCD对应的选项内容都是不断变化的。该怎么办? 判断答案 要记录正确答案的内容而非标号 根据用户输入的标号,找到标号在ABCD中的位置 根据这个位置,到乱序后的选项列表中找到对应的内容 比较1和3,如果内容一致则答对,如果不一致则错误 判断答案 判断答案 判断答案 如何改变每次的选项顺序 from random import shuffle ops=['python','java','scratch','c++']#选项 shuffle(ops) m='ABCD' for x in range(4): t.goto(-160,60-40*x) #调整每次打印选项的位置 t.write(m[x]+' '+ops[x],font=('楷体',16)) 记录正确答案(而非标号) from random import shuffle ops=['python','java','scratch','c++']#选项 shuffle(ops) answer='python' #记录题目的正确答案 m='ABCD' #选项 for x in range(4): t.goto(-160,60-40*x) #调整每次打印选项的位置 t.write(m[x]+' '+ops[x],font=('楷体',16)) 找到输入的答案位置 upper():将所有的英文字符转为大写 find():查找相应的位置 s=0 #记录得分 a=input('答案: ') #输入的答案 n=m.find(a.upper()) #找到用户输入的答案在m中的位置 找到答案并比对 if ops[n]==answer: #如果ops中对应位置的内容与answer一样 s+=20 #回答正确,加20分 print('回答正确,目前得分:',s) else: print('回答错误,目前得分:',s) ... ...