友情提示:380元/半年,儿童学编程,就上码丁实验室。
这里 专项复习。制作工具和使用模具来实现程序功能。
在学习的过程,一些问题比较容易暴露出来,比如程序设计中的逻辑错误,但是还有一些问题就没有那么容易暴露出来,比如,对函数的理解等等。小朋友有时候能够写出来一些语句,并不是因为对使用方法理解了,而是因为一开始就是这么学习和记忆的。稍稍变换一下要求,可能就实现不了。
还有一个问题就是代码是由字母串组成的,尤其当一大串字母串组合在一起的时候,更容易看懵。在很多时候,换位思考会更好一点。作为初学者的小朋友面对大段的代码,和自己面对如下的代码一下,比较难理解。比如这句 ./configure –prefix=/usr/lcoal/python3,完全与脑海中的关于程序安装的理念相冲突(就问你懵不懵)。同样地,小朋友对于赋值 x=3+5啊,循环啊,函数啊也同样会面临冲突的问题。因为程序中的思维在现实中比较难找到可以参考理解的事物。往大了说一点,世界观差异、文化差异也大抵如此。
因为类包括属性和函数,所以教的思路是先教函数再教类。和小朋友直接说函数和类的概念,小朋友很难理解和融入自己的知识体系。因此,在教的时候,把函数比作工具,比如剪刀、螺丝刀等等,可以拿过来直接用。把类比作另一种工具的模具,要想使用工具就必须使用模具来制作工具,即类的实例化。
函数可以分为有参数的函数和无参数的函数,以及有返回值的函数和无返回值的函数。因为小朋友刚学到乘法,所以让小朋友做了加减乘除四个函数。
def maxadd(m1,m2): n=m1+m2 return n def maxsubtract(m1,m2): n=m1-m2 return n def maxmultiply(m1,m2): n=m1*m2 return n def maxdivide(m1,m2): n=m1/m2 return n
几个要点:
- 关键字def后面的是函数的名字
- 返回值用return
- 函数就像一个黑盒子,使用者只可以看到参数和返回值
- 不同函数中的变量谁都看不见谁,也改变不了谁
类包括属性(一些变量)和功能(函数)。几个要点包括:
- 类名的第一字母大写
- 类的函数和一般函数相比有个不同点就是第一参数是self,表示对自己这个类的引用
- 对于属性的使用都需要使用self来寻找
class Maxmath: def setvalue(self,m1,m2): self.a=m1 self.b=m2 def maxadd(self): y=self.a+self.b return y def maxsubtract(self): y=self.a-self.b return y def maxmultiply(self): y=self.a*self.b return y def maxdivide(self): y=self.a/self.b return y
上面说过,要使用类的话,必须先使用类这个模具制作一个工具(对象实例),之后使用这个对象实例中的函数来实现功能。
m=Maxmath() m.setvalue(8,2) i=m.maxadd() print(str(m.a)+"+"+str(m.b)+"="+str(i))