Python內(nèi)部培訓(xùn)_第1頁
Python內(nèi)部培訓(xùn)_第2頁
Python內(nèi)部培訓(xùn)_第3頁
Python內(nèi)部培訓(xùn)_第4頁
Python內(nèi)部培訓(xùn)_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、Python 內(nèi)部培訓(xùn)PythonPython簡介快速、高效的開發(fā)語言膠水語言生態(tài)鏈完善廣泛用于科學(xué)計算、數(shù)據(jù)挖掘等領(lǐng)域本講義約定使用Python 2.x版本3.x版本由于庫沒有跟上,暫時不推薦使用語法特色動態(tài)語言特性 可在運行時改變對象本身(屬性和方法等)基于C/C+和JAVA,但有很大區(qū)別縮進(jìn)方式,建議使用空格,不要用TAB多個語句在一行使用;分隔注釋符是#,多行使用docstring()變量無需類型定義可進(jìn)行函數(shù)式編程FPPython3.x的變遷編程規(guī)范PEP8 編碼規(guī)范 Google Python 編碼規(guī)范Google Python PEP8編碼規(guī)范開發(fā)環(huán)境PyCharm(支持PEP8

2、 語法規(guī)范、跨平臺、遠(yuǎn)程調(diào)試、上傳)IPythonVIM 主要在linux下使用其它編輯器UE,notepad+,editplus工欲善其,事必先利其器開發(fā)環(huán)境PyCharm 調(diào)試Ctrl+Alt+S -屬性配置Ctrl+Shift+Alt+L -格式化文件 PPE8Ctrl+B- 查看對象Ctrl+L -查找Ctrl+N -切換類Ctrl+Shift+N -切換文件Shift+F9/F10-Debug/Run單擊行 -設(shè)置斷點工欲善其,事必先利其器PDB調(diào)試Python m pdb xxx.pyb -設(shè)置斷點 (行,函數(shù)名)s - step overn - nextc -continuer

3、-runL -顯示代碼Exit()工欲善其,事必先利其器字符編碼Python2.x默認(rèn)的是OS的本地編碼Python3.x是unicode內(nèi)部編碼.py文件第一行:#coding=utf-8,不指定編碼時,文件中包含非ASCII字符會報錯s1 = 中文1s2 = u中文2print unicode(s1,utf-8).encode(gbk)print s2.encode(gbk)print type(unicode(s1,utf-8),type(s2),type(s2.encode(gbk)Hello world 表達(dá)式2 + 33 + (7 * 4)3 * 5Hello + World變量賦

4、值a = 4 3b = a * 4.5c = (a+b)/2.5a = “Hello World”x,y = 4+2,”python”pass 語句 不做任何事時使用if a lst = 1, 2, abc, 4, 5,.join(lst)1,2,abc,4,5列表list賦值a = 2, 3, 4 # A list of integerb = 2, 7, 3.5, “Hello” c = d = 2, a, b # 嵌套列表e = a + b # Join two lists操作x = a1 # Get 2nd element (0 is first)y = b1:3 # Return a

5、sub-listz = d102 # Nested listsb0 = 42 # Change an elementprint sum(a)# = 9x = a.pop(0)# pop第一個數(shù)據(jù)tuple賦值f = (2,3,4,5) # A tuple of integersg = (,) # An empty tupleh = (2, 3,4, (10,11,12)# A tuple containing mixed objects操作x = f1 # Element access. x = 3y = f1:3 # Slices. y = (3,4)z = h11 # Nesting. z

6、 = 4特色與list類似,最大的不同tuple是一種只讀且不可變更的數(shù)據(jù)結(jié)構(gòu)不可取代tuple中的任意一個元素,因為它是只讀不可變更的,也不能進(jìn)行像list一樣的加法操作字典dict賦值a = # An empty dictionaryb = x: 3, y: 4 #有點類似json格式c = uid: 105, login: beazley, name : David Beazley 操作u = cuid # Get an elementcshell = /bin/sh # Set an elementdict2 = dict2.update(dict1) #使用dict1中的數(shù)據(jù)去更新d

7、ict2if c.has_key(directory): # Check for presence of an memberd = cdirectoryelse:d = Noned = c.get(“directory”,None) # 帶默認(rèn)值的方式集合set set( “hello”, “world”, “of”, “words”, “of”, “world” )set(world, hello, words, of)如何刪除重復(fù)數(shù)據(jù)Ls1 = 1,3,5,3,7,4,5Ls2 = list(set(Ls1)可以使用&、|求兩個set的交集、并集、補集、全集s1 = set(1,2

8、,3)s2 = set(2,4)s1 & s2#2 s1 | s2#1,2,3,4s1 - s2#1,3s1 s2#1,3,4Hello worldifelifelse語句: 沒有switch,有更高級的變通方式(dict字典方式)if a = +:b = +elif a = -:b = -else:b = None布爾表達(dá)式 and, or, notif b = a and b = c:print bool is Trueif not (b c):print not expr, value is True循環(huán)While.else語句while a 0:g = xx = y % xy

9、= greturn gimport語句import numbersx,y = numbers.divide(42,5)n = numbers.gcd(7291823, 5683)_import_()動態(tài)載入模塊一個模塊只載入一次實例會繼承新加載的模塊異常處理try語句try:f = open(“foo“,”r”)except IOError:print Couldnt open foo. Sorry.“Finally BaseException,e: logging.exception(e)raise語句def factorial(n):if n 0:raise ValueError,Expe

10、cted non-negative numberif (n factorial(-1)Traceback (innermost last):File , line 1, in ?File , line 3, in factorialValueError: Expected non-negative number文件操作open()函數(shù)f = open(foo,w) # Open a file for writingg = open(bar,r) # Open a file for reading文件的讀取/寫入f.write(Hello World)buff = g.read() # Read

11、 all dataline = g.readline() # Read a single linelines = g.readlines() # Read data as a list of lines異常處理 try: f=open(“foo”,”w”) exception: XXX文件操作With語句 With open(foo) as file: data=file.read()大文件yield指針?引用?Python里面沒有指針?biāo)卸际菍ο髮ο笾g都是引用(引用計數(shù)方式)常用的對象都有cache默認(rèn)是淺拷貝,深拷貝代碼importcopyls1 = 1,”test”,(3.4,7),“

12、key”:1, “comment”:”your comment”ls2 = copy.deepcopy(ls1)正則表達(dá)式導(dǎo)入模塊:import rep = pile(rab*, re.IGNORECASE)p = pile(a-z+)map/reduce云計算的核心算法lMap是將一個大任務(wù)拆分為很多個小任務(wù)lReduce則將每個小任務(wù)的計算結(jié)果進(jìn)行收集和匯總lFilter 過濾Python并行多線程Python并行多線程(map)Python并行多進(jìn)程l同步模式(apply_async)l異步模式(apply)Python并行多進(jìn)程(map)Map 為異步模式單元測試unittest模塊中的TestCase 類代表測試用例性能優(yōu)化Python的開發(fā)效率很高Python的執(zhí)行效率很低,比C+和JAVA都慢循環(huán)/函數(shù)調(diào)用等很消耗資源數(shù)據(jù)結(jié)構(gòu)的性能很高,目前可以認(rèn)為是優(yōu)化到極致優(yōu)化方式:用timeit分析之后優(yōu)化對應(yīng)代碼NUMPY與IO優(yōu)化使用C模塊來替換業(yè)務(wù)熱點部分地方可

溫馨提示

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

最新文檔

評論

0/150

提交評論