Python程序设计教学中的“透”和“趣”
2024-12-11马燕晶
Python编程语言以其语法简洁、类库丰富的特点广受编程新手喜爱。对于初中信息技术教师而言,Python程序是一门内容相对较新的课程;对于学生而言,虽然他们对操作电脑比较精通,但对于编程语言可能了解甚少。因此,在课程开始前,教师需要进行充分的准备工作,除了要对教学内容进行整体梳理,还要研究Python程序设计教学中的“透”和“趣”。这实质上就是以学生兴趣为基础,将学科知识和日常生活进行整合,打造具有立体感和层次感的学习过程。同时,教师在进行教学设计时要兼顾兴趣与理论知识,不可因培养兴趣而忽视理论知识教学。若想完成上述目标,教师还要对Python程序的教学内容进行深度剖析。这样既能充分挖掘教材,让学生“吃透”“学透”,掌握扎实的理论基础,还能培养自己在教学领域的创新思维。
“初识Python”是Python程序设计系列课程的第一课,是开启Python世界大门的钥匙,在激发学生学习兴趣并掌握编程语言方面具有重要意义。这一课通过充满趣味的教学,让学生初步了解Python编程语言,并体验程序设计的魅力。
一、教学概况
部分学生在小学阶段接触过编程内容,但掌握不系统、运用不够灵活;部分学生是入校后第一次接触学习。
二、教学展示
(一)寻找Python“钥匙”(课前导入)
(多媒体展示:Python图标;Python软件创始人)
师:编程语言,顾名思义是用来编写计算机程序的特定语言,从而向计算机设备发出指令,让计算机完成指定的任务。编程语言有很多种,今天我们要学习的是Python,展示的人物是Python软件创始人吉多·范罗苏姆,他是一名计算机程序员,被称为Python之父,目前仍然在从事Python开发工作。在Python开发领域流传着这样一句话:life is short,you need Python(“人生苦短,我用Python”),体现了Python程序语言的优势。从本课开始,我们一起探索Python程序内容,希望大家通过学习能多掌握一门技术语言。
(设计意图:通过简单有趣的导入,让学生了解课程基本内容,明确课程学习的意义,在心中埋下学习兴趣的种子。)
(二)打开Python之门(新课讲授)
第一站:探索Python编程环境
教师引导:我们将开启Python编程的学习旅程,请大家打开电脑桌面上的学习资料,跟随指导步骤,一起探索Python的环境,并为电脑配置编程环境。
多媒体下发学生自主学习任务:
1.学习打开Python软件的方法。
2.认识并理解壳窗口的功能。
3.调整编辑器以适应个人喜好。
4.实践使用壳窗口进行基本操作。
教学点睛:Python编程环境不是物理状态的环境,而是一种计算机系统状态,在这种环境中计算机可以开始特定的工作。在讲授过程中,教师要注意区分术语,以免学生混淆。通过教师及时的同步解释,学生会渐入学习佳境。
(设计意图:这一站的目标是让学生熟悉Python的壳窗口和提示符。相比理论学习让学生不知所云,动手操作更能让学生有学习兴趣;通过老师布置的基础任务,学生在自主操作的过程中能够快速熟悉课程框架,迈出新课学习第一步。)
第二站:深入Python编程世界
在这一站,我们将探索Python的两个核心函数:print()和input()。
1. print()函数
师:print有打印、印刷的意思,在编程语言中表示输出,print()函数表示允许我们向计算机设备输出信息。
先由教师在程序做演示,再指导学生学习如何使用print()函数输出文本,强调文本无论是用单引号还是双引号,都必须成对出现。此外,英文状态下的标点符号也需要正确使用。
教学提示:有条件或时间充裕的情况下,教师可以开展“大家来找碴”游戏,让学生判断代码的正确与否,通过具体的图例展示发现问题,进而检查代码的正误,降低学生面对一连串代码不知所云的枯燥性。
2. input()函数
师:input()函数允许我们接收用户的输入,尽管input()函数看起来和print()函数相似,但它们之间的一个重要区别是input()会等待用户输入后才继续执行。为了在程序中使用这些输入的数据,我们需要给输入的内容赋值给一个变量(如图1)。
学生尝试操作,输入“caicai”并按下回车键,屏幕上会显示输入的内容。
(设计意图:本环节体现了在教学设计中要重视“透”这一点,引导学生深刻掌握这两个函数的作用,理解意义并学会如何操作,吃透用法,在后续的学习中才能稳扎稳打。)
第三站:掌握Python编辑技巧
师:在这一站,我们将学习如何使用Python编辑窗口来保存我们写的代码。因为壳窗口关闭后,内容会丢失,所以需要找到可以保存代码的地方,以下步骤请同学们跟着老师一起操作。
1.开启编辑窗口
打开一个新的编辑窗口,并将代码复制、粘贴到编辑窗口中。按下F5键,编辑窗口会提示是否保存文件。
2.保存文件
接下来,选择电脑桌面作为文件保存的位置,给文件起一个名称,比如“1”,注意不要添加任何后缀。这样,文件默认的扩展名就是.py(python脚本文件),完整的文件名就是“1.py”。
3.实践操作
现在,请大家在编辑窗口中输入两行代码,并保存文件名为“1.py”来运行并观察结果是什么。
4.探索问题
请大家思考:如果我们按照以下方式编写代码,这样写行不行?如果不行,应该如何修正?
代码示例:
```python
>>> print(1 + '123')
```
学生回答并修正:
```python
>>> print('1' + '123') # 输出:'1123'
>>> print(1 + 123) # 输出:124
```
教师小结:通过以上学习,我们不仅创建了第一个具有交互功能的Python程序,还学会了如何将程序上传到机器人上,实现了简单的人机对话交互功能。如果程序能够上传到机器人的主板上,机器人就具备语言识别功能,这就是大家熟知的“小度”的运行原理。
第四站: Python实践——制作星座查询小程序
师:在这一站,老师将教大家学习如何编写一个简单的星座查询程序,这个程序将根据用户输入的生日,帮助他们找到对应的星座。
首先,我们需要了解一些基础知识:
星座列表(`star`):包含了十二个星座的名称。
月份日期列表(`d1`):包含了每个星座第一个月的上限日期。
月份日期列表(`d2`):包含了每个星座第二个月的下限日期。
然后,需要让用户输入自己的生日,我们可以使用input()函数来实现这一点。
接下来,我们需要检查用户输入的日期是否在某个星座的日期范围内,可以使用一个`for`循环来遍历`d1`和`d2`列表,并检查用户输入的日期是否在范围内。如果输入的日期在某个星座的范围内,我们将该星座的名称赋值给一个变量(比如`result`),并跳出循环。
最后,我们输出变量`result`的值,告诉用户他们的星座内容。
学生认真观察老师的操作过程,有学习基础的同学可以试着自己操作。
师:下面是这个程序的代码示例, 将根据用户输入的生日,告诉他们对应的星座。
```python
# 星座名称和日期范围
star_dates = [
("水瓶座", (1, 20), (2, 18)),
("双鱼座", (2, 19), (3, 20)),
("白羊座", (3, 21), (4, 19)),
("金牛座", (4, 20), (5, 20)),
("双子座", (5, 21), (6, 20)),
("巨蟹座", (6, 21), (7, 22)),
("狮子座", (7, 23), (8, 22)),
("处女座", (8, 23), (9, 22)),
("天秤座", (9, 23), (10, 22)),
("天蝎座", (10, 23), (11, 21)),
("射手座", (11, 22), (12, 21)),
("摩羯座", (12, 22), (1, 19))
]
# 获取用户输入并处理
birthday = input("请输入你的生日(格式如0417):")
month = int(birthday[:2])
day = int(birthday[2:])
# 查找星座
result = ""
for star,(start_month, start_day), (endYHLgfyM/Yb+KLR3oZ5ZelANgHjQvz/p/HLJe/g3XDvs=_month,end_day) in star_dates:
if((month==start_month and day>= start_day)or
(month == end_month and day <= end_day)):
result = star
break
# 输出结果
if result:
print(f"你是{result}宝宝。")
else:
print("输入有误,请输入正确的日期。")
```
学生检查自己的程序是否能运行,如有问题先自行检查,再求助老师。
(设计意图:通过结合学生感兴趣的星座内容学习做小程序,既能趁热打铁、现学现用,又体现了教学的“趣”,削减了学生的畏难和枯燥情绪。)
三、教学复盘
(一)课后作业
(1)请同学们相互修正并补全星座查询程序。
(2)修改程序中的日期判断条件,以适应不同月份的天数。
(设计意图:学习编程语言需要学生勤学勤练,通过课后练习将课堂所学转化为个人技能,让学生的学习兴趣能持续发力。)
(二)教学总结
本次教学通过趣味性导入、实践性教学等方法让学生在第一堂课上知道什么是编程语言,了解并学习使用最基本的函数知识,试着写一写简单的代码并知道如何保存,再在教师的指导下做简易的程序。通过这一系列操作,课程框架初步搭建起来,随着课程内容越来越深入,学生的学习基础越来越扎实,在达成教学目标的同时,对学生核心素养的培养也会水到渠成。
当然,由于每个学生的学习基础与能力各异,班级整体水平仍有参差。笔者在今后会根据实际做一定的调整,让有基础、有能力的学生“带头先跑”,在其学有余力之时还可以帮助基础薄弱的同学,实现共同进步。
(作者单位:甘肃省兰州市榆中县连搭中学)
编辑:张国仁