版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第1章基礎知識2021/6/2811.0Python是一種怎樣的語言解釋型語言,偽編譯膠水語言開源跨平臺免費、自由軟件強類型、動態(tài)類型自動內(nèi)存管理面向?qū)ο笥写罅靠捎玫膸煸黾悠渌Z言編寫并編譯的模塊即可擴展功能2021/6/2821.1Python版本之爭2.x:一邊鄙視一邊用3.x:必然的趨勢多版本共存與切換簡便方法:更改系統(tǒng)環(huán)境變量path查看已安裝版本的方法(在所啟動的IDLE界面也可以直接看到):>>>importsys>>>sys.version'2.7.8(default,Jun302014,16:08:48)[MSCv.150064bit(AMD64)]'>>>sys.version_infosys.version_info(major=2,minor=7,micro=8,releaselevel='final',serial=0)2021/6/2831.2安裝Python//doc///python默認編程環(huán)境:IDLE常用快捷鍵:Alt+P、Alt+N:瀏覽歷史命令Ctrl+F6:重啟Shell,之前定義的對象全部無效F1:打開Python幫助文檔Alt+/:自動補全前面曾經(jīng)出現(xiàn)過的單詞,在多個單詞中循環(huán)選擇Ctrl+[、Ctrl+]:縮進代碼Alt+3、Alt+4:注釋、取消注釋其他可選開發(fā)環(huán)境:wxPython、Jython、2021/6/2841.3使用pip管理第三方包Python2中需要單獨安裝下載地址:/pypi/pip安裝方法:cmd==>pythonget-pip.py用法示例pipinstallNumPypiplistpipinstall--upgradeSomePackagepipuninstallSomePackagePython3安裝包中已默認包含pip2021/6/2851.4Python基礎知識2021/6/2861.4.1Python的對象模型對象是python語言中最基本的概念,在python中處理的每樣東西都是對象。python中有許多內(nèi)置對象可供編程者使用,內(nèi)置對象可直接使用,如數(shù)字、字符串、列表、del等;非內(nèi)置對象需要導入模塊才能使用,如正弦函數(shù)sin(x),隨機數(shù)產(chǎn)生函數(shù)random()等。2021/6/2871.4.1Python的對象模型常用內(nèi)置對象2021/6/2881.4.2python的變量和引用1.變量的創(chuàng)建x=3創(chuàng)建了變量x,不需要提前聲明變量a,b=3,5a,b=b,a2.引用在python中從變量到對象的連接稱為引用。>>>x=3變量擁有自己的存儲空間,變量連接到對象是該變量存儲了對象單元的內(nèi)存地址,并沒有存儲對象的值。x3變量對象引用2021/6/2891.4.2python的變量和引用3.共享引用 共享引用是指多個變量引用同一個對象。下面的語句使兩個變量都引用同一個對象3>>>a=3>>>b=a使用id函數(shù)可以查看對象的內(nèi)存地址4.垃圾回收機制對于沒有任何變量指向的值,Python自動將其刪除。Python跟蹤所有的值,并自動刪除不再有變量指向的值。2021/6/28101.4.2python的變量和引用5.對象類型的動態(tài)的,強類型>>>a=3>>>type(a)<type'int'>>>>a='4'>>>type(a)<type'str'>>>>a={3,5}>>>type(a)<type'set'>>>>a=[1,2,3]>>>type(a)<type'list'>2021/6/28111.4.2python的變量和引用6.變量命名以字母或下劃線(有特殊含義)開頭變量名中不能有空格以及標點符號(括號、引號、逗號、斜線、反斜線、冒號、句號、問號等等)不要使用關(guān)鍵字(在keyword模塊中)作變量名不要使用系統(tǒng)內(nèi)置的模塊名或函數(shù)名(可以通過dir(__builtins__)查看)作變量名大小寫敏感2021/6/28121.4.3數(shù)字數(shù)字是python中最常用的對象,屬于不可變對象??梢员硎救我獯笮〉臄?shù)字。>>>a=99999999999999999999999999999999>>>a*a9999999999999999999999999999999800000000000000000000000000000001L>>>a**3999999999999999999999999999999970000000000000000000000000000000299999999999999999999999999999999LPython的IDEL交互界面可以當做簡便計算器來使用。2021/6/28131.4.3數(shù)字整數(shù)十進制整數(shù)如,0、-1、9、123十六進制整數(shù),需要16個數(shù)字0、1、2、3、4、5、6、7、8、9、a、b、c、d、e、f來表示整數(shù),必須以0x開頭,如0x10、0xfa、0xabcdef八進制整數(shù),只需要8個數(shù)字0、1、2、3、4、5、6、7來表示整數(shù),必須以0o開頭,如0o35、0o11二進制整數(shù)、只需要2個數(shù)字0、1來表示整數(shù),必須以0b開頭如,0b101、0b1002021/6/28141.4.3數(shù)字浮點數(shù)浮點數(shù)又稱小數(shù),15.0、0.37、-11.2、1.2e2、314.15e-22021/6/28151.4.3數(shù)字復數(shù)Python中的復數(shù)與數(shù)學上的復數(shù)一致,由實部和虛部構(gòu)成,并且使用j或J來表示虛部。>>>a=3+4j>>>b=5+6j>>>c=a+b>>>c8+10j>>>c.real#復數(shù)的實部8.0>>>c.imag #復數(shù)的虛部10.0>>>a.conjugate()(3-4j)2021/6/28161.4.4字符串用單引號、雙引號或三引號括起來的符號系列稱為字符串單引號、雙引號、三單引號、三雙引號可以互相嵌套,用來表示復雜字符串。'abc'、'123'、'中國'、"Python"字符串屬于不可變序列
空串表示為''或""
三引號'''或"""表示的字符串可以換行,支持排版較為復雜的字符串;三引號還可以在程序中表示較長的注釋。2021/6/28171.4.4字符串1.字符串合并>>>a='abc'+'123'#生成新對象2.字符串格式化把對象按格式要求轉(zhuǎn)換為字符串。>>>a=3.6674>>>'%7.3f'%a#或者直接使用str(a)'3.667'2021/6/28181.4.4字符串3.轉(zhuǎn)義字符\n:換行符\t:制表符\r:回車\’:單引號\”:雙引號\\:一個\\ddd:3位八進制數(shù)對應的字符\xhh:2位十六進制數(shù)對應的字符字符串界定符前面加字母r表示原始字符串,其中的特殊字符不進行轉(zhuǎn)義,但字符串的最后一個字符不能是\。2021/6/28191.4.5操作符和表達式2021/6/28201.4.6常用內(nèi)置函數(shù)內(nèi)置函數(shù)不需要導入任何模塊即可使用執(zhí)行下面的命令可以列出所有內(nèi)置函數(shù)>>>dir(__builtins__)2021/6/28211.4.6常用內(nèi)置函數(shù)2021/6/28221.4.6常用內(nèi)置函數(shù)2021/6/28231.4.7對象的刪除Python中刪除對象用del語句。del用來刪除一個對象,并釋放對象所占資源。del的用法演示如下:>>>a=[1,2,3]>>>dela[1]>>>a[1,3]>>>x=5>>>x5>>>delx#此后x就不存在了2021/6/28241.4.8基本輸入輸出用Python進行程序設計,輸入是通過input()函數(shù)來實現(xiàn)的,imput()的一般格式為:x=input('提示:')該函數(shù)返回輸入的對象。可輸入數(shù)字、字符串和其它任意類型對象。2021/6/28251.4.8基本輸入輸出輸出是通過print語句來完成的,print語句的一般格式為:print對象1,對象2,...,對象n在Python3中,print是函數(shù),而不是語句。2021/6/28261.4.8基本輸入輸出在Python2.7.8之前的版本中進行重定向輸出的用法:>>>fp=open(r'c:\mytest.txt','a+')>>>print>>fp,"Hello,world">>>fp.close()在Python3.4.2版本中進行重定向輸出的用法:>>>fp=open(r'd:\mytest.txt','a+')>>>print('Hello,world!',file=fp)>>>fp.close()2021/6/28271.4.9模塊的使用Python默認安裝僅包含部分基本或核心模塊,但用戶可以安裝大量的擴展模塊,pip是管理模塊的重要工具。在Python啟動時,僅加載了很少的一部分模塊,在需要時由程序員顯式地加載(可能需要先安裝)其他模塊。減小運行的壓力,僅加載真正需要的模塊和功能,且具有很強的可擴展性。2021/6/28281.4.9模塊的使用import模塊名>>>importmath>>>math.sin(0.5)#求0.5的正弦>>>importrandom>>>x=random.random()#獲得[0,1)內(nèi)的隨機小數(shù)>>>y=random.random()>>>n=random.randint(1,100)#獲得[1,100]上的隨機整數(shù)可以使用dir函數(shù)查看任意模塊中所有的對象列表,如果調(diào)用不帶參數(shù)的dir()函數(shù),則返回當前腳本的所有名字列表??梢允褂胔elp函數(shù)查看任意模塊或函數(shù)的使用幫助。2021/6/28291.4.9模塊的使用frommathimportsin#可以減少查詢次數(shù),提高執(zhí)行速度frommathimport*#謹慎使用>>>frommathimportsin>>>sin(3)0.1411200080598672>>>frommathimportsinasf#別名>>>f(3)0.1411200080598672021/6/28301.4.9模塊的使用可以使用sys.modules.items()顯示所有預加載模塊的相關(guān)信息在2.x中可以使用reload函數(shù)重新導入一個模塊,在3.x中,需要使用imp模塊的reload函數(shù)Python首先在當前目錄中查找需要導入的模塊文件,如果沒有找到則從sys模塊的path變量所指定的目錄中查找。可以使用sys模塊的path變量查看python導入模塊時搜索模塊的路徑,也可以向其中append自定義的目錄以擴展搜索路徑。在導入模塊時,會優(yōu)先導入相應的pyc文件,如果相應的pyc文件與py文件時間不相符,則導入py文件并重新編譯該模塊。2021/6/28311.4.9模塊的使用ossysmathLocale:提供了C語言本地化函數(shù)的接口,并提供相關(guān)函數(shù)實現(xiàn)基于當前l(fā)ocale設置的數(shù)字與字符串轉(zhuǎn)換randomstructpickle:序列化datetimetimewmi:需安裝tkinter:GUI開發(fā)urllib/urllib2:網(wǎng)頁編程Pygame:游戲開發(fā)tkinter、wxPython:GUI編程SciPy:科學計算PIL:圖像處理fabric:遠程操作與部署,/en/1.10/capstone:反匯編框架ropper:ROP相關(guān)框架IDAPython:IDA插件,/p/idapython/Yara:惡意軟件識別與分類引擎2021/6/28321.5Python代碼規(guī)范(1)縮進類定義、函數(shù)定義、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu),行尾的冒號表示縮進的開始python程序是依靠代碼塊的縮進來體現(xiàn)代碼之間的邏輯關(guān)系的,縮進結(jié)束就表示一個代碼塊結(jié)束了。同一個級別的代碼塊的縮進量必須相同。一般而言,以4個空格為基本縮進單位,可以通過下面的方法進行代碼塊的縮進和反縮進:FortmatIndentRegion/DedentRegion2021/6/28331.5Python代碼規(guī)范(2)注釋一個好的、可讀性強的程序一般包含30%以上的注釋。常用的注釋方式主要有兩種:以#開始,表示本行#之后的內(nèi)容為注釋包含在一對三引號'''...'''或"""..."""之間且不屬于任何語句的內(nèi)容將被解釋器認為是注釋在IDLE開發(fā)環(huán)境中,可以通過下面的操作快速注釋/解除注釋大段內(nèi)容:FormatCommentOutRegion/UncommentRegion2021/6/28341.5Python代碼規(guī)范(3)每個import只導入一個模塊(4)如果一行語句太長,可以在行尾加上\來換行分成多行,但是更建議使用括號來包含多行內(nèi)容。(5)必要的空格與空行運算符兩側(cè)、函數(shù)參數(shù)之間、逗號兩側(cè)建議使用空格分開。不同功能的代碼塊之間、不同的函數(shù)定義之間建議增加一個空行以增加可讀性。(6)適當使用異常處理結(jié)構(gòu)進行容錯,后面將詳細講解。(7)軟件應具有較強的可測試性,測試與開發(fā)齊頭并進,后面將詳細講解。2021/6/28351.6Python文件名.py:Python源文件.pyc:Python字節(jié)碼文件。對于Python模塊,第一次被導入時將被編譯成字節(jié)碼的形式,以提高腳本的啟動速度。對于非模塊文件,直接執(zhí)行時并不生成pyc文件,可以使用py_compile模塊的compile函數(shù)進行編譯。.pyo:優(yōu)化的Python字節(jié)碼文件。可以使用”python–Ofile.py”或”python–OOfile.py”進行優(yōu)化編譯。2021/6/28361.7Python程序的運行方式每個Python腳本在運行時都有一個__name__屬性。如果腳本作為模塊被導入,則其__name__屬性被設置為模塊名;如果腳本獨立運行,則其__name__屬性被設置為__main__。2021/6/28371.8編寫自己的包與模塊包可以看做處于同一目錄中的模塊。在包的每個目錄中都必須包含一個__init__.py文件,該文件可以是一個空文件,僅用于表示該目錄是一個包。__init__.py文件的主要用途是設置__all__變量以及所包含的包初始化所需的代碼。其中__all__變量中定義的對象可以在使用from…import*時全部正確導入。2021/6/28381.9Python快速入門問題1:用戶輸入一個三位自然數(shù),計算并輸出其佰位、十位和個位上的數(shù)字。x=input('請輸入一個三位數(shù):')a=x//100b=x//10%10#或b=x%100//10c=x-100*a-10*b#或c=x%10printa,b,c2021/6/28391.9Python快速入門問題2:已知三角形的兩邊長及其夾角,求第三邊長。importmathx=input('輸入兩邊及夾角(度):')a,b,sita=xc=math.sqrt(a**2+b**2-2*a*b*math.cos(sita*math.pi/180))print'c=',c2021/6/28401.9Python快速入門上面的代碼也可以寫成這樣,雖然減少了需要輸入的代碼,但一般不建議這樣做:frommathimport*x=input('輸入兩邊及夾角(度):')a,b,sita=xc=sqrt(a**2+b**2-2*a*b*cos(sita*pi/180))print'c=',c2021/6/28411.9Python快速入門這樣就可以了:frommathimportsqrtx=input('輸入兩邊及夾角(度):')a,b,sita=xc=sqrt(a**2+b**2-2*a*b*cos(sita*pi/180))print'c=',c2021/6/28421.9Python快速入門問題3:任意輸入三個英文單詞,按字典順序輸出。s
=
input('x,y,z=')x,
y,z
=
s.split(',')ifx
>
y:
x,y
=
y,xifx
>
z:x,z
=
z,xify
>
z:y,z
=
z,yprint(x,y,z)2021/6/28431.10TheZenofPythonBeautiful
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度金融科技創(chuàng)新場合作經(jīng)營協(xié)議范本4篇
- 二零二五年度路燈桿及配套設施供應合同4篇
- 二零二五版黨組織聯(lián)建共建鄉(xiāng)村振興戰(zhàn)略合作協(xié)議3篇
- 自媒體寫作課程設計論文
- 2025年度機械設備租賃買賣合同標準文本4篇
- 2025年新型材料廠房建筑合同范本4篇
- 二零二五年度高空作業(yè)機電安裝安全服務合同3篇
- 二零二五版樓頂停車場租賃管理合同4篇
- 美術(shù)課程設計剪紙
- 專業(yè)可研分析及建議服務協(xié)議范本版B版
- GB/T 11072-1989銻化銦多晶、單晶及切割片
- GB 15831-2006鋼管腳手架扣件
- 有機化學機理題(福山)
- 醫(yī)學會自律規(guī)范
- 商務溝通第二版第4章書面溝通
- 950項機電安裝施工工藝標準合集(含管線套管、支吊架、風口安裝)
- 微生物學與免疫學-11免疫分子課件
- 《動物遺傳育種學》動物醫(yī)學全套教學課件
- 弱電工程自檢報告
- 民法案例分析教程(第五版)完整版課件全套ppt教學教程最全電子教案
- 7.6用銳角三角函數(shù)解決問題 (2)
評論
0/150
提交評論