




已阅读5页,还剩88页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
程序设计思想与方法45章,潘理Email:panli,字符串处理,文本数据简单的字符串处理字符串的机内表示字符串和密码格式化输出文件处理,文本数据,计算机应用从科学计算转向信息管理.信息管理中大量的数据都是文本数据.如姓名,地址,简历等等计算机中用字符串来表示文本数据.,3,字符串类型,字符串:字符序列字符串字面值:用一对引号(单或双)标明.“helloworld”!#$%垂直方向5个刻度($10,000)平分300像素,即70像素为一档.算法精化Drawlabel0.0Kat(20,320)Drawlabel2.5Kat(20,250)Drawlabel5.0Kat(20,180)Drawlabel7.5Kat(20,110)Drawlabel10.0Kat(20,40)用Text函数实现,69,进一步细化(续),确定0号柱子的位置和高度位置:左下角坐标为(20,320)高度:principal*(280/10000),即右上角y坐标为320principal*(280/10000).宽度:故右上角x坐标为20+30=50算法精化0号柱:从(20,320)到(50,320-principal*0.028)画矩形,70,进一步细化(续),其他柱子的位置和高度位置:左下角为(x,320).高度:principal*(280/10000),则右上角y坐标为320principal*(280/10000).宽度:30,故右上角x坐标为(左下角x坐标+30)算法精化foryear从1到10:principal=principal*(1+apr)x=25*year+40height=principal*0.02从(x,230)到(x+25,230-height)画矩形,71,最后的程序(graph),fromgraphicsimport*defmain():win=GraphWin(InvestmentGrowthChart,512,384)Text(Point(20,320),0.0K).draw(win)Text(Point(20,250),2.5K).draw(win)Text(Point(20,180),5.0K).draw(win)Text(Point(20,110),7.5K).draw(win)Text(Point(20,40),10.0K).draw(win)principal=input(enterinitialprincipal:)apr=input(enterinterestrate:),bar=Rectangle(Point(70,320),Point(100,320-principal*0.028)bar.setFill(green)bar.draw(win)x=100foryearinrange(1,11):principal=principal*(1+apr)bar=Rectangle(Point(x,320),Point(x+30,320-principal*0.028)bar.setFill(green)bar.draw(win)x=x+30raw_input(pressanykeytoquit:)win.close()main(),面向对象与图形编程,面向对象的思想图形化编程图形对象的使用未知值的图形化处理坐标系的选择图形交互图形模块介绍,自定义坐标系,默认坐标系以像素为单位,编程很麻烦.坐标变换:实际数据需映射成窗口像素位置.Graphics模块提供自定义坐标系的功能,使坐标变换自动完成.好处编程简单直观改变窗口像素尺寸对程序几乎没影响,75,自定义坐标系,setCoords(左下角的新坐标,左下角的y坐标,右上角的x坐标,右上角的y坐标)Python自动进行新坐标系和像素之间的转换,例子:坐标系变换,例如win=GraphWin(“Tic-Tac-Toe”)win.setCoords(0.0,0.0,3.0,3.0)Line(Point(1,0),Point(1,3).draw(win)Line(Point(2,0),Point(2,3).draw(win)Line(Point(0,1),Point(3,1).draw(win)Line(Point(0,2),Point(3,2).draw(win)新坐标系为:左下角(0,0),右上角(3,3)系统自动把新坐标变换成200*200像素坐标编程实例:柱状图的改进(graph1),LuChaojun,SJTU,77,graph1,将x坐标分为13份,从0到13将y坐标分成6份,从0到6X坐标1-2是当年信息,2-3是一年后的信息,以此类推Y坐标1是0元,2是2.5K元,3是5K元,,fromgraphicsimport*defmain():win=GraphWin(InvestmentGrowthChart,512,384)win.setCoords(0.0,0.0,13.0,6.0)Text(Point(0.5,1),0.0K).draw(win)Text(Point(0.5,2),2.5K).draw(win)Text(Point(0.5,3),5.0K).draw(win)Text(Point(0.5,4),7.5K).draw(win)Text(Point(0.5,5),10.0K).draw(win)principal=input(enterinitialprincipal:)apr=input(enterinterestrate:)bar=Rectangle(Point(1,1),Point(2,1+principal*0.0004)bar.setFill(green)bar.draw(win)foryearinrange(1,11):principal=principal*(1+apr)bar=Rectangle(Point(year+1,1),Point(year+2,1+principal*0.0004)bar.setFill(green)bar.draw(win)raw_input(pressanykeytoquit:)win.close()main(),面向对象与图形编程,面向对象的思想图形化编程图形对象的使用未知值的图形化处理坐标系的选择图形交互图形模块介绍,图形交互界面,GUI:图形元素用于输入输出事件:移动鼠标,点击按钮,选菜单等.也是对象事件发生后,有相应事件处理程序来处理.事件驱动的编程捕获事件处理事件:一段程序,81,捕获鼠标点击,GraphWin类有一个方法getMouse():调用时等待用户点击,并返回点击位置(是个Point对象).例如:win=GraphWin(ClickMe!)foriinrange(10):p=win.getMouse()printYouclicked(%d,%d)%(p.getX(),p.getY(),82,编程实例:triangle.py,设计一个程序,用鼠标在窗口中任意点三个点,将这三个点连成一个三角形。,#Program:triangle.pyfromgraphicsimport*defmain():win=GraphWin(DrawaTriangle)win.setCoords(0.0,0.0,10.0,10.0)message=Text(Point(5,0.5),Clickonthreepoints)message.draw(win)p1=win.getMouse()p1.draw(win)p2=win.getMouse()p2.draw(win)p3=win.getMouse()p3.draw(win)triangle=Polygon(p1,p2,p3)triangle.draw(win)message.setText(Clickanywheretoquit.)win.getMouse()main(),84,图形窗口中的文本输入,Entry对象:提供一个可编辑文本的框Entry(,)方法:setText()和getText()等实例:温度转换GUI版关键语句input=Entry(Point(2,3),5)input.setText(“0.0”)input.draw(win)celsius=eval(input.getText(),85,温度转换GUI版,创建一个名为“华氏到摄氏转换”的窗口显示两个文本框:“华氏温度”和“摄氏温度”设置一个输入框,用于输入华氏温度计算摄氏温度显示摄氏温度输出提示,结束程序,#coding=gbk#Program:fToC.pyfromgraphicsimport*importstringdefmain():win=GraphWin(u华氏到摄氏的转换,300,300)Text(Point(50,50),u华氏温度).draw(win)Text(Point(50,150),u摄氏温度).draw(win)input=Entry(Point(200,50),10)input.setText(“0.0)input.draw(win)output=Text(Point(200,150),)output.draw(win)win.getMouse()fahrenheit=eval(input.getText()celsius=5.0/9*(fahrenheit-32)Text(Point(200,150),str(celsius).draw(win)Text(Point(200,250),Clickanywheretoquit.).draw(win)win.getMouse()win.close()main(),面向对象与图形编程,面向对象的思想图形化编程图形对象的使用未知值的图形化处理坐标系的选择图形交互图形模块介绍,图形模块介绍,graphWin对象图形对象E
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论