python入門教程.ppt
《python入門教程.ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《python入門教程.ppt(39頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
起源,“1989年12月,我在尋找一門“課余”編程項(xiàng)目來打發(fā)圣誕節(jié)前后的時(shí)間。我的辦公室會(huì)關(guān)門,但我有一臺(tái)家用電腦,而且沒有太多其它東西。我決定為當(dāng)時(shí)我正構(gòu)思的一個(gè)新的腳本語言寫一個(gè)解釋器,它是 ABC 語言的后代,對(duì) UNIX / C 程序員會(huì)有吸引力。作為一個(gè)略微有些無關(guān)想法的人,和一個(gè)蒙提派森(Monty Python)的飛行馬戲團(tuán)的狂熱愛好者,我選擇了 Python 作為項(xiàng)目的標(biāo)題?!?作者 : Guido Van Rossum (GvR),Computer Programming for Everybody,1999年,Guido向DARPA 闡述Python語言的特性: 簡單、直觀、強(qiáng)大 開源,以便任何人都可以為它做貢獻(xiàn) 代碼像純英語那樣容易理解 適用于短期開發(fā)的日常任務(wù) 這些想法中的一些已經(jīng)成為現(xiàn)實(shí)。Python 已經(jīng)成為一門流行的 編程語言,尤其是在互聯(lián)網(wǎng)環(huán)境下。,特性,交互式命令行(Interactive console) 不只是腳本 強(qiáng)大易用的標(biāo)準(zhǔn)庫 膠水語言(glue language) 收放自如(scalability) 不要括號(hào),交互式命令行(Interactive console),Python可以單步直譯運(yùn)行。運(yùn)行Python解釋器或IDLE進(jìn)入交互式命令行的環(huán)境,你可以在提示符號(hào)旁輸入代碼,按Enter鍵 print(“Hello, Python!“) Hello, Python!,不只是腳本,原因是“腳本語言”泛指僅作簡單編程任務(wù)的語言, 如Lua、JavaScript等,它們只能處理簡單的任務(wù) 而Python是面向?qū)ο缶幊蹋∣OP)的,支持異常處理和類型檢查 Python的支持者較喜歡稱它為一種高階動(dòng)態(tài)編程語言,強(qiáng)大易用的標(biāo)準(zhǔn)庫,核心庫不超過10Mb Html、Xml解析:BeautifulSoup, Expat 字符串處理:字典、數(shù)組切片、正則表達(dá)式 re 單元測(cè)試: PyUnit 代碼版本控制: PySVN 網(wǎng)絡(luò)訪問: urllib2 圖形模塊: Tkinter、PyTCL、WxPython 串行化、多線程等 擴(kuò)展標(biāo)準(zhǔn)庫十分容易,膠水語言(glue language),Python經(jīng)常用作將不同語言編寫的程序“粘”在一起的膠水語言。 Google內(nèi)部的很多項(xiàng)目使用C+編寫性能要求極高的部分, 然后用Python調(diào)用相應(yīng)的模塊。 C/C+: Boost.Python使得 Python 和 C+ 的類庫能互相調(diào)用(.pyc) Java: Jython 是用Java實(shí)現(xiàn)的Python,可同時(shí)使用二者的類庫 .NET: IronPython是Python在.NET平臺(tái)上的版本。,收放自如(scalability),Python內(nèi)建的數(shù)據(jù)結(jié)構(gòu)(variable, list 和 dict)以及對(duì)多線程分布式操作的支持,使得程序可以用相同的代碼處理不同規(guī)模的數(shù)據(jù), 以及并發(fā)的用戶需求。,不要括號(hào),Python使用縮進(jìn)而不是括號(hào)來進(jìn)行代碼段標(biāo)識(shí),減少了視覺上的混亂,并且使程序變短,從而提高了程序的可讀性。,用途,腳本程序 大型程序的原型開發(fā) 科學(xué)計(jì)算 網(wǎng)絡(luò)應(yīng)用 計(jì)算機(jī)圖形編程,應(yīng)用舉例,Google - 谷歌在很多項(xiàng)目中用python作為網(wǎng)絡(luò)應(yīng)用的后端,如Google Groups、Gmail、Google Maps等,Google App Engine支持python作為開發(fā)語言 NASA - 美國宇航局,從1994年起把python作為主要開發(fā)語言 豆瓣網(wǎng) - 圖書、唱片、電影等文化產(chǎn)品的資料數(shù)據(jù)庫網(wǎng)站 Torchlight -Python編寫的大型3D游戲,原Blizzard公司人員制作發(fā)行,開源。 Blender - 以C與Python開發(fā)的開源3D繪圖軟件 在科學(xué)研究中也得到廣泛的應(yīng)用。,這么強(qiáng)大!,趕緊開始吧!,開發(fā)環(huán)境,PyCharm(支持PEP8 語法規(guī)范、跨平臺(tái)、遠(yuǎn)程調(diào)試、上傳) Ipython VIM (主要在linux下使用) 其它編輯器 UE,notepad+,editplus,工欲善其,事必先利其器,字符編碼,Python默認(rèn)代碼文件為ASCII編碼 不指定編碼時(shí),文件中包含非ASCII字符會(huì)報(bào)錯(cuò) 第一行加 #coding=utf-8,告訴編譯器使用utf-8編碼 #coding=utf-8 print u“你好!“,程序運(yùn)行方式,使用IDLE或python命令行工具進(jìn)行交互式編程 調(diào)用解釋器執(zhí)行py腳本文件 寫個(gè)bat 雙擊,行和縮進(jìn),Python使用縮進(jìn)來表示代碼塊, 而不是使用大括號(hào) 來表示代碼塊, 縮進(jìn)在python里有重要的語法意義。 建議使用四個(gè)空格來縮進(jìn)代碼, 不建議使用制表符。,注釋,單行注釋使用 # 號(hào): # 第一個(gè)注釋 print “Hello, Python!“; # 第二個(gè)注釋 多行注釋三個(gè)雙引號(hào)或三個(gè)單引號(hào): “ 這是多行注釋,使用雙引號(hào)。 這是多行注釋,使用雙引號(hào)。 這是多行注釋,使用雙引號(hào)。 “,Hello world,表達(dá)式 3 + (7 * 4) +i #but no i+ 3 * 5 Hello + World not a and not c a b or c d,變量賦值 a = 4 3 a = “Hello World” x,y = 4+2,”python”,pass 語句 不做任何事時(shí)使用 if a b: pass else: c = a,條件,ifelifelse語句: 沒有switch if a = +: b = + elif a = -: b = - else: b = None,布爾表達(dá)式 and, or, not if b = a and b c): print not expr, value is True,循環(huán),While語句 while a b: a = a + 1,For語句(遍歷序列的元素),for item in 3, 4, 10, 25: print item,# Print characters one at a time for c in “Hello World“: print c,# Loop over a range of numbers for i in range(0,100,2): print i for i in range(len(list1): print list1i,數(shù)字,Python 支持四種不同的數(shù)值類型: 整型(int) - 例:1024 長整型(long) - 例:1024L 浮點(diǎn)型(float) -例:1024.56, 32.3+e18 復(fù)數(shù)(complex) - 例:2.5 + 3.14j,數(shù)學(xué)函數(shù),abs(x) 絕對(duì)值 max(x1, x2,.) 求最大值 min(x1, x2,.) 求最小值 round(x ,n) 求四舍五入值 sqrt(x) 求平方根 sin(x) 求正弦 cos(x) 求余弦,字符串string,用單引號(hào)或雙引號(hào)或三個(gè)引號(hào)創(chuàng)建字符串 s1 = “hello” s2 = hello 三引號(hào)創(chuàng)建的字符串可以跨越多行。 引號(hào)前小寫的“u“表示這里創(chuàng)建的是一個(gè) Unicode 字符串。 s = uHello World !,切片,序列開始位置 : 結(jié)束位置 序列開始位置 : 結(jié)束位置 : 步長 右開區(qū)間 s = “abcdef“ s2:4 #cd s2: #cdef s:2 #ab s: #abcdef s:2 #ace,字符串函數(shù),s2 in s 字符串包含判斷 S.find(sub ,start ,end) - int 字符串查找 S.rfind(sub ,start ,end) - int 字符串反向查找 S.replace(old, new, count)- string 字符串替換 S.strip(chars) - string 剔除兩端空白,使用help函數(shù)查詢類型幫助,列表list,賦值 a = 2, 3, 4 # A list of integer b = 2, 7, 3.5, “Hello” c = d = 2, a, b # 嵌套列表 e = x*x for x in range(10) 訪問元素 x = a1 # Get 2nd element (0 is first) a1 = 5 z = d102 # Nested lists,列表運(yùn)算符,切片操作 a = 2, 3, 4, 5, 6 a:2 #2, 3 a2: #4, 5, 6 a2:4 #4, 5 a: # 2, 3, 4, 5, 6 刪除元素del del a1,列表長度len len(a) 列表相加 a + b 復(fù)制 a * 2 包含判斷 if 3 in a : pass,列表方法,元組tuple,元組的元素不能修改 元組使用小括號(hào),列表使用方括號(hào),Python的元組與列表類似,不同之處:,tup1 = (physics, chemistry, 1997, 2000) tup2 = (1, 2, 3, 4, 5 ) tup3 = “a“, “b“, “c“, “d“;,字典dict,賦值 a = # An empty dictionary b = x: 3, y: 4 #有點(diǎn)類似json格式 c = uid: 105, login: beazley, name : David Beazley 訪問元素 u = cuid # Get an element cshell = “/bin/sh“ # Set an element,字典運(yùn)算符,刪除元素del del a1 長度len len(a) 包含判斷 if 3 in a : pass,字典方法,函數(shù),def語句 def func1(a,b): func spec q = a/b r = a - q*b return r # 調(diào)用方式 a = func1(42,5) # a = 2 返回多個(gè)值 def func2(a,b): q = a/b r = a - q*b return q,r x,y = func2(42,5) # x = 8, y = 2,類class,Class定義 class Account(object): #只在_init_中定義成員變量 def _init_(self, initial): self.balance = initial #析構(gòu) def _del_(self): pass def deposit(self, amount): self.balance += amount def withdraw(self, amount): self.balance -= amount def getBalance(self): return self.balance,使用class創(chuàng)建對(duì)象 a = Account(1000.0) a.deposit(550.23) a.deposit(100) a.withdraw(50) print a.getBalance(),模塊,程序可分成多個(gè)模塊: 一個(gè)py文件就是一個(gè)模塊; # numbers.py def divide(a,b): q = a/b r = a - q*b return q,r def gcd(x,y): g = y while x 0: g = x x = y % x y = g return g,用import引入其它模塊 import numbers x,y = numbers.divide(42,5) n = numbers.gcd(7291823, 5683) Import模塊中的類型 from numbers import divide x,y = divide(42,5),全局變量和局部變量,函數(shù)內(nèi)定義的變量是局部變量 函數(shù)外定義的變量是全局變量 在函數(shù)內(nèi)給一個(gè)全局變量賦值時(shí),需要先用global 關(guān)鍵字聲明這個(gè)變量,否則編譯器會(huì)嘗試新建一個(gè)同名的局部變量,指針?引用?,Python里面沒有指針 指向?qū)ο蟮亩际且茫〝?shù)值、字符串除外) 拷貝對(duì)象代碼 import copy ls1 = 1,”test”,(3.4,7),“key”:1, “comment”:”your comment” ls2 = copy.deepcopy(ls1),Python哲學(xué),優(yōu)美勝過丑陋 明確勝過含蓄 簡單勝過復(fù)雜 復(fù)雜勝過難懂 扁平勝過嵌套 稀疏勝過密集,- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- python 入門教程
鏈接地址:http://www.szxfmmzy.com/p-2379152.html