少儿编程

系列

Python 初体验 | 函数与响应

前言

你又来啦,小同学~

昨天,我们学习了随机数和选择语句,今天我们继续学习 Python 中一个很重要的内容,并布置一个小游戏。

让我们开始吧!

函数解密

还记得 print() 吗?

嗯,就是我们在第一天讲的打印语句,当时我们说,这个 Python 自带的一个函数。

我们那时简单解释了函数的概念,说函数就像一台能工作的机器,它的作用是把我们输入的原料加工成我们需要的产品再输出来。

今天,我们就深入到这台机器的内部,看看它是怎么工作的。

从输入到输出发生了什么?

注意到,我们之前已经用了很多的函数,但都是别人已经做好的,我们只是简单的拿过来使用了而已。

而在现实的程序编写过程中,我们会更多的自己来定义一些函数。

这些函数可以完成我们特定需求的一些功能。

今天我们就来自己定义一些函数,进而发现函数内部的奥秘。

首先,放“码”过来 ——

Talk is cheap. Show me the code.

Linus Torvalds
def hello(name):
    print('Hello, ' + name + '!')
hello('Little D')
                

以上的代码,我们定义了一个函数,并在定义后调用了这个函数,运行时是这样的:

自定义函数和调用

这个程序只有四行语句,我们来逐一解释一下在 Python 中,函数定义与调用的语法:

  1. def 是定义函数必须写的,表示定义
  2. hello 是函数名,就是为函数起个名字
  3. name 放在小括号中,是函数的参数
  4. print() 语句是这个函数内部的处理

而在这个函数定义好了之后,我们可以使用函数的名字,并添加“原料”,就是参数来调用这个函数,通过它内部的工作,进而获得我们需要的结果。

同时,大家还是要注意语法的细节,冒号和缩进是必不可少的。

那么函数有什么作用呢?

函数的作用有很多...

其中一个重要的作用是可以减少很多重复的代码。

当我们需要频繁的做一件“类似”的事情时,比如说,向不同的人问好,没有必要每次都重新输出一个“Hello...”,而是定义一个上面的函数,传入不同的人名即可。

事件响应

在了解了函数的定义之后,我们再次回到海龟绘图,get一个新的技能 —— 事件响应。

首先,我们定义一个函数:

import turtle as t

# 用 shape() 函数设置绘图的形状
t.shape('turtle')


def fd():
    t.forward(100)


fd()
                

运行后的结果大家不难想见,就是一只小海龟向前走了 100 像素的距离。

现在我们提出一个新的想法:能不能用键盘上的按键控制海龟的移动?

答案是当然可以,但我们需要一个全新的概念 —— 事件响应

什么叫事件,这里的 事件 event 指的是操纵计算机的人,通过键盘或鼠标作出的动作,比如有:

  • 按下了键盘的某个按键
  • 点击了鼠标的某个按键
  • 移动了鼠标

等等,我们都称之为事件。

如果编程语言能够监听 listen到某个事件的发生,就可以通过调用函数的方式,对事件做出回应,这就叫做事件的响应。

很难理解啊...

一会看例子你就明白了~

import turtle as t
t.shape('turtle')


def fd():
    t.forward(10)


# 事件监听及响应
s = t.Screen()
s.onkey(fd, 'Up')
s.listen()
                

最后三行代码实现了海龟绘图的事件监听与响应,结果是当程序运行时,只有你按下键盘上的上箭头 Up,海龟才会向前移动。

因为当前监听的就是按键上箭头的事件,响应是对 fd() 函数的一次调用。

效果是这样的:

完成的作品

事件响应在编程中很常见,在浏览网页时,我们也可以做出键盘和鼠标事件,JavaScript 脚本语言可以捕获这类事件并进行合理的响应处理。

在我们的手机等移动设备上,有着更加丰富的手势事件,对应的 Java / Kotlin 或 Objective-C / Swift 语言也可以对这些事件进行捕获和处理。

以上这些,虽然表现形式和处理方式各有千秋,但从原理上来讲都是相通的。

万变不离其宗
                

一个简单的小游戏

今天的最后,我们设计一个简单的小游戏:让海龟能够根据我们按下上、下、左、右四个箭头进行任意的移动。

我们把这个游戏的实现交给小朋友们,相信聪明的你一定能够实现!

明天见~

提示:上下左右键的名字分别为 Up / Down / Left / Right