APP下载

Python程序设计教学中的“透”和“趣”

2024-12-11马燕晶

新课程·上旬 2024年32期

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)修改程序中的日期判断条件,以适应不同月份的天数。

(设计意图:学习编程语言需要学生勤学勤练,通过课后练习将课堂所学转化为个人技能,让学生的学习兴趣能持续发力。)

(二)教学总结

本次教学通过趣味性导入、实践性教学等方法让学生在第一堂课上知道什么是编程语言,了解并学习使用最基本的函数知识,试着写一写简单的代码并知道如何保存,再在教师的指导下做简易的程序。通过这一系列操作,课程框架初步搭建起来,随着课程内容越来越深入,学生的学习基础越来越扎实,在达成教学目标的同时,对学生核心素养的培养也会水到渠成。

当然,由于每个学生的学习基础与能力各异,班级整体水平仍有参差。笔者在今后会根据实际做一定的调整,让有基础、有能力的学生“带头先跑”,在其学有余力之时还可以帮助基础薄弱的同学,实现共同进步。

(作者单位:甘肃省兰州市榆中县连搭中学)

编辑:张国仁