儿童学python趣味100课-第87课

  • 昨天的坐标
    • 今天的坐标
      • 总结:创建魔法的神器

昨天的坐标

各位同学知道奥卡姆剃刀原理吗?爱因斯坦就是靠这个原理发现了相对论。
这个原理在很多方面都有不同的解释,通用解释是:“如无必要勿增实体”
在编程学里面就是:
追求 程序的简洁优雅是我们的目标:
昨天我们学习的坐标的程序,是挺好理解的。但是还是比较繁琐:

今天的坐标

我们来分析一下,哪些是重复的工作:
通过今天学习的内容使他更加简化:
我们分析得知在画坐标轴的四个部分的时候
其中画的过程是一样的,可以简化。
如果:
如果我们把画坐标轴的过程想象一个魔法叫做zuobiaozhou
想象我们是一个人站在原点上
拿着宝剑向四个方向使用魔法zuobiaozhou
这样在四个方向上就都形成坐标了

如何创建 注意这里是创建创建 一个我们以后能用的魔法呢
方法就是,编程中的重点中的重点。你想呀,我能可以自己定义我们的魔法招数
这部相当于在战斗中有了最多变的武器了吗。
def 魔法名 (参数,参数,参数…):
细心的同学可以看出来这个和我们的for 循环很象,都要注意冒号 缩进等
来看一下我们简化的程序是否简洁优美。

from turtle import *
pencolor("black")
speed(0)
def zuobiaozhou(zongchang,kedu,gaodu):
    for i in range(0,zongchang,kedu):
        if i<2:
            write(i)
        else:
            write(-i)
        forward(kedu)
        left(90)
        forward(gaodu)
        backward(gaodu*2)
        forward(gaodu)
        right(90)
         
for i in range(4):
        setpos(0,0)
        setheading(i*90)
        zuobiaozhou(350,50,10)
mainloop()

是不是比昨天更简洁,优美。《笑》

总结:创建魔法的神器

def 魔法名 (参数,参数,参数…):
魔法名(参数,参数)调用
我们创建了一个叫做zuobiaozhou的魔法
然后用for循环4次,调用了四次zuobiaozhou这个魔法,工作就高效的完成了。
我们将坐标轴的个数增多:到36个
配合变化:

setheading(10)
for i in range(36):
        setpos(0,0)
        setheading(i*10)
        zuobiaozhou(350,50,10)

就会生成一个36轴的坐标

更多推荐

儿童学python趣味100课-第87课