Python-电子教案2-2-Python程序实例解析.ppt_第1页
Python-电子教案2-2-Python程序实例解析.ppt_第2页
Python-电子教案2-2-Python程序实例解析.ppt_第3页
Python-电子教案2-2-Python程序实例解析.ppt_第4页
Python-电子教案2-2-Python程序实例解析.ppt_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

第2章 Python程序实例解析,Python蟒蛇绘制,Python英文是蟒蛇的意思,通过下面的例子来实践用Python语言输出图形效果,实例代码2.1与实例代码1.1有两个显著的不同。 第一,这个程序没有使用显式的用户输入输出,即input()函数和print()函数; 第二,这个程序绝大代码行都是.()形式,代码行中没有赋值语句。,Python蟒蛇绘制实例,.()是Python编程的一种典型表达形式,它可以表示调用一个对象的方法(),也可以表示调用一个函数库中的函数()。 实例代码2.1使用了用于绘制图形的turtle库,并在代码第2行通过保留字import引用这个函数库。 import turtle,Python蟒蛇绘制实例,实例代码2.1的第3行到第16行调用了turtle库中若干函数来绘制Python蟒蛇,所有被调用函数都使用了.()形式。 这种通过使用函数库并利用库中函数进行编程的方法是Python语言最重要的特点,称为“模块编程”。,Python蟒蛇绘制实例,面向对象编程是一种基于对象(Object)的编程范式。对象是事物的一种抽象,它是一个实体,包含属性和方法两部分。属性是对象中的变量,方法是对象能够完成的操作。 假设对象是O,则O.a表示对象O的属性a,O.b()表示对象O的操作b(),其中a是一个变量值,b()是一个函数。例如,一辆汽车可以作为一个对象,标记为C,汽车的颜色是汽车的属性,表示为C.color,前进是汽车的一个动作,相当于一个功能,因此前进是对象C的方法,表示为O.forward()。,面向对象编程,保留字import有两种方式引用函数库,对函数的使用方式略有不同。 第一种引用函数库的方法如下: import 此时,程序可以调用库名中所有函数,使用库中函数的格式如下 .(),Python蟒蛇绘制实例,第二种引用函数库的方法如下: from import from import * #其中,*是通配符,表示所有函数 此时,调用该库函数时不需要使用库名,直接使用如下格式: (),Python蟒蛇绘制实例,由于“Python蟒蛇绘制”程序只用了turtle库中setup()、penup()、fd()、pendown()、pensize()、pencolor()、seth()、circle()等8个函数,第2行的import语句也可以写成如下形式: from turtle import setup, penup, fd, pendown from turtle import pensize, pencolor, seth, circle,Python蟒蛇绘制实例,两种函数库引用方式各有优点。 第一种采用.()方式调用库中函数,能够显式标明函数来源,在引用较多库时代码可读性更好。 第二种利用保留字直接引用库中函数,可以使代码更简洁,在类似程序代码2.2这种只引用一个库的情况下,效果更好。,Python蟒蛇绘制实例,需要注意,第一种引用方式,Python解释器将.整体作为函数名。当采用第二种方式时,Python解释器将作为函数名。这可能产生一种情况,假设用户已经定义了一个函数,库中的函数名将会与用户自定义的函数名冲突。 对于初学者,建议采用第一种库引用方式,使用.()方式调用库函数。,Python蟒蛇绘制实例,def 用于定义函数,这段程序中,共出现两次def关键词,包含两个函数drawSnake和main。 函数是一组代码的集合,用于表达一个功能,或者说,函数表示一组代码的归属,函数名称是这段代码的名字。 def所定义的函数在程序中未经调用不能直接执行,需要通过函数名调用才能够执行。,Python蟒蛇绘制实例,eval()函数是Python语言中一个十分重要的函数,它能够以Python表达式的方式解析并执行字符串,将返回结果输出 由于def定义的函数在程序中未经调用不会被执行,整个程序第一条执行的语句是main(),它表示执行名字为main()的函数。,Python蟒蛇绘制实例,从而,该程序跳转到main()函数定义的一组语句中执行,即开始执行 turtle.setup()语句 同样的,main()函数的最后一条语句调用了drawSnake()函数,当执行到这条语句时,程序跳转到drawSnake()函数中运行。,Python蟒蛇绘制实例,turtle库语法元素分析,使用turtle库,同学们头脑里需要有这样一个概念 想象一个小乌龟,在一个横轴为x、纵轴为y的坐标系原点,(0,0)位置开始它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行的路径上绘制了图形 其爬行轨迹形成了绘制图形。对于小海龟来说,有“前进”、“后退”、“旋转”等爬行行为,对坐标系的探索也通过“前进方向”、“后退方向”、“左侧方向”和“右侧方向”等小海龟自身角度方位来完成。,Python蟒蛇绘制实例,我们所使用的显示屏幕也是一个坐标系,该坐标系以左上角为原点,向左和向下分别是x轴和y轴。 蟒蛇程序代码启动一个1300像素宽、800像素高的窗口,该窗口的左上角是屏幕的左上角。,Python蟒蛇绘制实例,turtle.setup(width, height, startx, starty) 作用:设置主窗体的大小和位置 参数:width :窗口宽度,如果值是整数,表示的像素值;如果值是小数,表示窗口宽度与屏幕的比例;height: 窗口高度,如果值是整数,表示的像素值;如果值是小数,表示窗口高度与屏幕的比例;startx:窗口左侧与屏幕左侧的像素距离,如果值是None,窗口位于屏幕水平中央;starty:窗口顶部与屏幕顶部的像素距离,如果值是None,窗口位于屏幕垂直中央;,绘图坐标体系,图2.5:turtle.setup()函数四个参数的含义,绘图坐标体系,turtle中的画笔(即小海龟)可以通过一组函数来控制,实例代码2.1中第4行的turtle.penup()函数和第6行的turtle.pendown()函数是一组,它们分别表示抬起画笔和落下画笔,函数定义如下: turtle.penup() 别名 turtle.pu(), turtle.up() 作用:抬起画笔,之后,移动画笔不绘制形状 turtle.pendown() 别名 turtle.pd(), turtle.down() 作用:落下画笔,之后,移动画笔将绘制形状,绘图坐标体系,turtle.pensize()函数用来设置画笔尺寸,函数定义如下: turtle.pensize(width) 别名 turtle.width() 作用:设置画笔宽度,当无参数输入时返回当前画笔宽度 参数:width :设置的画笔线条宽度,如果为None或者为空,函数则返回当前画笔宽度。,画笔控制函数,turtle.pencolor()函数给画笔设置颜色,程序代码2.1中将画笔设为“紫色”,函数定义如下: turtle.pencolor(colorstring) 或者 turtle.pencolor(r,g,b) 作用:设置画笔颜色,当无参数输入时返回当前画笔颜色 参数: colorstring :表示颜色的字符串,例如:“purple“、“red“、“blue“等 (r,g,b) : 颜色对应的RGB数值,例如:(51, 204, 140),画笔控制函数,很多RGB颜色都有固定的英文名字,这些英文名字可以作为colorstring输入到turtle.pencolor()函数中,也可以采用(r, g, b)形式直接输入颜色值。几个典型的RGB颜色如表2.2所示,画笔控制函数,表2.2,RGB颜色是计算机系统最常用的颜色体系之一,它采用R(红色)、G(绿色)、B(蓝色)三种基本颜色及它们的叠加组成各式各样的颜色,构成颜色体系。理论表明,RGB颜色能够形成人眼感知的所有颜色。 具体来说,RGB颜色采用(r, g, b)表示,其中,每个颜色采用8比特表示,取值范围是0, 255。因此,RGB颜色一共可以表示2563(16M,约1,678万)种颜色。,RGB颜色,turtle通过一组函数控制画笔的行进动作,进而绘制形状。turtle.fd()函数最常用,它控制画笔向当前行进方向前进一个距离,函数定义如下: turtle.fd(distance) 别名 turtle.forward(distance) 作用:向小海龟当前行进方向前进distance距离 参数:distance :行进距离的像素值,当值为负数时,表示向相反方向前进。,形状绘制函数,turtle.seth()函数用来改变画笔绘制方向,函数定义如下: turtle.seth(to_angle) 别名 turtle.setheading(to_angle) 作用:设小海龟当前行进方向为to_angle,角度=绝对方向角度值。 参数:to_angle :角度的整数值。,形状绘制函数,其中,0表示向东,90度向北,180度向西,270度向南;负值表示相反方向。 程序中,我们让小乌龟向-40度启动爬行,即:向东南方向40度。,形状绘制函数,0,90,180,270,turtle.circle()函数用来绘制一个弧形,函数定义如下 turtle.circle(radius, extent=None) 作用:根据半径radius绘制extent角度的弧形,绘制模式参见图2.7。 参数:raduis :弧形半径,当值为正数时,半径在小海龟左侧,当值为负数时,半径在小海龟右侧;extent : 绘制弧形的角度,当不给该参数或参数为None时,绘制整个圆形,形状绘制函数,图2.7:turtle.circle()函数的参数含义,形状绘制函数,由于存在缩进,实例代码2.1中第10、11、12行是一个由保留字for引导的整体,这是另一种循环结构,称为“遍历循环”。for语句的循环格式是: for i in range(): 实例代码2.1中第10行的for循环表示第11、12行代码连续执行4次。,遍历循环,main()函数给出了小乌龟爬行的窗体大小,爬行轨迹颜色和宽度以及初始爬行的方位。 最后,调用drawSnake函数启动绘制蟒蛇功能。 drawSnake函数有四个参数,根据调用时给出的参数,分别将40传递给rad、

温馨提示

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

评论

0/150

提交评论