版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 企業(yè)商務(wù)活動策劃與組織制度
- 2026湖北省定向浙江大學(xué)選調(diào)生招錄考試備考題庫附答案
- 2026甘肅省隴南市徽縣恒輝學(xué)校招聘參考題庫附答案
- 2026福建省面向北京師范大學(xué)選調(diào)生選拔工作考試備考題庫附答案
- 2026西藏日喀則市薩迦縣選(聘)任社區(qū)工作者20人參考題庫附答案
- 2026重慶對外建設(shè)(集團)有限公司招聘項目經(jīng)理、項目總工程師等崗位11人備考題庫附答案
- 2026陜西省面向中國海洋大學(xué)招錄選調(diào)生備考題庫附答案
- 2026順義區(qū)大孫各莊社區(qū)衛(wèi)生服務(wù)中心第一次編外招聘4人參考題庫附答案
- 興國縣2025年公開選調(diào)鄉(xiāng)鎮(zhèn)敬老院院長的備考題庫附答案
- 吉安市2025年度市直事業(yè)單位公開選調(diào)工作人員【70人】備考題庫附答案
- 2024-2025學(xué)年廣東省實驗中學(xué)高一(上)期中語文試卷
- 成都大學(xué)《C語言程序設(shè)計》2023-2024學(xué)年第一學(xué)期期末試卷
- 維修服務(wù)人員培訓(xùn)
- 滬教版2024九年級上冊化學(xué)各章節(jié)必背知識點復(fù)習(xí)提綱
- 醫(yī)院物業(yè)保潔服務(wù)方案(技術(shù)方案)
- 《設(shè)備買賣合同模板》
- GB/T 4074.6-2024繞組線試驗方法第6部分:熱性能
- DB32-T 4111-2021 預(yù)應(yīng)力混凝土實心方樁基礎(chǔ)技術(shù)規(guī)程
- 不同時代的流行音樂
- DB31-T 1448-2023 監(jiān)獄場所消防安全管理規(guī)范
- 醫(yī)療衛(wèi)生機構(gòu)6S常態(tài)化管理打分表
評論
0/150
提交評論