使用Python制作随机提问程序

来源 :中国信息技术教育 | 被引量 : 0次 | 上传用户:deathzdw
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  随着新课改的进一步深化,笔者所在地区的中小学信息技术教材增加了Python程序设计语言章节,Python是一种面向对象的解释型计算机程序设计语言,能够把用其他语言制作的各种模块很轻松地联结在一起。Python语言简明,逻辑清晰,适合中小学阶段的学生学习。
  在常规情况下,使用Python编制好的程序代码是命令行界面执行方式;tkinter是Python中制作GUI界面的入门模块,语法简单,可以快速上手制作学习。这里,笔者利用tkinter模块制作一个简单的随机点名或者提问的小程序,在课堂上,教师可以使用该程序对本班级内的学生进行随机点名或提问,进而活跃课堂气氛。
  ● 功能分析
  可视化编程是一个系统工程,要遵循“功能—界面—代码”的基本设计顺序,核心的内容是数据的组织、变化与流转。随机点名小程序要实现的功能是,在不同的班级中,输入班级号然后点击按钮,随机显示出该班级中某一名学生的姓名,再次点击按钮,随机显示另一名学生的姓名。在本案例中,原始数据保存在文本文件中,通过open()函数读取到内存的变量列表中,再按照班级进行字典的键值对映射,获取的班级号作为字典的键,获取的班级名单作為字典中班级映射的值。“开始”按钮的功能就是从字典的值中随机取出一个学生姓名,在窗体上显示出来。
  因此,笔者计划使用两个模块,分别是tkinter和rendom,tkinter模块用于制作GUI窗体;random模块用来随机抽取列表中的元素。规划三个窗体控件,输入班级号,显示抽取的姓名和开始抽取的按钮。
  ● 引入模块
  Python可以通过引用或者调用模块,实现使用模块中的函数和功能。下面,简要介绍一下模块的调用方法(如下表)。
  在调用模块的方式中,笔者推荐使用第二种方式,调用模块并且使用别名和程序中的其他函数进行区分,这样程序代码看起来更清晰,易读性更强。调用模块的代码如图1所示。
  ● 制作窗体
  在tkinter模块中需要使用Tk()函数,生成GUI窗体并命名为ROOT。常见的窗体包含的部件有标题、边框等,且需要使用主消息循环模式设置窗体始终显示在屏幕。设置窗口的标题为“随机提问”,窗口的大小为300×200像素,窗口的边框不可调。包含的代码如下页图2所示。
  ● 添加控件
  在可视化的程序中,用于人机交互的部分通常称之为窗口或控件,在tkinter中具备基本的常用控件,用于制作可视化的小程序。根据程序的功能分析,笔者计划添加文本标签(Label)——分别用于在窗体上显示提示文字、随机抽取的结果,文本框(Entry)——用于输入班级号,按钮(Button)——用于开始随机抽取姓名,将其作为程序的主要输入输出功能部分。包含的代码如图3所示。
  控件添加完成,按F5键查看界面运行效果,如图4所示。
  ● 分析功能
  程序的核心部分是数据的组织、变化和流转,这里要制作的程序就是要读取文本文件中的数据,进行遍历转为列表,再把列表中的元素按照班级映射为字典,并从文本框中获取班级号,从字典中获取该班级号对应的列表,再随机抽取该列表中的某个元素,显示到文本标签上。
  功能分析:文本文件的内部格式如图5所示,班级和姓名使用一个制表符间隔,常用信息可以先从Excel复制到文本文件,接着在Python中使用open()函数打开文本文件,使用readlines将其全部读取为一个列表,并遍历该列表,替换其中每个元素尾部的回车符号,进而转换为子列表,读取其中的第一个元素增加到字典,第二个元素作为该键的值保存到字典中。流程图如图6所示,自定义函数代码如下页图7所示。需要注意的是,x.get()用于获取文本框中的数据,x.set()用于设置文本标签的值,x.choice()用于随机从列表中获取一个元素。
  ● 添加代码
  数据流分析过程为:首先用户在文本框中输入班级数据,点击“开始”按钮,根据接收到的数据,从字典中获取指定键映射的值,并从值中随机抽取一个元素,传递到文本标签并显示,此时文本框和文本标签中的文本要以变量的形式显示,“开始”按钮控件调用自定义函数实现以上功能。
  文本框代码如图8所示。
  文本标签代码如图9所示。
  开始按钮代码如图10所示。
  程序最终运行界面及效果如图11所示。
  总之,通过简单的随机点名小程序的制作,让学生体会到GUI界面的程序更方便用户使用,而理解隐藏在控件背后的数据流转和函数调用才是实现程序功能的核心。在此基础上,让学生进一步体会数据在程序中的组织和流转过程,从而使其对程序的制作和使用有更深的理解。
其他文献
摘要:本文以CDIO教育模式为主导,通过挖掘传统3D打印课程教学中的不足,针对教师为课堂主体、学生实践能力弱、课程培养人才与社会所需人才脱节等问题,提出以项目驱动为核心,构建系统的知识体系,挖掘学生潜能,以期能够培养学生的创新创造、团队协作等能力,并激发学习兴趣。  关键词:3D创意设计;教学改革;CDIO  中图分类号:G434 文献标识码:A 论文编号:1674-2117(2021)20-00
随着“新课程、新教材”的实施以及国家级“双新”示范区和示范校建设工作的进一步推进,新课程、新教材的理念、内容和要求全面落实到教育教学的各个环节。其中,深化学校教学改革、发展学生核心素养是重点任务之一。而对新教材的理解与创新性使用,是在课堂中落实学科核心素养的重要前提。研究新教材的过程,就是教师和编写者的一次对话过程,充分理解编写者的意图是关键。编写者采取哪些策略将学科核心素养融入教材?学科核心素养
期刊
“找规律”这一内容,属于“数与代数”领域中“探索规律”板块.本节课将观察、猜测、动手操作、推理、交流等活动贯穿教学全过程,先是发现事物中简单的排列规律、理解规律的含义,然后进行描述和表示规律,最终达到运用规律解决一些简单的问题.生活中存在大量有规律的排列,使得学生对本课内容也有了一定的感性认识.此外学生已初步掌握观察和分类的思想与方法,这些也为更好地学习“找规律”这一内容奠定了基础.
期刊
目前,虽然我国在中小学逐步普及了3D打印、开源硬件、编程、机器智能等各种类型的STEAM教育内容,但STEAM教育的发展还处在起步阶段,仍存在诸多问题:①对STEAM概念理解不清,理论研究欠缺,开展经验不足,实践中出现盲目照搬套用现象。②对STEAM教育在国家发展中的战略地位认识不够充分。STEAM课程还未列入国家课程计划的必修课或常态课程教学中,许多学生未能接触到真正的STEAM教育。③缺少优质
期刊
“数据管理与分析”为选择性必修课程的第三个模块,是必修1“数据与计算”的拓展,对全面培养学生的信息意识与计算思维、深刻理解数据处理的过程与意义具有重要作用。选择性必修课在《普通高中信息技术课程标准(2017年版2020年修订)》(以下简称《课标》)中的学业要求为等级考试,教学进度完成后需及时开展模块教学评测,对学生学习过程和结果进行评价,反馈并完善教与学的过程,以实现培养学生信息素养目标的达成。 
期刊
在教学过程中,情境的设计对教学设计具有提纲挈领、直击核心的作用,教师通过对情境材料的分析,梳理课堂知识内容,优化教学设计环节,充分落实教学素材在情境中的作用,对学生的学习和理解具有积极的指导作用。●课堂情境创设如何出发情境在教学中是情感的延伸,它能给学生提供良好的暗示或启迪,锻炼学生的创造性思维及适应新时代的学习能力。
教学中,教师经常会把自己讲课的内容录制成微课,或者在搜集教学视频、音频等内容时,常常出现不能下载的情况,这时就需要用到录屏软件。常用的录屏软件有OBS Studio、Course Maker、Camtasia Studio、绘声绘影等。本期为教师们介绍一款免费、無水印、无需注册、极易上手的录屏工具——EV录屏,适合教师在最短时间内录屏,录制的视频可作为在线教学的必备资源。  ● EV录屏的主要功能
期刊
智能技术如何赋能“校内”,助推“双减”,从而带来教育教学质量提升的“拐点”?这是“双减”背景下信息化教学面临的重大课题。落实“双减”必须减少课堂上教师、学生的无效劳动,在“让学习真正发生”的过程中培养学科思维,发展核心素养,从而“使学习达到既定的目标”。本期的两个课例在这方面做了一定的尝试。  小学低段数学建模素养的培养对于教师和学生而言都是一个挑战。王亚兰老师借助个性化教与学系统,引导学生在游戏
期刊
大数据时代,教育数据以容量大、类型多、速度快和价值高为显著特征,为驱动校本教研的转型提供可能.学生学业数据、教师行为数据、教育情境及环境数据和区域教育数据有助于勾勒和映射出不同教研应用场景的特征和轮廓,帮助学校精准把握教研方向,从而科学地改进教学.从2016年至今,笔者所在学校经历了基于信息技术环境收集的学业数据分析及多模态数据多维度数据分析的校本教研实践过程,逐渐形成了具有特色的基于数据驱动的教研模式,以支持课堂教学改进、教学行为优化,推动学校教学改革向纵深发展.在这样的背景下,笔者所在的数学组也进行了
期刊
近年来,随着创客教育的不断发展,3D打印逐步走进中小学创客空间,成为中小学信息技术开设的主要课程之一。笔者所在学校于2018年开展3D打印创意设计教学,通过3年的课堂教学实践,在经历了注重3D建模软件的功能操作学习后,开始关注学生对3D打印学习动机的激发与维持。从目前的课堂教学和学生反馈效果来看,还存在以下问题:①自主性不足,学生缺乏持续性学习兴趣。学生在3D课堂上的学习内容是教师进行规划制订的,
期刊