已阅读5页,还剩35页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Python中级教程索引:第一课.数据类型 第十课.图形界面(下)第二课.再讲数据类型 第十一课.剪刀石头布游戏与随机函数第三课.文本处理与色彩(上) 第十二课.获取手机系统信息(上)第三课.文本处理与色彩(下) 第十二课.获取手机系统信息(下)第四课.文件操作 第十三课.选项卡(折叠界面)第五课.while循环 第十四课.控制手机的电话功能第六课.调用资源管理器 第十五课.控制手机的短信功能第七课.线程的锁定与释放 第十六课.网页源码讲解第八课.图形界面(上) 第十七课.post提交表单第九课.图形界面(中) 第十八课.手机端反编译教程1.数据类型-Py中级教程同学们好,Py的中级教程开始了哦!大家继续加油,本篇我们来学习下数据类型数据类型是学编程必须掌握的东西,虽然也是很简单,但是还是有很多朋友都会弄混,下面我就来介绍下Py里面的数据类型!Python里面的数据类型和C、C+等语言有些差别,在C、C+语言中的数据类型是需要预定义的,而Py不用,Py是根据赋值的结果来自动识别数据类型的,这样做虽然方便使用,但同时也就降低的执行效率数据类型有以下几种:“数值型”“浮点型”“字符型”“字符串型”“布尔型”在Py里面,这类数据类型是不用预先定义的,所以我在这里也就按照Py的方法来讲数据类型和变量是息息相关的,通过赋值的结果来识别这个变量是一个什么样的类型,这个类型就是我们说的数据类型了,下面我们来解释下各个类型的介绍和用法!数值型(int)(long)数值型也就是数字,一种可计算的类型,数值型的变量是不能带有字母、小数点、中文或双引号的,Py里面默认的数值型是(int)型,比如:a=20b=-10这就表示把20赋值给a,把-10赋值给b,因为这个值是一个单纯的数字,所以这个a和b就是数值型的变量了,是可以计算的,如:print a+b因为a和b都是可以计算的数值型,所以a+b输出的结果会是10(long)型表示长整数,具有较大的储存空间,储存的数值位数要大很多,在赋值时的数字后面加上l或L表示这是一个数值(long)型,如:a=20Lb=10print a+b数值型也有一些比较特殊的储存方法,如8进制,16进制,他们的用发比较简单,如8进制的储存方式是数值前加“0”,如:a=010print a上面的输出结果是8,因为我们是使用8进制的方式存储的,逢8进制,所以010也就是8了还有16进制的储存方式是数值前加上“0x”这里的x是小写字母x是不是乘号,如a=0x10print a因为我们使用的是十六进制,所以这里的10就是16了!数值型的废话就先说到这里浮点型(float)浮点型也就是小数点,也是一种可计算的类型,和数值型不同的就是他可以带有小数点,可以和数值型的变量相计算,但是计算的结果会变成一个浮点型,其他和数值型一样比如:a=2.0b=2print a+b赋值的时候使用小数点表示这个是一个浮点型的变量,浮点型的小数点只精确到5位,大家需注意这点!上面例子输出的结果是4.0,也就是表明他和数值型计算以后,结果还是一个浮点型字符型(char)字符型在Py里面并没有得到很好的应用,在这里我大概讲一下,在C+语言里面,字符型是用两个单引号来表示的,字符型只能保存一个字符,如:a,好,2都是一个字符。但是我发现在Python里面,单引号和双引号是没有什么区别的,所以这个字符型大家了解一下就好字符串型(string)字符串型是编程里面最常用到的一种类型,字符串是由零个或多个字符组成的有限序列,它是编程语言中表示文本的数据类型,使用两个双引号来表示,不可计算,可与其它字符串相加,但不可相减,按照从左到右的顺序排列,如:a=aaab=bbbc=11d=22print a+b+c+d上面表示把字符串aaa赋值给a,把字符串bbb赋值给b,把字符串11赋值给c,把字符串22赋值给d,然后输出a+b+c+d的结果,他的结果是aaabbb1122,因为字符串相加就是把两个字符串相结合,不能做计算的在储存的时候,所有字符串后面都会自动加上0代表字符串的结束布尔型(bool)Py里面好像不能使用布尔型,这里我也给大家简单讲讲就好了,布尔型我们前面也有讲了,就是真和假的关系,使用true和false两个值来表示,不可计算,不可相加减,只是简单的两个值,其它编程语言里面广泛应用于if语句,在Py里面,0就表示假(false),非0就表示真(true),非0就是指不是0的任何值,比如:a=0if a:print a上面的结果是将0赋值给a,然后使用if语句,因为布尔型只是两个值,所以if里面的a不需要条件,a是“真”的时候就执行,a是“假”的时候就不执行,不信大家把上面的a改成1试一下就知道了以上就是数据类型的介绍了,同学们先掌握一下,下一节我们将学习数据类型的其他使用方法!-本节完-2.再讲数据类型-Py中级教程同学们好,因为数据类型的内容是在太多了,所以这里需要分两节来讲,大家要认真看下数据类型哦,这是很重要的数据类型是可以转换的,有时候我们需要输出一个字符串和一个数值型的结果,比如:a=ID:b=20101print a+b使用上面的输出是错误的,因为数值型和字符型是不能相加的,但是我们又需要把这两个变量结合,我们需要怎么做呢?这时我们就需要转换类型了,转换类型的作用就是将两个不同变量中的其中一个转换成与另一个一样的类型,使之可以相加,转换的语句有以下几种int(变量)long(变量)str(变量)float(变量)转换方法都是相同的,这里我就只讲一个就好了“int(变量)”表示将这个变量转换成一个数值型(int)的类型,返回转换后的结果,字符串里面如果带有非数字的字符时是不能转换成数值型的,浮点型也是如正确的转换方法:a=234print int(a)错误的转换方法是:a=234sprint int(a)上面这个是错误的,如果你执行的话会报错,所以大家需注意这点以上就是数据类型转换的方法了,下面我们在讲讲其他的一些方法字符串是一个或多个的字符组合到一起形成的一个串,使用单引号或双引号括起来,Py语言里面,字符串必须保存在同一行,不然会报错如果我们需要存多行的字符串时可以用左边三个单引号或双引号和右边三个单引号或双引号来把这个在不同行的字符串包括起来,比如:a=你好我在下一行print a上面就是可以让这个字符串可以出现在多行中,方便我们的输入及查看,在这里顺便讲一下,为什么我经常使用双引号而论坛的人经常使用单引号,在C、C+、C#等语言中,单引号和双引号是有区别的,所以我经常使用双引号就是要养成一种良好的编程习惯,这样可以有效地减少程序的错误其它方面上节我已经讲过了,在这里也就不重复了在存储时,所有字符串后面都会自动加上字符0,代表字符串的结束。这是编程语言自动加上的,我们看不到,也不用去理解,知道就行字符转义:对于一些特殊符号是无法输出的,因为有些符号是被当成编程语言的用法来使用的,比如单引号、双引号、反斜杠等,在编程里都叫做特殊符号,有时候我们想输出这类符号的时候,我们需要用到字符的转义了字符的转义也比较简单,只要在特殊符号前面加入一个反斜杠“”就可以了,比如:a=print a上面就是输出一个双引号了,是不是很简单呢,我们把这种用法称为转义字符转义字符还有些特别的用法,如:r 回车(CR)n 跳到下一行(换行)t 跳到下一个定位点(tab) 反斜杠0 空字符(NULL)x 十六进制的字符双引号单引号其实还有很多的,只是Py里面使用这些就够了,其他很多Py是用不了的,大家如果想知道其它的转义符可以自己搜索一下还有一种类型是空类型(None)在Python里面,如果一个变量被赋值了就表示需要在手机内存中开辟一个空间来保存这个变量所以这里就有了这个空类型(None),这个(None)的作用就是说我声明了有这个变量,但是暂时不赋值给它,也就表示着还不知道他是一个什么类型,所以他不能做计算,也不能做字符串输出,这样就不会占用手机的内存了,但是赋值以后还是同样占用的,它的用法是:a=Noneb=2print aa=bprint a+b从上面可以看出,这个a需要赋值后才能正常使用当我们使用变量时,如果这个变量已经不在需要它了,我们可以使用del来把它释放掉,这样可以增加我们的内存空间,增加我们的运行效率,比如:a=22b=adel aprint b上面的例子就是说把22赋值给a,然后在把a赋值给b,这时a已经不需要了,所以我们把a释放掉了,在输出b注意:当a被释放掉以后是不能在使用的,也就是说这个a已经不存在,还想继续使用的话就需要重新赋值数据类型看起来比较繁琐,很多同学都会因为数据类型没有注意好而导致的程序出错,所以我建议大家好好看看这个数据类型,自己多动手调试一下,自己懂得钻研才是重要的,自己钻研的东西是最深刻,也是运用得最好的,好像有点太罗嗦了,大家先看看吧!这一节就讲到这里-本节完-3.文本处理与色彩(上)-Py中级教程 同学们好,上一节的数据类型不知道大家掌握了多少呢,数据类型需要忙忙掌握,刚开始的学员也不用急着说现在就要搞懂,数据类型需要你在实践的过程中慢慢体会出它的好处来,现在你所需要理解的就是都有哪些类型,这些类型都有什么作用以及这些类型都是怎么赋值的这一节我们来讲讲文本的处理跟色彩显示,其实我想和读写文本一起写的,但是考虑到学员们可能会把这些弄混乱,所以读写文本的留着下一节讲相信很多同学学到这里应该已经比较了解软件的构造了,所以这里我就不在加入#来表示换行了,我直接空一行,这样就清晰多了在学习之前先让大家了解下RGB颜色,RGB是什么呢?编程的程序里面,不管是界面还是文本,色彩是由RGB颜色组成的,RGB分别表示着“红”“绿”“蓝”,就像早期的电视机一样,色彩是通过这几种颜色的深浅度不同来显示各种各样的图案及色彩!R:代表红色G:代表绿色B:代表蓝色程序里的RGB我都可以理解为红、绿、蓝RGB颜色都有一个范围值,最小是0,最大是255,表示这个颜色的深浅度,255表示最深,0表示没有这个颜色我们先来看看文本的色彩显示吧!先来看代码:import appuifwdef cn(x):return x.decode(utf-8)appuifw.app.body=m=appuifw.Text()m.color=(255,0,0)m.add(cn(红色悠悠鱼o0n)m.color=(0,255,0)m.add(cn(绿色悠悠鱼o0n)m.color=(0,0,255)m.add(cn(蓝色悠悠鱼o0n)m.color=(255,255,255)m.add(cn(白色悠悠鱼o0n)m.color=(0,0,0)m.add(cn(黑色悠悠鱼o0n)m.color=(100,130,100)m.add(cn(这是什么颜色?n)from e32 import Ao_locklock=Ao_lock()appuifw.app.exit_key_handler=lock.signallock.wait()-代码结束-现在来讲解下函数的用法m.color=(255,0,0)这是一个色彩的设置函数,可以让你的程序界面显示色彩,m是我们定义的文本界面,m.color就是说将这个文本界面的显示的文字设置成什么颜色它的参数有两种表示方法,一种是像上面这样的,叫十进制表示法,他的格式是:color=(R,G,B)还有另外一种叫十六进制表示法,是使用十六进制来进行赋值的,他的格式是:color=0xffffff“0x”上节有讲过了,表示这是一个16进制值的意思,如果我们要赋值到这个函数里又要怎么做呢?这个十六进制的后面有6个f,从左到右数,每两个f表示着一种颜色,他的范围是00-ff之间,如我们需要显示蓝色的话可以这样赋值:m.color=0x0000ff续下一节 文本处理与色彩(下)-本节完-3.文本处理与色彩(下)-Py中级教程现在我们再来学习下这个这个文本的处理import appuifwdef cn(x):return x.decode(utf-8)appuifw.app.body=m=appuifw.Text()m.color=(255,0,0)m.add(cn(悠悠鱼o0教程n)m.style=appuifw.HIGHLIGHT_ROUNDEDm.color=(255,0,0)m.add(cn(高亮圆体)m.style=appuifw.HIGHLIGHT_SHADOWm.color=(255,0,0)m.add(cn(高亮阴影n)m.style=appuifw.HIGHLIGHT_STANDARDm.color=(255,0,0)m.add(cn(高亮标准n)m.style=appuifw.STYLE_BOLDm.color=(255,0,0)m.add(cn(粗体!n)m.style=appuifw.STYLE_ITALICm.color=(255,0,0)m.add(cn(斜体!n)m.style=appuifw.STYLE_STRIKETHROUGHm.color=(255,0,0)m.add(cn(删除线!n)m.style=appuifw.STYLE_UNDERLINEm.color=(255,0,0)m.add(cn(下划线!n)from e32 import Ao_locklock=Ao_lock()appuifw.app.exit_key_handler=lock.signallock.wait()-代码结束-上面用到很多大写字母吧,大家记住或是保存起来,这些字母的意思我相信大家一看就明白了吧,我这里就不多说了,现在我们来创建一个小程序,这个小程序需要利用for循环来进行颜色的渐变!m.get()是获得当前文本的内容,我们这里也需要使用它在这里教大家使用循环来渐变颜色,因为不想加太多的代码进去,所以运行后要等渐变颜色结束了才能操作代码:import appuifw#def cn(x):return x.decode(utf-8)#appuifw.app.body=m=appuifw.Text()#m.color=(255,0,0)#m.style=appuifw.HIGHLIGHT_SHADOW#m.add(cn(悠悠鱼o0教程n)#def cs(r,g,b):#*m.color=(r,g,b)#*m.set(cn(悠悠鱼o0教程)#for R in range(255):#*cs(R,0,0)#for G in range(255):#*cs(R,G,0)#for B in range(255):#*cs(R,G,B)#from e32 import Ao_lock#lock=Ao_lock()#appuifw.app.exit_key_handler=lock.signal#lock.wait()#-代码结束-#表示换行上面的三个for循环里面,像第二个的循环里面cs(R,G,0) 为什么还用了个R呢,因为我们第一个循环完了,R的值是255,我在第二个循环偷下懒,用R代替了255同学们学完了可以和其他的函数配合一下,做个带有选项呀,列表之类的软件出来布置下作业,做一个自动机,打字机打出来的每个字颜色都有变化!提示:需要配合for和if语句-本节完-4.文件操作-Py中级教程今天我们来学学文件的操作,如何写入文件,如何读取文件!上次我所说的get()并没有用到,现在我们就来用一用代码:import appuifwappuifw.app.body=m=appuifw.Text()def cn(x):return x.decode(utf-8)def en(x):return x.encode(utf-8)def cg(c):appuifw.note(c+cn(成功)def sb(e):appuifw.note(e+cn(失败)def exit():*if appuifw.query(cn(要退出吗?),query):#提示选择*appuifw.app.set_exit()appuifw.app.title=cn(记事本)#程序标题def save(path):*try:*f=open(path,w)#打开文件*txt=en(m.get()#获取内容并加密*f.write(txt)#写入文件*f.close()#关闭文件*cg(cn(保存)*except:sb(cn(保存)def read(path):*try:*f=open(path,r)*txt=f.read().decode(utf-8)*f.close()*m.add(txt)*except:sb(cn(读取)pat=cn(e:a.txt)appuifw.app.menu=(cn(保存),lambda:save(pat),(cn(读取),lambda:read(pat),(cn(退出),exit)#下面是锁线程from e32 import Ao_locklock=Ao_lock()appuifw.app.exit_key_handler=lock.signallock.wait()-代码结束-上面的代码里我使用了还几个自定义函数,其实是为了方便操作和编写!现在我们在讲讲文本的读取了文本的读取需要用到open(),这是系统的函数,不需要调用模块的!open()的作用是打开文件,和加载模块的意思差不多,我们要读写文件就需要先打开这个文件,还有另外一个函数也是可以操作文件的,用法和open()一样,他就是file()了,这两个是同义词,作用一样的open()和file()里面有两个参数,它的格式是open(路径,打开方式,缓存大小)路径:就是文件存放的路径,可以两种方式:一种是完全的路径,如e:a.txt一种是相同的路径,就是和源码同一个文件夹,但是在PED里面测试不了的,需要创建成程序以后才行,如a.txt打开方式:就是文件用什么方式打开,也就是你想读取还是写入,还是可以读写打开方式的方法有r: 只读(表示只能读取,如果没有这个文件就会提示错误)w: 只写(表示只能写入,如果文件不存在则创建)r+: 读写(表示可读可写,如果文件不存在则创建)a: 添加(表示向该文件添加内容)缓存大小:还没有弄懂现在简单讲讲文件的操作函数:f=open(): 打开一个文件并赋值给ff.write(): 向这个文件写入,如write(ulexun)f.read(): 读取这个文件的内容,没有参数,返回读取的内容f.close(): 关闭这个文件,没有参数,我们文件不用了,关闭掉可增加内存,下次需要时在打开现在在讲讲几个没有见过的至定义函数自定义函数 en()这是我用来加密的,因为Py的默认编码是U码,所以我们需要加密成UTF-8编码后在写进入!不然下次读取时或出错(因为我们使用utf-8编码读取的)cg()和sb(): 是显示一条提示语句的,提示失败还是成功的,这个大家自己看下就好appuifw.app.title=cn(记事本)大家看到这个记事本都应该知道啦,这是设置软件的标题m.get(): 返回当前文本里面的内容,因为程序默认是U码,所以我们需要写入文件时需要加密,m是文本框如: m.get().encode(utf-8)lambda :这是单行函数,如果要在菜单里传递参数就需要加入这个!(感谢星海兄的指点)现在我们来看看上面这个源码的运行方式,这样大家会更好地理解1.加载appuifw模块2.定义文本框并赋值给m3.定义cn()函数,功能是解码4.定义en()函数,功能是加密5.定义cg()函数,功能是提示成功6.定义sb()函数,功能是提示失败7.定义exit()函数,功能是退出8.设置程序标题9.定义save()函数,功能是获得文本框内容写入文件10.定义read()函数,功能是读取文件并添加到文本框11.将文件的路径赋值给pat12.定义菜单13-16.(锁线程,创建程序时可删除)本节作业:利用本节内容和结合以前所学的制作一个记事本程序,最好是带有多一点功能的记事本程序,例如可设置文本的颜色,清楚屏幕功能,带有关于的提示等等.大家发挥一下,编程就是要不断的锻炼思路-本节完-5.while循环-Py中级教程 同学们好,这一节我们来讲讲while循环,有些同学说我的教程讲得乱,其实我不这样认为,可能学习方法不同吧!有些人只想着我怎么不讲程序呢!我只是想让大家把基础掌握好,基础好了,等你做了程序也一定会比别人好的!好了,不说那么多了,我们来学习while循环吧!while循环与for循环是有区别的,各自有各自的优点!while循环是计算机的一种基本循环模式。以前说了,for是直到型循环,而while是当型循环,当满足条件时进入循环,不满足跳出。(注意:是满足条件时才进入循环)他的格式写法是:while(条件):语句块请看代码:a=0while(a50):*a=a+1*print aprint执行完成.decode(utf-8)-代码结束-如果你已经理解了for循环的话,while循环你也会很快理解的这段代码的解释就是:使用while循环,条件是a小于50,a每次加1后赋值给a,然后输出a,当a到达50的时候,循环就停止,因为条件不成立了,while循环停止以后就又往下执行了!输出从“utf-8”解码的“执行完成”。-解释完-可能有些同学还不理解什么是循环内和循环外,在这里我就拿输出a来说明一下吧!像上面的代码我们是在循环里面输出a的,大家看到前面的缩进了吗!因为输出a这个语法是在循环里面执行的,所以它会每次都输出,如果我们只想输出a的结果的话,我们把a放在循环外面,这样a就不会每次都输出了,请看代码:a=0while(a50):*a=a+1print a-代码结束-因为这一次的输出a没有放在循环里面(没有缩进),所以只输出1次aa=a+1是在循环里面的,所以会被循环50次,也就是a加了50次最原始的计算平方方法就是利用循环来计算的,比如我们要计算2的8次方,我们可以这样写:请看代码:a=0b=2while(a8-1):*b=b*2*a+=1*print bprint平方的结果是:+str(b)-代码结束-上面的8-1是因为第一次是2本身,所以计算8次方的时候我们只要计算7次!其他的大家应该一看就明白了吧!while还可以无限循环,我们只要让他的条件不成立就可以了,如果想要它停止的话,只要加入break就可以了,这个我们以前讲过了,这里就不重复这个了。比如:while(1)再教大家一个有关循环的语法,它就是continue了,continue的作用是:其作用为结束本次循环。即跳出循环体中下面尚未执行的语句,接着进行下一次是否执行循环的判定。请看代码:a=0while(1):*a=a+1*if(a=5):continue*print a*if(a=10):breakprint运行结束.decode(utf-8)-代码结束-大家运行一下,看看你能发现什么!嘻嘻本节不搞作业了,大家先了解下这个while循环,然后想想它有什么好处!-本节完-6.调用资源管理器-Py中级教程 今天我们来学习学调用资源管理器!调用资源管理的好处就是可以让用户选择想要路径来进行操作。代码:import lite_fm,appuifw#def cn(x):return x.decode(utf-8)#import powlite_fm#path=powlite_fm.manager().AskUser(e:,ext=.mp3,.txt)#限制显示的后缀#if path=None:#未选任何文件时返回None#*appuifw.note(cn(没选择路径!),error)#else:#*appuifw.note(cn(路径是)+path)#-代码结束-#表示换行,*表示空格在上面的例子中我们可以看到,我们调用的时候是可以限制显示的后缀的,这样也就方便了我们编写,如果我们是做一个音乐播放器的话,我们就可以限制只显示那些能使用的音乐格式!调用资源管理器时,如果你没有选择任何文件的话,系统就会返回一个None,这是表示空的意思,为了不让程序出错,所以我们要加入一个if语句去验证它!调用资源管理器还有几个函数,分别是:lite_fm.manager()上面这个函数是没有参数的,直接使用,调用时也不会做任何的限制,可以显示全部的文件名lite_fm.fileman.AskUser()这个函数有一个参数,这个参数表示调用资源管理器时显示的初始位置,比如我们上面的,这是表示我们从根目录开始显示,如果我们把参数改成e:就表示我们从e盘开始显示上面这些函数使用起来都是蛮简单的,主要是看你要怎么去配合它!今天的作品是利用上面的调用资源器函数做一个记事本软件,这个软件的功能:可以让用户打开某文件进行编辑,编辑以后还要能保存回去!-本节完-7.线程的锁定及释放-Py中级教程今天我们在学习下线程的一些相关知识。线程是指在程序运行过程中一个单独的进程任务,你可以同时创建多个线程在一程序里,它们可以并行运行,互不干扰.就算其中某一线程出了问题也不会影响到其它进程.这样可以确保程序的分健壮性!线程是CPU调度的最小单位,执行一个程序系统就创建了1个进程,但这个进程可以有多个线程。以前我们经常使用到锁定线程,可能很多同学都不理解是干什么用的,这里我在说明一下。因为PED是一个脚本的编辑器,我们编写代码后是通过PED来运行的,我们可以理解为“测试运行”,PED在“测试运行”后(即执行全部代码以后)会关闭测试的程序,所以在测试是就需要加入锁定线程以及释放线程来方便我们测试代码当线程被锁定以后,代码就不会再继续往下执行了,只有当你释放掉的时候才会继续往下执行。锁定线程和释放线程需要调用e32模块,他们的函数是:锁定线程:Ao_lock().wait()释放线程:Ao_lock().signal()好了,下面我们来看看实际应用中的代码吧!代码:import appuifw#1def cn(x):return x.decode(utf-8)#2appuifw.note(cn(线程即将锁定!)#3from e32 import Ao_lock#4lock=Ao_lock()#5def signal():lock.signal()#6appuifw.app.exit_key_handler=signal#7lock.wait()#8appuifw.note(cn(线程已被释放!)#9-代码结束-上面我用数字和#注释表示了文本的每一行,从上面的代码中我们可以看出,这个程序执行到第8行的时候就会被锁定了,不会再往下执行,当点击右键的时候会调用释放线程的函数,这时程序才会执行第9行!在这里和大家说说一些简化代码,在Py里面,很多函数的参数都是带有默认的,所以如果我们使用的是和默认一样的,我们都可以不用输入的,这样能方便很多时间,我在这里就给大家讲讲几个就好,其它的还是大家自己多试试会来得比较好!第一个:appuifw.note(ulexun,info)这个函数的的第二个参数默认是info所以我们可以写成appuifw.note(ulexun)效果和第一个是一样的,表示使用默认参数第二个:decode(utf-8)这个函数大家很熟悉吧,因为我们用得很频繁的这里的参数不是要讲默认,而是这里的utf-8可以简写,我原先不简写的原因就是想让大家记在脑海里,不然弄错了可不好。我们可以简写为utf8或u8,都是一样的!-本节完-8.图形界面(上)-Py中级教程同学们好,上一节的课程大家掌握了吗?今天我们来学习下图形界面。图形界面如Windows是以图形界面方式操作的,因为你可以用鼠标来点击按钮来进行操作,很直观。而DOS就不具备GUI,所以他只能输入命令。现在我们了解下Py的图形界面-graphics-图象处理:graphics 模块提供了Symbian系统中与图象处理有关的操作,包括打开、保存、旋转以及调整大小。本模块同时支持前台和后台程序。注意,S60 1st机型不支持本模块中的Image.open 和Image.inspect, 也不支持load, save, resize 和transpose。-模块的函数:screenshot()这个函数没有参数;截获屏幕快照,并将图象保存为Image格式。例子如:import graphics#1graphics.screenshot().save(ue:lexun.png)#2-代码结束-这样就可以将截图保存在e:lexun.png路径下了save()是保存的意思。如果想连续截图的话,加个循环就可以了,这个大家应该都会了吧!-Image类静态方法:Image.new(宽,高),模式)根据给定大小和模式创建 Image _size 对象;可以使用from来加载,像:from graphics import Image也可以直接加载graphics后在调用,像:import graphicsgraphics.Image.new(宽,高),模式)需要先定义界面为图形面板才能显示图形;(宽,高)这是一个二元数组,需要加括号的,这个看例子就知道了;模式用于指定色彩模式。可用的色彩模式有:1: 黑白(1位)L: 256色(8位)RGB12: 4096色(12位)RGB16: 65536色(16位)RGB: 16777216色(24位)例子如:import appuifw#1from graphics import Image#2appuifw.app.screen=full#全屏#3appuifw.app.body=gui=appuifw.Canvas()#4img=Image.new(240,320),RGB16)#5gui.blit(img)#6from e32 import Ao_lock#7lock=Ao_lock()#8appuifw.app.exit_key_handler=lock.signal#9loc.wait()#10-代码结束-上面就是创建一个空白的对象了;记得最后在将我们赋值的img加载到图形面板去;加载函数是gui.blit(图形);appuifw.app.screen=full这是定义窗口的样式,有效值normal(标准),full(全屏),large(大屏);因为在PED里,最后要锁住线程,方便查看;-显示图片Image.open(路径)第一个字母是大写字母i在Image 对象中(RGB16模式)打开一张 JPEG 或 PNG 图片.filename 必须是完整路径。注意:不支持S60 1st机型在Image 对象中(RGB16模式)打开一张 JPEG 或 PNG 图片,路径必须是完整路径。例子如:import appuifw#1import graphics#2appuifw.app.screen=full#3appuifw.app.body=gui=appuifw.Canvas()#4img=graphics.Image.open(e:lexun.png)gui.blit(img)from e32 import Ao_lock#7lock=Ao_lock()#8appuifw.app.exit_key_handler=lock.signal#9lock.wait()#10-代码结束-e盘下要存有此文件哦!-下节待续-9.图形界面(中)-Py中级教程同学们好,今天的内容主要是续上一节的,今天我们还是继续讲讲图形界面。感谢同学对本篇教程提出的建议及修改感谢巧【天堂】同学对本篇教程提供扇形、弧形资料感谢笕十兵卫同学对本篇教程提供色彩10进制转化资料几何图形:图形面板除了使用图片来显示绚丽界面以外,就是使用几何图形来搭配出绚丽的界面了;几何图形一般有圆、椭圆、三角形、矩形、扇形、线段、弧线等.现在来看看几何图形的绘制图形绘制之前要先将新建的图形对象赋值给一个变量,我们这里以img为例子,如:img=Image.new(240,320)上一节已经有讲过了,我第二个参数使用了默认,所以不输入-设置背景颜色img.clear(色彩)色彩:使用16进制来表示,如:(0xffffff)(也可以用10进制表示!将元组转化为10进制的公式是(r,g,b)r*256*256 + g*256 + b例(0,0,255)=255(0,1,0)=256(0,255,0)=65535从上面可以看出,蓝色是最基本的单位了,257个蓝色就是一个绿色(从0开始的),依此类推。)文本背景黑色的话可以使用0,如:img.clear(0)-画圆其实是画实心点,郁闷,之前忙,看教程时没注意去试真正的圆可以看下面画椭圆的img.point(x轴,y轴),色彩,width=宽度)#(x轴,y轴):即圆心坐标位置:用一个二元组来包括,输入的内容是横轴x和垂直y的坐标,如:(50,25)x、y轴是这样计算的,比如你的手机屏幕分辨率是240320,就将宽度分为240格,高度分为320格。上面的x轴50就是宽度第50格的位置,y轴25就是高度第25格的位置。注:坐标轴原点是左上角,即(0,0)色彩:见上。宽度:圆点的直径,可以输入一个数值,比如:20例子:img.point(50,25),0xff00ff,width=20)#-画三角形img.polygon(x轴点1,y轴点1,x轴点2,y轴点2,x轴点3,y轴点3),色彩,width=填充宽度,fill=填充颜色)#(x轴点1,y轴点1,x轴点2,y轴点2,x轴点3,y轴点3):三角形三个顶点位置,用一个元组三角形三个顶点,从左到右,每两个坐标为一组来表示,如:(40,50,40,300,200,170)三个点的位置大家都自己试试,比较好理解色彩:同上边框宽度:三角形外边的填充宽度,用法同上填充颜色:三角形边框的色彩例子如:img.polygon(40,50,40,300,200,170),0x0000ff,width=5,fill=0xff0000)#-画矩形img.rectangle(x轴点1,y轴点1,x轴点2,y轴点2),色彩,width=填充宽度,fill=填充颜色)用法:1、坐标要给出两组,如(10,20,50,60),从左向右,每两个为一组!分别表示矩形左上角坐标,矩形右下角坐标。2、可忽略填充颜色!大家自己试试,了解一下-画线段img.line(x1,y1,x2,y2),色彩,width=填充宽度)前面我都用x和y来表示,大家应该能看出来吧,用法:1、必需给出至少两组坐标,分别表示线段起点坐标,终点坐标!如果给出两组以上的坐标,就画折线!比如三组坐标,那么第二、第三组组成一条线,与第一、第二组组成的线构成折线-画椭圆img.ellipse(x1,y1,x2,y2),边框色彩,width=边框宽度,fill=填充颜色)用法:1、必需给出两组坐标,分别表示椭圆外切矩形左上角坐标及右下角坐标!2、可忽略填充颜色!上面说了画圆其实就是这样,把坐标定义成一个正方形的即可-画扇形:img.pieslice(坐标,开始方向角,结束方向角,边框颜色,边框粗细,填充颜色)用法:1、必需给出两组坐标,这两个坐标其实是用来画出一个椭圆的,扇形就从这个椭圆中分割出来的!2、方向角,弧度制的,【额给没学过的:方向角规定逆时针是正顺时针是负一周角360度就是2平角180度是,逆时针90度就是/2,顺时针90度就是-/2,其实顺时针90度和逆时针2703/2是重合的】也就是说,0是水平向右,/2是垂直向上,是水平向左,-/2是垂直向下!选择方向角时就从-/2顺时针90度到3/2逆时针270度取就好了,其中约等于3.14!2、填充颜色可忽略!-画弧线:img.arc(坐标,开始方向角,结束方向角,弧线颜色,弧线粗细)用法:1、坐标定义与画扇形的一样,弧线是从一个椭圆的边框中去截取的!大家可以用上面的几何图形组合成很多的图案,组合完以后记得加载到图形面板去哦!加载方法上节也都讲了,不了解的可以回去再看看另外再给大家补充一个显示文本的函数,这个函数可以在图形界面上显示文字!是比较常用的函数画文本:img.text(文字放置的坐标,文字内容,颜色,所用字体)获取本机字体:解释器里输入:import appuifwappuifw.available_fonts()即可-本节完-10.图形界面(下)-Py中级教程这一节我们还是来继续学习图形界面,我们这一次主要讲一些图片的相关函数我们现在就直接来了解一下一些图片相关的函数吧!graphics.Image.open(路径)这个上两节已经讲了,这个是加载图片!不懂的可以倒回去看看我们还是将图片加载赋值给img,这样大家都比较好理解一些w,h=img.sizew,h :是两个变量,我们这里表示宽和高;img :是我们加载的那个图片;size :是返回图片的宽和高;这里的解释就是返回我们刚才打开的那张图片的宽和高,然后赋值给w和hwindow=topwindow.TopWindow()window :是一个变量,我们这里表示存储的窗体topwindow :是一个程序窗体相关的模块TopWindow() :这个是设置窗体为随意显示的模式(以下称:随显窗体),无参数这里的解
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 保育园教师必-备技能与面试策略
- 人力资源经理招聘计划及实施方案
- 储运工程师环境管理体系建立方案
- 人力资源部经理招聘流程优化方案
- 企业项目管理创新与实践案例分析方案设计
- Python数据分析报告模板
- 化工总控工安全培训课件
- SLA管理员季度工作总结
- 企业社会责任数据收集与分析方法
- 线外固沙施工方案
- 丙型肝炎防治指南
- 2025年基层党支部书记述职报告
- 中国稀土镁合金治炼项目投资可行性研究报告
- GB/T 30340-2025机动车驾驶员培训机构业务条件
- 传统文化经典教案范例分享
- 2025艺术品买卖合同范本
- 新保密教育线上培训考试试题及答案
- 2025年幼师考编真题及答案
- 科技企业员工绩效考核管理办法
- 2025年潜水泵行业分析报告及未来发展趋势预测
- 2025低空经济无人机网络安全事件案例分析报告
评论
0/150
提交评论