趣味编程挑战从Python入门到AI应用整理4课件_第1页
趣味编程挑战从Python入门到AI应用整理4课件_第2页
趣味编程挑战从Python入门到AI应用整理4课件_第3页
趣味编程挑战从Python入门到AI应用整理4课件_第4页
趣味编程挑战从Python入门到AI应用整理4课件_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

趣味编程挑战:从Python入门到AI应用

04绘制五星红旗——函数目录目录1.1挑战描述1.2解题思路1.3编程实现1.4函数1.5变量的作用域1.6小结1.7巩固练习1966年,SeymourPapert和WallyFeurzig发明了一种专门给儿童学习编程的语言——LOGO语言,它的特色就是通过编程指挥一个可爱的小海龟(turtle)在屏幕上绘图。海龟绘图(TurtleGraphics)后来被移植到了包括Python的各种高级语言中,Python内置了turtle库,基本上100%复制了TurtleGraphics的所有功能。在海龟绘图中,创作者可以编写程序指令让一个虚拟的海龟在电脑屏幕上来回移动。这只海龟随身携带着一只钢笔,创作者可以让海龟使用这只钢笔来绘制五颜六色的图案。使用海龟绘图,创作者们不仅能够只用几行代码就创建出令人印象深刻的视觉效果,而且还可以通过观察海龟来理解每行代码如何影响到它的移动,帮助其理解代码的逻辑。所以海龟绘图也常被用作新手学习Python的一种有效方法。本次挑战中,需要用Python语言的turtle库,在屏幕上绘制出一面五星红旗。

1.1挑战描述Python语言的turtle库中提供了种类丰富的内置函数,以帮助使用者绘制绘制各种图案。本挑战中将会使用到的部分turtle库函数如表所示:1.2解题思路函数名称功能示例begin_fill()在绘制要填充的形状之前调用turtle.begin_fill()bgcolor(颜色值)设置主窗口的背景颜色turtle.bgcolor("red")color(颜色值)设置画笔颜色和填充颜色turtle.color("yellow")done()海龟绘图程序的结束语句turtle.done()down()放下画笔,移动时将画线turtle.down()end_fill()填充上次调用begin_fill()之后绘制的形状turtle.end_fill()forward(距离)海龟前进指定距离,方向为海龟的朝向turtle.forward(10)goto(X坐标,Y坐标)海龟移动到一个绝对坐标turtle.goto(100,100)hideturtle()使海龟不可见turtle.hideturtle()left(角度)海龟左转指定角度turtle.left(5)right(角度)海龟右转指定角度turtle.right(5)seth(角度)设置海龟的朝向:0为东、90为北、180为西、270为南turtle.seth(0)setup(宽,高,距屏幕左边缘像素数,距屏幕上边缘像素数)设置主窗口的大小和位置turtle.setup(600,400,0,0)speed(速度值)设置海龟移动速度,范围[0,10]turtle.speed(7)使用自然语言描述”绘制五星红旗“挑战的算法,其步骤如下。(1)初始化五星红旗的大小和背景色、画笔颜色、海龟的移动速度。(2)调用自定义函数drawStar()绘制大五星。(3)调用自定义函数drawStar()分别绘制四个小五星。1.2解题思路1.3编程实现1.4函数

函数是Python语言里最重要的概念之一。在编程时,程序员们需要将真实世界里的大问题分解为小问题,然后通过一个个函数交出答案。函数即是重复代码的克星,也是对抗代码复杂度的最佳武器。1、内置函数当我们用Python编程的时候,很多情况下,我们只不过是在使用别人已经写好的函数,即内置函数。例如,print()函数。2、函数的参数在Python中,函数的参数,有如下两种:位置参数和关键字参数。在函数定义中,带有=的参数为已设定了默认值的参数,叫做关键字参数,其它的是位置参数。3、自定义函数程序员们可以定义并使用自己的函数,就像内置函数一样,自定义函数的关键字是def,以下代码定义了一个什么都不干的函数:1.4函数为函数取名字的规则与变量的命名规则是一样的,即只能由数字、字母和下划线构成,不能以数字开头,不能使用关键字,且尽量使用有意义的单词或单词组作为函数名称。自定义函数的第二步是定义参数列表,函数可以不接收任何参数(参数列表为空),也可以接收一个或多个参数。接下来定义一个判断某年是否为闰年的函数,取名为isLeap(),它接收一个整型参数,若是闰年,则返回True;否则返回False。1.4函数函数可以同时接收多个参数。例如,可以写一个函数,让它输出从大于等于某个年份到小于另外一个年份所有的闰年。这时就需要定义两个参数,调用它的时候也需要传递两个参数。自定义函数的第三步工作是处理返回值。函数通过return语句来输出返回值。但函数内部,不一定非要有return语句,上面的do_nothing()函数就没有return语句,如果函数内部并未定义返回值,那么该函数的返回值为None,当None被当作布尔值对待的时候,相当于是False。而上面的isLeap()函数,就有一个布尔型的返回值,并通过return语句输出。若是闰年,则返回True;否则返回False。1.5变量的作用域在程序执行过程中,变量有全局变量(GlobalVariable)和局域变量(LocalVariable)之分。首先,每次某个函数被调用的时候,这个函数会开辟一个新的内存区域,这个函数内部所有的变量,都是局域变量。也就是说,即便那个函数内部某个变量的名称与它外部的某个全局变量名称相同,它们也不是同一个变量——只是名称相同而已;其次,更为重要的是,当外部调用一个函数的时候,传递给参数的不是变量本身,而是变量的值。也就是说,当increaseOne(n)被调用的时候,被传递给那个恰好名称也叫n的局域变量的,是全局变量n的值1;而后,increaseOne()函数的代码开始执行,局域变量n经过n+=1执行之后,其值变为2,而后这个值又被return语句返回,所以print(increaseOne(n))所输出的值是函数被调用之后的返回值,即2;最后,全局变量n的值并没有被改变,因为局部变量n(它的值是2)和全局变量n(它的值还是1)只不过是名字相同而已,但它们并不是同一个变量。  有一种情况要格外注意,如果传递进来的参数是可变容器(例如,列表)时,函数内部如果对这个容器的某些项进行了修改,则全局有效。所以,一个比较好的习惯是,如果传递进来的值是列表,那么在函数内部对其操作之前,应先创建一个它的拷贝。容器和列表是“前置引用”知识,会在后面的挑战中详细介绍。1.6小结本次挑战中,通过“绘制五星红旗”挑战,引入了函数的知识点,希望各位能够掌握Python中内置函数和自定义函数的使用方法,具体包括:内置函数函数的参数和返回值自定义函数变量的作用域

1.7巩固练习习题1:阅读如下Python代码,写出运行结果。

1.7巩固练习习题2:“小处着手”,是一个很好的学习方式,先学会编写各种“小”函数,慢慢地就能设计“大”函数了。下面的Python代码

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论