Python中級(jí)開發(fā)教程_第1頁(yè)
Python中級(jí)開發(fā)教程_第2頁(yè)
Python中級(jí)開發(fā)教程_第3頁(yè)
Python中級(jí)開發(fā)教程_第4頁(yè)
Python中級(jí)開發(fā)教程_第5頁(yè)
已閱讀5頁(yè),還剩35頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、Python中級(jí)教程索引:第一課.數(shù)據(jù)類型 第十課.圖形界面(下)第二課.再講數(shù)據(jù)類型 第十一課.剪刀石頭布游戲與隨機(jī)函數(shù)第三課.文本處理與色彩(上) 第十二課.獲取手機(jī)系統(tǒng)信息(上)第三課.文本處理與色彩(下) 第十二課.獲取手機(jī)系統(tǒng)信息(下)第四課.文件操作 第十三課.選項(xiàng)卡(折疊界面)第五課.while循環(huán) 第十四課.控制手機(jī)的電話功能第六課.調(diào)用資源管理器 第十五課.控制手機(jī)的短信功能第七課.線程的鎖定與釋放 第十六課.網(wǎng)頁(yè)源碼講解第八課.圖形界面(上) 第十七課.post提交表單第九課.圖形界面(中) 第十八課.手機(jī)端反編譯教程1.數(shù)據(jù)類型-Py中級(jí)教程同學(xué)們好,Py的中級(jí)教程開始了

2、哦!大家繼續(xù)加油,本篇我們來(lái)學(xué)習(xí)下數(shù)據(jù)類型數(shù)據(jù)類型是學(xué)編程必須掌握的東西,雖然也是很簡(jiǎn)單,但是還是有很多朋友都會(huì)弄混,下面我就來(lái)介紹下Py里面的數(shù)據(jù)類型!Python里面的數(shù)據(jù)類型和C、C+等語(yǔ)言有些差別,在C、C+語(yǔ)言中的數(shù)據(jù)類型是需要預(yù)定義的,而Py不用,Py是根據(jù)賦值的結(jié)果來(lái)自動(dòng)識(shí)別數(shù)據(jù)類型的,這樣做雖然方便使用,但同時(shí)也就降低的執(zhí)行效率數(shù)據(jù)類型有以下幾種:“數(shù)值型”“浮點(diǎn)型”“字符型”“字符串型”“布爾型”在Py里面,這類數(shù)據(jù)類型是不用預(yù)先定義的,所以我在這里也就按照Py的方法來(lái)講數(shù)據(jù)類型和變量是息息相關(guān)的,通過(guò)賦值的結(jié)果來(lái)識(shí)別這個(gè)變量是一個(gè)什么樣的類型,這個(gè)類型就是我們說(shuō)的數(shù)據(jù)類型了

3、,下面我們來(lái)解釋下各個(gè)類型的介紹和用法!數(shù)值型(int)(long)數(shù)值型也就是數(shù)字,一種可計(jì)算的類型,數(shù)值型的變量是不能帶有字母、小數(shù)點(diǎn)、中文或雙引號(hào)的,Py里面默認(rèn)的數(shù)值型是(int)型,比如:a=20b=-10這就表示把20賦值給a,把-10賦值給b,因?yàn)檫@個(gè)值是一個(gè)單純的數(shù)字,所以這個(gè)a和b就是數(shù)值型的變量了,是可以計(jì)算的,如:print a+b因?yàn)閍和b都是可以計(jì)算的數(shù)值型,所以a+b輸出的結(jié)果會(huì)是10(long)型表示長(zhǎng)整數(shù),具有較大的儲(chǔ)存空間,儲(chǔ)存的數(shù)值位數(shù)要大很多,在賦值時(shí)的數(shù)字后面加上l或L表示這是一個(gè)數(shù)值(long)型,如:a=20Lb=10print a+b數(shù)值型也有一些

4、比較特殊的儲(chǔ)存方法,如8進(jìn)制,16進(jìn)制,他們的用發(fā)比較簡(jiǎn)單,如8進(jìn)制的儲(chǔ)存方式是數(shù)值前加“0”,如:a=010print a上面的輸出結(jié)果是8,因?yàn)槲覀兪鞘褂?進(jìn)制的方式存儲(chǔ)的,逢8進(jìn)制,所以010也就是8了還有16進(jìn)制的儲(chǔ)存方式是數(shù)值前加上“0x”這里的x是小寫字母x是不是乘號(hào),如a=0x10print a因?yàn)槲覀兪褂玫氖鞘M(jìn)制,所以這里的10就是16了!數(shù)值型的廢話就先說(shuō)到這里浮點(diǎn)型(float)浮點(diǎn)型也就是小數(shù)點(diǎn),也是一種可計(jì)算的類型,和數(shù)值型不同的就是他可以帶有小數(shù)點(diǎn),可以和數(shù)值型的變量相計(jì)算,但是計(jì)算的結(jié)果會(huì)變成一個(gè)浮點(diǎn)型,其他和數(shù)值型一樣比如:a=2.0b=2print a+b賦

5、值的時(shí)候使用小數(shù)點(diǎn)表示這個(gè)是一個(gè)浮點(diǎn)型的變量,浮點(diǎn)型的小數(shù)點(diǎn)只精確到5位,大家需注意這點(diǎn)!上面例子輸出的結(jié)果是4.0,也就是表明他和數(shù)值型計(jì)算以后,結(jié)果還是一個(gè)浮點(diǎn)型字符型(char)字符型在Py里面并沒(méi)有得到很好的應(yīng)用,在這里我大概講一下,在C+語(yǔ)言里面,字符型是用兩個(gè)單引號(hào)來(lái)表示的,字符型只能保存一個(gè)字符,如:a,好,2都是一個(gè)字符。但是我發(fā)現(xiàn)在Python里面,單引號(hào)和雙引號(hào)是沒(méi)有什么區(qū)別的,所以這個(gè)字符型大家了解一下就好字符串型(string)字符串型是編程里面最常用到的一種類型,字符串是由零個(gè)或多個(gè)字符組成的有限序列,它是編程語(yǔ)言中表示文本的數(shù)據(jù)類型,使用兩個(gè)雙引號(hào)來(lái)表示,不可計(jì)算,

6、可與其它字符串相加,但不可相減,按照從左到右的順序排列,如:a=aaab=bbbc=11d=22print a+b+c+d上面表示把字符串a(chǎn)aa賦值給a,把字符串bbb賦值給b,把字符串11賦值給c,把字符串22賦值給d,然后輸出a+b+c+d的結(jié)果,他的結(jié)果是aaabbb1122,因?yàn)樽址嗉泳褪前褍蓚€(gè)字符串相結(jié)合,不能做計(jì)算的在儲(chǔ)存的時(shí)候,所有字符串后面都會(huì)自動(dòng)加上0代表字符串的結(jié)束布爾型(bool)Py里面好像不能使用布爾型,這里我也給大家簡(jiǎn)單講講就好了,布爾型我們前面也有講了,就是真和假的關(guān)系,使用true和false兩個(gè)值來(lái)表示,不可計(jì)算,不可相加減,只是簡(jiǎn)單的兩個(gè)值,其它編程語(yǔ)言

7、里面廣泛應(yīng)用于if語(yǔ)句,在Py里面,0就表示假(false),非0就表示真(true),非0就是指不是0的任何值,比如:a=0if a:print a上面的結(jié)果是將0賦值給a,然后使用if語(yǔ)句,因?yàn)椴紶栃椭皇莾蓚€(gè)值,所以if里面的a不需要條件,a是“真”的時(shí)候就執(zhí)行,a是“假”的時(shí)候就不執(zhí)行,不信大家把上面的a改成1試一下就知道了以上就是數(shù)據(jù)類型的介紹了,同學(xué)們先掌握一下,下一節(jié)我們將學(xué)習(xí)數(shù)據(jù)類型的其他使用方法!-本節(jié)完-2.再講數(shù)據(jù)類型-Py中級(jí)教程同學(xué)們好,因?yàn)閿?shù)據(jù)類型的內(nèi)容是在太多了,所以這里需要分兩節(jié)來(lái)講,大家要認(rèn)真看下數(shù)據(jù)類型哦,這是很重要的數(shù)據(jù)類型是可以轉(zhuǎn)換的,有時(shí)候我們需要輸出一

8、個(gè)字符串和一個(gè)數(shù)值型的結(jié)果,比如:a=ID:b=20101print a+b使用上面的輸出是錯(cuò)誤的,因?yàn)閿?shù)值型和字符型是不能相加的,但是我們又需要把這兩個(gè)變量結(jié)合,我們需要怎么做呢?這時(shí)我們就需要轉(zhuǎn)換類型了,轉(zhuǎn)換類型的作用就是將兩個(gè)不同變量中的其中一個(gè)轉(zhuǎn)換成與另一個(gè)一樣的類型,使之可以相加,轉(zhuǎn)換的語(yǔ)句有以下幾種int(變量)long(變量)str(變量)float(變量)轉(zhuǎn)換方法都是相同的,這里我就只講一個(gè)就好了“int(變量)”表示將這個(gè)變量轉(zhuǎn)換成一個(gè)數(shù)值型(int)的類型,返回轉(zhuǎn)換后的結(jié)果,字符串里面如果帶有非數(shù)字的字符時(shí)是不能轉(zhuǎn)換成數(shù)值型的,浮點(diǎn)型也是如正確的轉(zhuǎn)換方法:a=234prin

9、t int(a)錯(cuò)誤的轉(zhuǎn)換方法是:a=234sprint int(a)上面這個(gè)是錯(cuò)誤的,如果你執(zhí)行的話會(huì)報(bào)錯(cuò),所以大家需注意這點(diǎn)以上就是數(shù)據(jù)類型轉(zhuǎn)換的方法了,下面我們?cè)谥v講其他的一些方法字符串是一個(gè)或多個(gè)的字符組合到一起形成的一個(gè)串,使用單引號(hào)或雙引號(hào)括起來(lái),Py語(yǔ)言里面,字符串必須保存在同一行,不然會(huì)報(bào)錯(cuò)如果我們需要存多行的字符串時(shí)可以用左邊三個(gè)單引號(hào)或雙引號(hào)和右邊三個(gè)單引號(hào)或雙引號(hào)來(lái)把這個(gè)在不同行的字符串包括起來(lái),比如:a=你好我在下一行print a上面就是可以讓這個(gè)字符串可以出現(xiàn)在多行中,方便我們的輸入及查看,在這里順便講一下,為什么我經(jīng)常使用雙引號(hào)而論壇的人經(jīng)常使用單引號(hào),在C、C+

10、、C#等語(yǔ)言中,單引號(hào)和雙引號(hào)是有區(qū)別的,所以我經(jīng)常使用雙引號(hào)就是要養(yǎng)成一種良好的編程習(xí)慣,這樣可以有效地減少程序的錯(cuò)誤其它方面上節(jié)我已經(jīng)講過(guò)了,在這里也就不重復(fù)了在存儲(chǔ)時(shí),所有字符串后面都會(huì)自動(dòng)加上字符0,代表字符串的結(jié)束。這是編程語(yǔ)言自動(dòng)加上的,我們看不到,也不用去理解,知道就行字符轉(zhuǎn)義:對(duì)于一些特殊符號(hào)是無(wú)法輸出的,因?yàn)橛行┓?hào)是被當(dāng)成編程語(yǔ)言的用法來(lái)使用的,比如單引號(hào)、雙引號(hào)、反斜杠等,在編程里都叫做特殊符號(hào),有時(shí)候我們想輸出這類符號(hào)的時(shí)候,我們需要用到字符的轉(zhuǎn)義了字符的轉(zhuǎn)義也比較簡(jiǎn)單,只要在特殊符號(hào)前面加入一個(gè)反斜杠“”就可以了,比如:a=print a上面就是輸出一個(gè)雙引號(hào)了,是不

11、是很簡(jiǎn)單呢,我們把這種用法稱為轉(zhuǎn)義字符轉(zhuǎn)義字符還有些特別的用法,如:r 回車(CR)n 跳到下一行(換行)t 跳到下一個(gè)定位點(diǎn)(tab) 反斜杠0 空字符(NULL)x 十六進(jìn)制的字符雙引號(hào)單引號(hào)其實(shí)還有很多的,只是Py里面使用這些就夠了,其他很多Py是用不了的,大家如果想知道其它的轉(zhuǎn)義符可以自己搜索一下還有一種類型是空類型(None)在Python里面,如果一個(gè)變量被賦值了就表示需要在手機(jī)內(nèi)存中開辟一個(gè)空間來(lái)保存這個(gè)變量所以這里就有了這個(gè)空類型(None),這個(gè)(None)的作用就是說(shuō)我聲明了有這個(gè)變量,但是暫時(shí)不賦值給它,也就表示著還不知道他是一個(gè)什么類型,所以他不能做計(jì)算,也不能做字符串

12、輸出,這樣就不會(huì)占用手機(jī)的內(nèi)存了,但是賦值以后還是同樣占用的,它的用法是:a=Noneb=2print aa=bprint a+b從上面可以看出,這個(gè)a需要賦值后才能正常使用當(dāng)我們使用變量時(shí),如果這個(gè)變量已經(jīng)不在需要它了,我們可以使用del來(lái)把它釋放掉,這樣可以增加我們的內(nèi)存空間,增加我們的運(yùn)行效率,比如:a=22b=adel aprint b上面的例子就是說(shuō)把22賦值給a,然后在把a(bǔ)賦值給b,這時(shí)a已經(jīng)不需要了,所以我們把a(bǔ)釋放掉了,在輸出b注意:當(dāng)a被釋放掉以后是不能在使用的,也就是說(shuō)這個(gè)a已經(jīng)不存在,還想繼續(xù)使用的話就需要重新賦值數(shù)據(jù)類型看起來(lái)比較繁瑣,很多同學(xué)都會(huì)因?yàn)閿?shù)據(jù)類型沒(méi)有注意好

13、而導(dǎo)致的程序出錯(cuò),所以我建議大家好好看看這個(gè)數(shù)據(jù)類型,自己多動(dòng)手調(diào)試一下,自己懂得鉆研才是重要的,自己鉆研的東西是最深刻,也是運(yùn)用得最好的,好像有點(diǎn)太羅嗦了,大家先看看吧!這一節(jié)就講到這里-本節(jié)完-3.文本處理與色彩(上)-Py中級(jí)教程 同學(xué)們好,上一節(jié)的數(shù)據(jù)類型不知道大家掌握了多少呢,數(shù)據(jù)類型需要忙忙掌握,剛開始的學(xué)員也不用急著說(shuō)現(xiàn)在就要搞懂,數(shù)據(jù)類型需要你在實(shí)踐的過(guò)程中慢慢體會(huì)出它的好處來(lái),現(xiàn)在你所需要理解的就是都有哪些類型,這些類型都有什么作用以及這些類型都是怎么賦值的這一節(jié)我們來(lái)講講文本的處理跟色彩顯示,其實(shí)我想和讀寫文本一起寫的,但是考慮到學(xué)員們可能會(huì)把這些弄混亂,所以讀寫文本的留著

14、下一節(jié)講相信很多同學(xué)學(xué)到這里應(yīng)該已經(jīng)比較了解軟件的構(gòu)造了,所以這里我就不在加入#來(lái)表示換行了,我直接空一行,這樣就清晰多了在學(xué)習(xí)之前先讓大家了解下RGB顏色,RGB是什么呢?編程的程序里面,不管是界面還是文本,色彩是由RGB顏色組成的,RGB分別表示著“紅”“綠”“藍(lán)”,就像早期的電視機(jī)一樣,色彩是通過(guò)這幾種顏色的深淺度不同來(lái)顯示各種各樣的圖案及色彩!R:代表紅色G:代表綠色B:代表藍(lán)色程序里的RGB我都可以理解為紅、綠、藍(lán)RGB顏色都有一個(gè)范圍值,最小是0,最大是255,表示這個(gè)顏色的深淺度,255表示最深,0表示沒(méi)有這個(gè)顏色我們先來(lái)看看文本的色彩顯示吧!先來(lái)看代碼:import appui

15、fwdef 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(藍(lán)色悠悠魚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 A

16、o_locklock=Ao_lock()appuifw.app.exit_key_handler=lock.signallock.wait()-代碼結(jié)束-現(xiàn)在來(lái)講解下函數(shù)的用法m.color=(255,0,0)這是一個(gè)色彩的設(shè)置函數(shù),可以讓你的程序界面顯示色彩,m是我們定義的文本界面,m.color就是說(shuō)將這個(gè)文本界面的顯示的文字設(shè)置成什么顏色它的參數(shù)有兩種表示方法,一種是像上面這樣的,叫十進(jìn)制表示法,他的格式是:color=(R,G,B)還有另外一種叫十六進(jìn)制表示法,是使用十六進(jìn)制來(lái)進(jìn)行賦值的,他的格式是:color=0xffffff“0x”上節(jié)有講過(guò)了,表示這是一個(gè)16進(jìn)制值的意思,如果我

17、們要賦值到這個(gè)函數(shù)里又要怎么做呢?這個(gè)十六進(jìn)制的后面有6個(gè)f,從左到右數(shù),每?jī)蓚€(gè)f表示著一種顏色,他的范圍是00-ff之間,如我們需要顯示藍(lán)色的話可以這樣賦值:m.color=0x0000ff續(xù)下一節(jié) 文本處理與色彩(下)-本節(jié)完-3.文本處理與色彩(下)-Py中級(jí)教程現(xiàn)在我們?cè)賮?lái)學(xué)習(xí)下這個(gè)這個(gè)文本的處理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_ROUNDED

18、m.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(高亮標(biāo)準(zhǔn)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_S

19、TRIKETHROUGHm.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()-代碼結(jié)束-上面用到很多大寫字母吧,大家記住或是保存起來(lái),這些字母的意思我相信大家一看就明白了吧,我這里就不多說(shuō)了,現(xiàn)在我們來(lái)創(chuàng)建一個(gè)小程序,這個(gè)小程序需要利用for循環(huán)來(lái)進(jìn)行顏色的漸變!m.get()是獲得當(dāng)

20、前文本的內(nèi)容,我們這里也需要使用它在這里教大家使用循環(huán)來(lái)漸變顏色,因?yàn)椴幌爰犹嗟拇a進(jìn)去,所以運(yùn)行后要等漸變顏色結(jié)束了才能操作代碼: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

21、)#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()#-代碼結(jié)束-#表示換行上面的三個(gè)for循環(huán)里面,像第二個(gè)的循環(huán)里面cs(R,G,0) 為什么還用了個(gè)R呢,因?yàn)槲覀兊谝粋€(gè)循環(huán)完了,R的值是255,我在第二個(gè)循環(huán)偷下懶,用R代替了255同學(xué)們學(xué)完了可以和其他的函數(shù)配合一下,做個(gè)帶有選項(xiàng)呀,列表之類的軟件出來(lái)布置下作業(yè),做一個(gè)自動(dòng)機(jī),打

22、字機(jī)打出來(lái)的每個(gè)字顏色都有變化!提示:需要配合for和if語(yǔ)句-本節(jié)完-4.文件操作-Py中級(jí)教程今天我們來(lái)學(xué)學(xué)文件的操作,如何寫入文件,如何讀取文件!上次我所說(shuō)的get()并沒(méi)有用到,現(xiàn)在我們就來(lái)用一用代碼: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

23、.query(cn(要退出嗎?),query):#提示選擇*appuifw.app.set_exit()appuifw.app.title=cn(記事本)#程序標(biāo)題def save(path):*try:*f=open(path,w)#打開文件*txt=en(m.get()#獲取內(nèi)容并加密*f.write(txt)#寫入文件*f.close()#關(guān)閉文件*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(c

24、n(讀取)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()-代碼結(jié)束-上面的代碼里我使用了還幾個(gè)自定義函數(shù),其實(shí)是為了方便操作和編寫!現(xiàn)在我們?cè)谥v講文本的讀取了文本的讀取需要用到open(),這是系統(tǒng)的函數(shù),不需要調(diào)用模塊的!open()的作用是打開文件,和加載模塊的

25、意思差不多,我們要讀寫文件就需要先打開這個(gè)文件,還有另外一個(gè)函數(shù)也是可以操作文件的,用法和open()一樣,他就是file()了,這兩個(gè)是同義詞,作用一樣的open()和file()里面有兩個(gè)參數(shù),它的格式是open(路徑,打開方式,緩存大小)路徑:就是文件存放的路徑,可以兩種方式:一種是完全的路徑,如e:a.txt一種是相同的路徑,就是和源碼同一個(gè)文件夾,但是在PED里面測(cè)試不了的,需要?jiǎng)?chuàng)建成程序以后才行,如a.txt打開方式:就是文件用什么方式打開,也就是你想讀取還是寫入,還是可以讀寫打開方式的方法有r: 只讀(表示只能讀取,如果沒(méi)有這個(gè)文件就會(huì)提示錯(cuò)誤)w: 只寫(表示只能寫入,如果文件

26、不存在則創(chuàng)建)r+: 讀寫(表示可讀可寫,如果文件不存在則創(chuàng)建)a: 添加(表示向該文件添加內(nèi)容)緩存大?。哼€沒(méi)有弄懂現(xiàn)在簡(jiǎn)單講講文件的操作函數(shù):f=open(): 打開一個(gè)文件并賦值給ff.write(): 向這個(gè)文件寫入,如write(ulexun)f.read(): 讀取這個(gè)文件的內(nèi)容,沒(méi)有參數(shù),返回讀取的內(nèi)容f.close(): 關(guān)閉這個(gè)文件,沒(méi)有參數(shù),我們文件不用了,關(guān)閉掉可增加內(nèi)存,下次需要時(shí)在打開現(xiàn)在在講講幾個(gè)沒(méi)有見(jiàn)過(guò)的至定義函數(shù)自定義函數(shù) en()這是我用來(lái)加密的,因?yàn)镻y的默認(rèn)編碼是U碼,所以我們需要加密成UTF-8編碼后在寫進(jìn)入!不然下次讀取時(shí)或出錯(cuò)(因?yàn)槲覀兪褂胾tf-8

27、編碼讀取的)cg()和sb(): 是顯示一條提示語(yǔ)句的,提示失敗還是成功的,這個(gè)大家自己看下就好appuifw.app.title=cn(記事本)大家看到這個(gè)記事本都應(yīng)該知道啦,這是設(shè)置軟件的標(biāo)題m.get(): 返回當(dāng)前文本里面的內(nèi)容,因?yàn)槌绦蚰J(rèn)是U碼,所以我們需要寫入文件時(shí)需要加密,m是文本框如: m.get().encode(utf-8)lambda :這是單行函數(shù),如果要在菜單里傳遞參數(shù)就需要加入這個(gè)!(感謝星海兄的指點(diǎn))現(xiàn)在我們來(lái)看看上面這個(gè)源碼的運(yùn)行方式,這樣大家會(huì)更好地理解1.加載appuifw模塊2.定義文本框并賦值給m3.定義cn()函數(shù),功能是解碼4.定義en()函數(shù),功

28、能是加密5.定義cg()函數(shù),功能是提示成功6.定義sb()函數(shù),功能是提示失敗7.定義exit()函數(shù),功能是退出8.設(shè)置程序標(biāo)題9.定義save()函數(shù),功能是獲得文本框內(nèi)容寫入文件10.定義read()函數(shù),功能是讀取文件并添加到文本框11.將文件的路徑賦值給pat12.定義菜單13-16.(鎖線程,創(chuàng)建程序時(shí)可刪除)本節(jié)作業(yè):利用本節(jié)內(nèi)容和結(jié)合以前所學(xué)的制作一個(gè)記事本程序,最好是帶有多一點(diǎn)功能的記事本程序,例如可設(shè)置文本的顏色,清楚屏幕功能,帶有關(guān)于的提示等等.大家發(fā)揮一下,編程就是要不斷的鍛煉思路-本節(jié)完-5.while循環(huán)-Py中級(jí)教程 同學(xué)們好,這一節(jié)我們來(lái)講講while循環(huán),有

29、些同學(xué)說(shuō)我的教程講得亂,其實(shí)我不這樣認(rèn)為,可能學(xué)習(xí)方法不同吧!有些人只想著我怎么不講程序呢!我只是想讓大家把基礎(chǔ)掌握好,基礎(chǔ)好了,等你做了程序也一定會(huì)比別人好的!好了,不說(shuō)那么多了,我們來(lái)學(xué)習(xí)while循環(huán)吧!while循環(huán)與for循環(huán)是有區(qū)別的,各自有各自的優(yōu)點(diǎn)!while循環(huán)是計(jì)算機(jī)的一種基本循環(huán)模式。以前說(shuō)了,for是直到型循環(huán),而while是當(dāng)型循環(huán),當(dāng)滿足條件時(shí)進(jìn)入循環(huán),不滿足跳出。(注意:是滿足條件時(shí)才進(jìn)入循環(huán))他的格式寫法是:while(條件):語(yǔ)句塊請(qǐng)看代碼:a=0while(a50):*a=a+1*print aprint執(zhí)行完成.decode(utf-8)-代碼結(jié)束-如果你

30、已經(jīng)理解了for循環(huán)的話,while循環(huán)你也會(huì)很快理解的這段代碼的解釋就是:使用while循環(huán),條件是a小于50,a每次加1后賦值給a,然后輸出a,當(dāng)a到達(dá)50的時(shí)候,循環(huán)就停止,因?yàn)闂l件不成立了,while循環(huán)停止以后就又往下執(zhí)行了!輸出從“utf-8”解碼的“執(zhí)行完成”。-解釋完-可能有些同學(xué)還不理解什么是循環(huán)內(nèi)和循環(huán)外,在這里我就拿輸出a來(lái)說(shuō)明一下吧!像上面的代碼我們是在循環(huán)里面輸出a的,大家看到前面的縮進(jìn)了嗎!因?yàn)檩敵鯽這個(gè)語(yǔ)法是在循環(huán)里面執(zhí)行的,所以它會(huì)每次都輸出,如果我們只想輸出a的結(jié)果的話,我們把a(bǔ)放在循環(huán)外面,這樣a就不會(huì)每次都輸出了,請(qǐng)看代碼:a=0while(a50):*a

31、=a+1print a-代碼結(jié)束-因?yàn)檫@一次的輸出a沒(méi)有放在循環(huán)里面(沒(méi)有縮進(jìn)),所以只輸出1次aa=a+1是在循環(huán)里面的,所以會(huì)被循環(huán)50次,也就是a加了50次最原始的計(jì)算平方方法就是利用循環(huán)來(lái)計(jì)算的,比如我們要計(jì)算2的8次方,我們可以這樣寫:請(qǐng)看代碼:a=0b=2while(a8-1):*b=b*2*a+=1*print bprint平方的結(jié)果是:+str(b)-代碼結(jié)束-上面的8-1是因?yàn)榈谝淮问?本身,所以計(jì)算8次方的時(shí)候我們只要計(jì)算7次!其他的大家應(yīng)該一看就明白了吧!while還可以無(wú)限循環(huán),我們只要讓他的條件不成立就可以了,如果想要它停止的話,只要加入break就可以了,這個(gè)我們以

32、前講過(guò)了,這里就不重復(fù)這個(gè)了。比如:while(1)再教大家一個(gè)有關(guān)循環(huán)的語(yǔ)法,它就是continue了,continue的作用是:其作用為結(jié)束本次循環(huán)。即跳出循環(huán)體中下面尚未執(zhí)行的語(yǔ)句,接著進(jìn)行下一次是否執(zhí)行循環(huán)的判定。請(qǐng)看代碼:a=0while(1):*a=a+1*if(a=5):continue*print a*if(a=10):breakprint運(yùn)行結(jié)束.decode(utf-8)-代碼結(jié)束-大家運(yùn)行一下,看看你能發(fā)現(xiàn)什么!嘻嘻本節(jié)不搞作業(yè)了,大家先了解下這個(gè)while循環(huán),然后想想它有什么好處!-本節(jié)完-6.調(diào)用資源管理器-Py中級(jí)教程 今天我們來(lái)學(xué)習(xí)學(xué)調(diào)用資源管理器!調(diào)用資源管理

33、的好處就是可以讓用戶選擇想要路徑來(lái)進(jìn)行操作。代碼: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:#未選任何文件時(shí)返回None#*appuifw.note(cn(沒(méi)選擇路徑!),error)#else:#*appuifw.note(cn(路徑是)+path)#-代碼結(jié)束-#表示換行,*表示空格在上面的例子中我們可以看到,我們調(diào)用的時(shí)候是可以限制顯示的后

34、綴的,這樣也就方便了我們編寫,如果我們是做一個(gè)音樂(lè)播放器的話,我們就可以限制只顯示那些能使用的音樂(lè)格式!調(diào)用資源管理器時(shí),如果你沒(méi)有選擇任何文件的話,系統(tǒng)就會(huì)返回一個(gè)None,這是表示空的意思,為了不讓程序出錯(cuò),所以我們要加入一個(gè)if語(yǔ)句去驗(yàn)證它!調(diào)用資源管理器還有幾個(gè)函數(shù),分別是:lite_fm.manager()上面這個(gè)函數(shù)是沒(méi)有參數(shù)的,直接使用,調(diào)用時(shí)也不會(huì)做任何的限制,可以顯示全部的文件名lite_fm.fileman.AskUser()這個(gè)函數(shù)有一個(gè)參數(shù),這個(gè)參數(shù)表示調(diào)用資源管理器時(shí)顯示的初始位置,比如我們上面的,這是表示我們從根目錄開始顯示,如果我們把參數(shù)改成e:就表示我們從e盤開

35、始顯示上面這些函數(shù)使用起來(lái)都是蠻簡(jiǎn)單的,主要是看你要怎么去配合它!今天的作品是利用上面的調(diào)用資源器函數(shù)做一個(gè)記事本軟件,這個(gè)軟件的功能:可以讓用戶打開某文件進(jìn)行編輯,編輯以后還要能保存回去!-本節(jié)完-7.線程的鎖定及釋放-Py中級(jí)教程今天我們?cè)趯W(xué)習(xí)下線程的一些相關(guān)知識(shí)。線程是指在程序運(yùn)行過(guò)程中一個(gè)單獨(dú)的進(jìn)程任務(wù),你可以同時(shí)創(chuàng)建多個(gè)線程在一程序里,它們可以并行運(yùn)行,互不干擾.就算其中某一線程出了問(wèn)題也不會(huì)影響到其它進(jìn)程.這樣可以確保程序的分健壯性!線程是CPU調(diào)度的最小單位,執(zhí)行一個(gè)程序系統(tǒng)就創(chuàng)建了1個(gè)進(jìn)程,但這個(gè)進(jìn)程可以有多個(gè)線程。以前我們經(jīng)常使用到鎖定線程,可能很多同學(xué)都不理解是干什么用的,

36、這里我在說(shuō)明一下。因?yàn)镻ED是一個(gè)腳本的編輯器,我們編寫代碼后是通過(guò)PED來(lái)運(yùn)行的,我們可以理解為“測(cè)試運(yùn)行”,PED在“測(cè)試運(yùn)行”后(即執(zhí)行全部代碼以后)會(huì)關(guān)閉測(cè)試的程序,所以在測(cè)試是就需要加入鎖定線程以及釋放線程來(lái)方便我們測(cè)試代碼當(dāng)線程被鎖定以后,代碼就不會(huì)再繼續(xù)往下執(zhí)行了,只有當(dāng)你釋放掉的時(shí)候才會(huì)繼續(xù)往下執(zhí)行。鎖定線程和釋放線程需要調(diào)用e32模塊,他們的函數(shù)是:鎖定線程:Ao_lock().wait()釋放線程:Ao_lock().signal()好了,下面我們來(lái)看看實(shí)際應(yīng)用中的代碼吧!代碼:import appuifw#1def cn(x):return x.decode(utf-8)

37、#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-代碼結(jié)束-上面我用數(shù)字和#注釋表示了文本的每一行,從上面的代碼中我們可以看出,這個(gè)程序執(zhí)行到第8行的時(shí)候就會(huì)被鎖定了,不會(huì)再往下執(zhí)行,當(dāng)點(diǎn)擊右鍵的時(shí)候會(huì)調(diào)用釋放線程的函數(shù),這時(shí)程序才會(huì)執(zhí)行第9行!在這里和大家說(shuō)說(shuō)一些簡(jiǎn)化代碼,在Py里面,很多函數(shù)的參數(shù)

38、都是帶有默認(rèn)的,所以如果我們使用的是和默認(rèn)一樣的,我們都可以不用輸入的,這樣能方便很多時(shí)間,我在這里就給大家講講幾個(gè)就好,其它的還是大家自己多試試會(huì)來(lái)得比較好!第一個(gè):appuifw.note(ulexun,info)這個(gè)函數(shù)的的第二個(gè)參數(shù)默認(rèn)是info所以我們可以寫成appuifw.note(ulexun)效果和第一個(gè)是一樣的,表示使用默認(rèn)參數(shù)第二個(gè):decode(utf-8)這個(gè)函數(shù)大家很熟悉吧,因?yàn)槲覀冇玫煤茴l繁的這里的參數(shù)不是要講默認(rèn),而是這里的utf-8可以簡(jiǎn)寫,我原先不簡(jiǎn)寫的原因就是想讓大家記在腦海里,不然弄錯(cuò)了可不好。我們可以簡(jiǎn)寫為utf8或u8,都是一樣的!-本節(jié)完-8.圖形界

39、面(上)-Py中級(jí)教程同學(xué)們好,上一節(jié)的課程大家掌握了嗎?今天我們來(lái)學(xué)習(xí)下圖形界面。圖形界面如Windows是以圖形界面方式操作的,因?yàn)槟憧梢杂檬髽?biāo)來(lái)點(diǎn)擊按鈕來(lái)進(jìn)行操作,很直觀。而DOS就不具備GUI,所以他只能輸入命令。現(xiàn)在我們了解下Py的圖形界面-graphics-圖象處理:graphics 模塊提供了Symbian系統(tǒng)中與圖象處理有關(guān)的操作,包括打開、保存、旋轉(zhuǎn)以及調(diào)整大小。本模塊同時(shí)支持前臺(tái)和后臺(tái)程序。注意,S60 1st機(jī)型不支持本模塊中的Image.open 和Image.inspect, 也不支持load, save, resize 和transpose。-模塊的函數(shù):scree

40、nshot()這個(gè)函數(shù)沒(méi)有參數(shù);截獲屏幕快照,并將圖象保存為Image格式。例子如:import graphics#1graphics.screenshot().save(ue:lexun.png)#2-代碼結(jié)束-這樣就可以將截圖保存在e:lexun.png路徑下了save()是保存的意思。如果想連續(xù)截圖的話,加個(gè)循環(huán)就可以了,這個(gè)大家應(yīng)該都會(huì)了吧!-Image類靜態(tài)方法:Image.new(寬,高),模式)根據(jù)給定大小和模式創(chuàng)建 Image _size 對(duì)象;可以使用from來(lái)加載,像:from graphics import Image也可以直接加載graphics后在調(diào)用,像:impor

41、t graphicsgraphics.Image.new(寬,高),模式)需要先定義界面為圖形面板才能顯示圖形;(寬,高)這是一個(gè)二元數(shù)組,需要加括號(hào)的,這個(gè)看例子就知道了;模式用于指定色彩模式??捎玫纳誓J接校?: 黑白(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=

42、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-代碼結(jié)束-上面就是創(chuàng)建一個(gè)空白的對(duì)象了;記得最后在將我們賦值的img加載到圖形面板去;加載函數(shù)是gui.blit(圖形);appuifw.app.screen=full這是定義窗口的樣式,有效值normal(標(biāo)準(zhǔn)),full(全屏),large(大屏);因?yàn)樵赑ED里,最后要鎖住線程,方便查看;-顯示圖片Image.op

43、en(路徑)第一個(gè)字母是大寫字母i在Image 對(duì)象中(RGB16模式)打開一張 JPEG 或 PNG 圖片.filename 必須是完整路徑。注意:不支持S60 1st機(jī)型在Image 對(duì)象中(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

44、 Ao_lock#7lock=Ao_lock()#8appuifw.app.exit_key_handler=lock.signal#9lock.wait()#10-代碼結(jié)束-e盤下要存有此文件哦!-下節(jié)待續(xù)-9.圖形界面(中)-Py中級(jí)教程同學(xué)們好,今天的內(nèi)容主要是續(xù)上一節(jié)的,今天我們還是繼續(xù)講講圖形界面。感謝同學(xué)對(duì)本篇教程提出的建議及修改感謝巧【天堂】同學(xué)對(duì)本篇教程提供扇形、弧形資料感謝筧十兵衛(wèi)同學(xué)對(duì)本篇教程提供色彩10進(jìn)制轉(zhuǎn)化資料幾何圖形:圖形面板除了使用圖片來(lái)顯示絢麗界面以外,就是使用幾何圖形來(lái)搭配出絢麗的界面了;幾何圖形一般有圓、橢圓、三角形、矩形、扇形、線段、弧線等.現(xiàn)在來(lái)看看幾何

45、圖形的繪制圖形繪制之前要先將新建的圖形對(duì)象賦值給一個(gè)變量,我們這里以img為例子,如:img=Image.new(240,320)上一節(jié)已經(jīng)有講過(guò)了,我第二個(gè)參數(shù)使用了默認(rèn),所以不輸入-設(shè)置背景顏色img.clear(色彩)色彩:使用16進(jìn)制來(lái)表示,如:(0xffffff)(也可以用10進(jìn)制表示!將元組轉(zhuǎn)化為10進(jìn)制的公式是(r,g,b)r*256*256 + g*256 + b例(0,0,255)=255(0,1,0)=256(0,255,0)=65535從上面可以看出,藍(lán)色是最基本的單位了,257個(gè)藍(lán)色就是一個(gè)綠色(從0開始的),依此類推。)文本背景黑色的話可以使用0,如:img.clea

46、r(0)-畫圓其實(shí)是畫實(shí)心點(diǎn),郁悶,之前忙,看教程時(shí)沒(méi)注意去試真正的圓可以看下面畫橢圓的img.point(x軸,y軸),色彩,width=寬度)#(x軸,y軸):即圓心坐標(biāo)位置:用一個(gè)二元組來(lái)包括,輸入的內(nèi)容是橫軸x和垂直y的坐標(biāo),如:(50,25)x、y軸是這樣計(jì)算的,比如你的手機(jī)屏幕分辨率是240320,就將寬度分為240格,高度分為320格。上面的x軸50就是寬度第50格的位置,y軸25就是高度第25格的位置。注:坐標(biāo)軸原點(diǎn)是左上角,即(0,0)色彩:見(jiàn)上。寬度:圓點(diǎn)的直徑,可以輸入一個(gè)數(shù)值,比如:20例子:img.point(50,25),0xff00ff,width=20)#-畫三角形img.polygon(x軸點(diǎn)1,y軸點(diǎn)1,x軸點(diǎn)2,y軸點(diǎn)2,x軸點(diǎn)3,y軸點(diǎn)3),色彩,width=填充寬度,fill=填充顏色)#(x軸點(diǎn)1,y軸點(diǎn)1,x軸點(diǎn)2,y軸點(diǎn)2,x軸點(diǎn)3,y軸點(diǎn)3):三角形三個(gè)頂點(diǎn)位置,用一個(gè)元組三角形三個(gè)頂點(diǎn),從左到右,每?jī)蓚€(gè)坐標(biāo)為一組來(lái)表示,如:(40,50,40,300,200,170)三個(gè)點(diǎn)的位置大家都自己試試,比較好理解色彩:同上邊框?qū)挾龋喝切瓮膺叺奶畛鋵挾?,用法同上填充顏色:三角形邊框的色彩例子如:img.polygon(40,50,40,300,200,170),0x0000ff,width=5

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論