本节所需基础知识:
坐标coordination
函数function
关于盖房子
如何盖房子呢(像上面一样的)?想象中应该是这样:先盖四面的墙、再做房顶、然后安窗户、再然后安门儿......如果有院子,还要做草坪、小路、栅栏门儿等等。当然,后续还会有装修什么的。总之是按“功能”部位逐渐工作。
盖房子叫做“建筑工程”、做软件叫“软件工程”——这两个都叫“工程”,所以软件编程的方法也是像盖房子一样按照“功能部位”逐步完成。软件里的这种每个功能我们是用“函数”来实现的。所以:
我们设计了函数drawHouse()来造墙面
我们设计了函数drawDoor()来造门
我们设计了函数drawWindow()来造窗户
我们设计了函数drawFence()来造栅栏
我们设计了函数drawPath()来造小路
我们设计了函数drawBush()来造灌木丛
我们设计了函数drawGrass()来造草坪
我们设计了函数drawCloud()来造云朵
我们设计了函数drawSun()来造太阳
开始“造”房子
最先开始造的是“墙”和“屋顶”,房屋的主体就是它,所以我们写了一个drawHouse()函数来完成这个“功能”或“任务”。仔细读下面的代码,学习过平台前面教程的童鞋都能理解吧:提笔penup,走到哪里用goto,设置方向setheading,前进forward等等。是不是很easy。
房屋主体代码
请执行上面的代码查看结果。对于如何测试一个函数因为其他的部分还没有写好,所以最好的办法是在IDLE里面执行程序,然后在提示符>>>下调用函数试验下:
测试
drawHouse()函数代码
画窗户
两种窗户,一种是方形、一种是圆形。我们用一个函数drawWindow()来画两种窗户,当然很容易实现了,一个if选择结构就可以了。画田字形窗户的时候用了双层的for循环,为的是画完后能把坐标(x,y)点作为“中心”,这样我们在调用函数drawWindow(pen,x,y,shape)时,我们指定的是中心位置。
一朵云彩
下面画一朵天空中的云彩。当然画云彩也有很多方法,我们就用简单的一堆“圆形”来表示,然后“填充”,很简单的代码,请查看如下专门画云朵的函数drawCloud()。你要是测试的话还按照上面教的方法就行了。
画“云朵”代码
整体来画
重复使用以前写的代码
上面我只介绍了几个“功能”部分的函数——主体架构、窗户,还有天上的云朵;还有很多函数呢用来专门画各个“功能”——还有门、栅栏、小路、草地、太阳等等。我们直接贴上代码(扫描下面二维码获得),请自行阅读,很容易理解。
扫描获得完整各功能函数代码
(保存文件名为shapes.py)
今天教大家一个很重要的方法,就是“代码重用”——比如我先写了一段代码,里面有一个画“窗户”的函数,就比如上面提到的drawWindow()函数,我如果下次再一次在一个新的程序里写代码的时候也需要画窗户,那我再写一遍drawWindow()函数吗?NO,大家都很懒,你我都一样。这时候我可以把原来写的函数直接import(导入)过来就行了(实际上,我们画画之前的第一条语句import turtle,也是引入了人家早已经写好的一些程序)。好了,将一堆含有画房子的各个部分的“函数”保存为“shapes.py”这个文件名字(上面二维码里有此代码),然后再新建一个程序代码文件,取名为“house_drawing.py”,如下所示:
这个是什么?
这是国外的小朋友(10岁)画的画儿,画的是他的城市的一角。当然不是用画笔了,而是用神奇的python语言编程出来的!用编程来画画当然可以了。
这个是小朋友(12岁)用Python语言编程设计的小游戏。能“吃”东西,能加分和减分,特别容易上瘾 哦!
领取专属 10元无门槛券
私享最新 技术干货