python 講義 01 基礎(chǔ)知識.ppt_第1頁
python 講義 01 基礎(chǔ)知識.ppt_第2頁
python 講義 01 基礎(chǔ)知識.ppt_第3頁
python 講義 01 基礎(chǔ)知識.ppt_第4頁
python 講義 01 基礎(chǔ)知識.ppt_第5頁
已閱讀5頁,還剩87頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、Python課程教師信息: 張端,計算機學(xué)院,趙傲,計算機學(xué)院,助教第1章基礎(chǔ)知識,主 要 內(nèi) 容,Python是一種怎樣的語言 如何選擇Python版本 Python安裝與簡單使用 Python基礎(chǔ)知識 Python代碼規(guī)范 Python文件名 Python腳本的“_name_” 編寫自己的包與模塊 Python快速入門,3,1.0 Python是一種怎樣的語言,計算機(Computer)的概念 根據(jù)指令操作數(shù)據(jù)的機器 計算機功能:指對數(shù)據(jù)的操作,表現(xiàn)為數(shù)據(jù)計算、 輸入輸出處理和結(jié)果存儲等 必須告知計算機如何操作,計算機才會完成計算 計算機

2、程序:為了完成某項任務(wù),解決某個問題由計算機執(zhí)行的一系列指令(步驟),4,1.0 Python是一種怎樣的語言,程序設(shè)計語言的歷史 機器語言:二進制代碼表示的一種機器指令的集合 匯編語言:在機器語言上增加了人類可讀的助記符 高級語言:向自然語言靠近的語言,5,1.0 Python是一種怎樣的語言,6,Python由 “龜叔”Guido van Rossum在1989創(chuàng)建,1.0 Python是一種怎樣的語言,Python的要求: 1994年,Python 1 2000年,Python 2 2008年,Python 3(本課程使用Python 3.6.x) 更高級別的3.0系列不兼容早期2.0系

3、列 2011年1月,TIOBE將Python評為編程語言排行榜2010年度語言 2017年7月,IEEE Spectrum編程語言排行榜中Python直接上升到了第1位 Python 3.x系列已經(jīng)開始全面普及,成為一種必然的趨勢,7,1.0 Python是一種怎樣的語言,Python是一門跨平臺、開源、免費的解釋型高級動態(tài)編程語言 偽編譯,Python源程序轉(zhuǎn)換為字節(jié)碼,Jython py2exe工具將Python程序轉(zhuǎn)換為擴展名為“.exe”的可執(zhí)行程序 Python支持 命令式編程 函數(shù)式編程 面向?qū)ο缶幊?支持各領(lǐng)域的擴展庫 Python為“膠水”語言,與不同語言編寫的程序無縫拼接 優(yōu)

4、點:明確,簡單,優(yōu)雅,減輕構(gòu)思性腦力勞動;缺點:慢,略提高記憶性腦力勞動 在科學(xué)計算、大數(shù)據(jù)、人工智能等領(lǐng)域應(yīng)用越來越廣泛,8,1.0 Python是一種怎樣的語言,9,1.0 Python是一種怎樣的語言,10,1.0 Python是一種怎樣的語言,如何學(xué)習(xí)Python,對過程的要求: 根據(jù)Python的特點,注重記憶和理解 系統(tǒng)學(xué)習(xí)和點滴學(xué)習(xí)并重,前半學(xué)期更注重后者 PPT上紅色部分代表第一次出現(xiàn)的、難點、重點 課后必須將書本或者PPT看3遍, 第一遍理解 第二遍濃縮,PPT上的紅色部分 第三遍記憶 獨立完成作業(yè)和實驗,熟練掌握重要示例 至考前書本或者PPT閱讀次數(shù)必須達到6遍以上,11,

5、1.1 如何選擇Python版本,安裝好Python以后,在“開始”菜單中啟動“IDLE(Python GUI)”即可啟動Python解釋器并可以看到當前安裝的Python版本號。 如果您喜歡的話,也可以啟動“Python(command line)”來開始美妙的Python之旅。 在“IDLE(Python GUI)”和“Python(command line)”兩種界面中,都以三個大于號“”作為提示符,在提示符后面輸入要執(zhí)行的語句。,12,1.1 如何選擇Python版本,2.x:一邊鄙視一邊用 3.x:必然的趨勢,本課程主要對象 多版本共存與切換簡便方法:更改系統(tǒng)環(huán)境變量path 查看已

6、安裝版本的方法(在所啟動的IDLE界面也可以直接看到): import sys sys.version sys.version_info,13,1.1 如何選擇Python版本,如安裝多個不同的版本,例如同時安裝Python 2.7.8和Python 3.4.2,并根據(jù)不同的開發(fā)需求在兩個版本之間進行切換。 只需要啟動相應(yīng)版本的IDLE即可。 在命令提示符環(huán)境中運行Python程序時 在調(diào)用Python主程序時指定其完整路徑 修改系統(tǒng)Path變量來實現(xiàn)不同版本之間的切換,14,1.2 Python安裝與簡單使用,1. 打開Python官網(wǎng)/,如下圖選擇

7、,15,1.2 Python安裝與簡單使用,2. 下載exe后綴的可執(zhí)行文件,根據(jù)自己系統(tǒng)選擇32位或64位,16,1.2 Python安裝與簡單使用,3. 執(zhí)行下載的安裝文件,選擇Customize installation,17,1.2 Python安裝與簡單使用,4. 選擇Next,18,1.2 Python安裝與簡單使用,5. 修改安裝地址,選擇Install,19,1.2 Python安裝與簡單使用,6. 驗證是否環(huán)境變量是否設(shè)置,按win+R,輸入cmd,鍵入python,出席python版本號說明環(huán)境變量設(shè)置成功。,20,1.2 Python安裝與簡單使用,7. 否則在控制面板-

8、系統(tǒng)-高級系統(tǒng)設(shè)置-環(huán)境變量設(shè)置-系統(tǒng)變量中的Path項加上Python安裝目錄。,21,1.2 Python安裝與簡單使用,安裝好以后,默認以IDLE為開發(fā)環(huán)境,當然也可以安裝使用其他的開發(fā)環(huán)境,例如PythonWin。以IDLE為例,使用交互式編程模式, IDLE提示符“” 回車,看執(zhí)行結(jié)果,執(zhí)行出錯否拋出異常。 3+5 8 import math math.sqrt(9) 3.0 3*(2+6) 24 2/0 Traceback (most recent call last): File , line 1, in 2/0 ZeroDivisionError: integer divisi

9、on or modulo by zero,22,1.2 Python安裝與簡單使用,23,1.2 Python安裝與簡單使用,第一個程序Hello World第一種方式:shell方式或者交互方式 在IDLE界面中提示符之后鍵入代碼輸入代碼 print(Hello World) #代碼 Hello World #輸出 # 1. 函數(shù)print(Hello world)在顯示器上打印()中的內(nèi)容 # 2.Hello world為字符串,引號不能少 # 3. 引號 和括號( ),必須是英文符號,24,1.2 Python安裝與簡單使用,第一個程序Hello World第二種方式:文件方式 在IDL

10、E界面中使用菜單“File”=“New File”創(chuàng)建一個程序文件 輸入代碼并保存為文件,務(wù)必要保證擴展名為“.py”, 如果是GUI程序可以保存為“.pyw”文件。 菜單“Run”=“Check Module”來檢查程序中是否存在語法錯誤 菜單“Run”=“Run Module”運行程序,程序運行結(jié)果將直接顯示在IDLE交互界面上。 執(zhí)行上述兩項操作時系統(tǒng)會要求先保存文件 假設(shè)有程序HelloWorld.py內(nèi)容如下: print(Hello world),25,1.2 Python安裝與簡單使用,26,1.2 Python安裝與簡單使用,27,1.2 Python安裝與簡單使用,關(guān)于執(zhí)行的

11、補充: 也可以通過在資源管理器中雙擊擴展名為“.py”或“.pyc”的Python程序文件直接運行; 可命令提示符環(huán)境中運行Python程序文件,按win+R,鍵入cmd,回車,轉(zhuǎn)至HelloWorld.py所在目錄,鍵入python HelloWorld.py;,28,1.2 Python安裝與簡單使用,在實際開發(fā)中,如果您能夠熟練使用集成開發(fā)環(huán)境IDLE提供的一些快捷鍵,將會大幅度提高您的編寫速度和開發(fā)效率。在IDLE環(huán)境下,除了撤銷(Ctrl+Z)、全選(Ctrl+A)、復(fù)制(Ctrl+C)、粘貼(Ctrl+V)、剪切(Ctrl+X)等常規(guī)快捷鍵之外,其他比較常用的快捷鍵如下表所示。,2

12、9,1.2 Python安裝與簡單使用,其他常用集成開發(fā)環(huán)境IDLE: Anaconda( PyCharm,30,1.2 Python安裝與簡單使用,Anaconda中的Spyder,31,1.2 Python安裝與簡單使用,作業(yè) 回顧Python歷史,課外閱讀Python簡史 在機房或者手機、 本地電腦上安裝Python環(huán)境,手機上請在應(yīng)用市場找到并安裝QPython3 APP 上機編寫第一個示例程序 Hello World,嘗試將print函數(shù)拼寫錯誤等,查看輸出結(jié)果,32,1.3* 使用pip管理第三方包,Python3安裝包默認包含pip,或在 https:/pypi.python.o

13、rg/pypi/pip 下載get-pip.py文件 安裝方法:win+R,cmd=python get-pip.py 用法示例 pip install NumPy #安裝Numpy包 pip list #列出已安裝包 pip install -upgrade SomePackage #升級SomePackage包 pip uninstall SomePackage #卸載SomePackage包,33,1.4 Python基礎(chǔ)知識,對象模型 基本數(shù)據(jù)類型 變量 運算符與表達式 內(nèi)置函數(shù),34,1.4.1 Python的對象模型,概念引入:值和類型 值(Value):程序操作的最基本的東西,字

14、母,或者數(shù)字 類型(Type):數(shù)據(jù)從不同角度看有不同的含義使用type()查看類型 type(2) #整數(shù) type(20.0) #浮點數(shù) type(Hello World!) #字符串,35,1.4.1 Python的對象模型,對象是python語言中最基本的概念,在python中處理的均為對象。 內(nèi)置對象 可供編程者使用,內(nèi)置對象可直接使用,如數(shù)字、字符串、列表、del等; 非內(nèi)置對象 需要導(dǎo)入模塊才能使用,如正弦函數(shù)sin(x),隨機數(shù)產(chǎn)生函數(shù)random( )等。,36,1.4.1 Python的對象模型,常用內(nèi)置對象,37,1.4.2 Python變量,在Python中有: 常量(

15、Literal Constants):值不發(fā)生改變的元素,這里的值用的就是字面意義上的值或者內(nèi)容。 例:5、 1.23、 這是一串文本、 This is a string“ 變量(Variable):就是某個值的標簽,38,1.4.2 Python變量,39,1.4.2 Python變量,在Python中,不需要事先聲明變量名及其類型(方便,函數(shù)聲明等場合也會有麻煩),直接賦值即可創(chuàng)建各種類型的對象變量。例如語句 x = 3 創(chuàng)建了整型變量x,并賦值為3,3是常量,x是變量 x = Hello world. 創(chuàng)建了字符串變量x,并賦值為Hello world.。這一點適用于Python任意類型

16、的對象。 注意: Python解釋器會根據(jù)賦值或運算來自動推斷變量類型。 Python仍屬于強類型編程語言,40,1.4.2 Python變量,使用變量時需要程序員確定所進行的運算是否合適,避免出現(xiàn)異常。同一個運算符對于不同類型數(shù)據(jù)操作的含義和計算結(jié)果也是不一樣的。 Python還是一種動態(tài)類型語言,變量的類型是可以隨時變化的。 x = 3 print(type(x) # type()返回變量類型 x = Hello world. print(type(x) x = 1,2,3 print(type(x) isinstance(3, int) #isinstance()用來測試對象是否為指定類

17、型 True isinstance(Hello world, str) True,41,1.4.2 Python變量,變量出現(xiàn)在賦值符或復(fù)合賦值運算符(例如+=、*=等等)左邊表示創(chuàng)建變量或修改變量的值,在右邊表示引用變量的值。這一點同樣適用于使用下標來訪問列表、字典等可變序列以及其他自定義對象中元素的情況。 x = 3 #創(chuàng)建整型變量 print(x*2) 9 x += 6 #修改變量值,效果上相當于 x = x+6 print(x) #讀取變量值并輸出顯示 9 x = 1,2,3 #創(chuàng)建列表對象 print(x) 1, 2, 3 x1 = 5 #修改列表元素值 print(x) #輸出顯示

18、整個列表 1, 5, 3 print(x2) #輸出顯示列表指定元素 3,42,1.4.2 Python變量,字符串和元組屬于不可變序列,不能通過下標來修改其中的元素值。 x = (1,2,3) print(x) (1, 2, 3) x1 = 5 #不能修改元組,出錯。 Traceback (most recent call last): File , line 1, in x1 = 5 TypeError: tuple object does not support item assignment,43,1.4.2 Python變量,允許多個變量指向同一個值: x = 3 id(x) #獲取

19、x的內(nèi)存地址 1786684560 y = x id(y) 1786684560 為其中一個變量修改值以后,此變量內(nèi)存地址將會變化: x += 6 id(x) 1786684752 y 3 id(y) 1786684560,44,1.4.2 Python變量,Python采用的是基于值的內(nèi)存管理方式:如多個變量賦值相同,該值在內(nèi)存中只有一份,多個變量指向同一塊內(nèi)存地址: x = 3 id(x) 10417624 y = 3 id(y) 10417624 y = 5 id(y) 10417600 id(x) 10417624 對于沒有任何變量指向的值,Python自動將其刪除,程序員一般情況下不

20、需要太多考慮內(nèi)存管理的問題。 顯式使用del命令刪除不需要的值或顯式關(guān)閉不再需要訪問的資源,仍是一個好的習(xí)慣。,45,1.4.2 Python變量,變量名定義基本規(guī)則: 變量名必須以字母或下劃線開頭,但以下劃線開頭的變量在Python中有特殊含義; 變量名中不能有空格以及標點符號(括號、引號、逗號、斜線、反斜線、冒號、句號、問號等等); 不能使用關(guān)鍵字作變量名,可以導(dǎo)入keyword模塊后使用print(keyword.kwlist)查看所有Python關(guān)鍵字; import keyword keyword.kwlist and, as, assert, break, class, conti

21、nue, def, del, elif, else, except, exec, finally, for, from, global, if, import, in, is, lambda, not, or, pass, print, raise, return, try, while, with, yield and = 3 SyntaxError: invalid syntax 不建議使用系統(tǒng)內(nèi)置對象名稱,如模塊名、類型名或函數(shù)名以及已導(dǎo)入的模塊名及其成員名作變量名,這將會改變其類型和含義,可以通過dir(_builtins_)查看所有內(nèi)置模塊、類型和函數(shù); 變量名對英文字母的大小寫敏感

22、,例如student和Student是不同的變量。,46,1.4.3 數(shù)字,數(shù)字是python中最常用的對象,屬于不可變對象。 可以表示任意大小的數(shù)字。 a=99999999999999999999999999999999 a*a 9999999999999999999999999999999800000000000000000000000000000001L a*3 999999999999999999999999999999970000000000000000000000000000000299999999999999999999999999999999L,47,1.4.3 數(shù)字,整數(shù):

23、十進制整數(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ù),必須以0 x開頭,如0 x10、0 xfa、0 xabcdef 八進制整數(shù),只需要8個數(shù)字0、1、2、3、4、5、6、7來表示整數(shù),必須以0o開頭,如0o35、0o11 二進制整數(shù)、只需要2個數(shù)字0、1來表示整數(shù),必須以0b開頭如,0b101、0b100,48,1.4.3 數(shù)字,浮點數(shù)又稱小數(shù), 15.0、0.37、-11.2、1.2e2、314.15e-2 1. 這里e改為E,效果完全相同;浮點數(shù)5.0與整數(shù)5不同 2. 一個浮點數(shù)a由兩個數(shù)m和x來表示:

24、a = m bx。 3. m是定點小數(shù),x是定點整數(shù),m(即尾數(shù))是形如d.ddd.ddd的p位數(shù) 4. python中浮點數(shù)精度有限,49,1.4.3 數(shù)字,復(fù)數(shù): a = 3+4j b = 5+6j c = a+b c (8+10j) c.real #查看復(fù)數(shù)實部 8.0 c.imag #查看復(fù)數(shù)虛部 10.0 a.conjugate() #返回共軛復(fù)數(shù) (3-4j) a*b #復(fù)數(shù)乘法 (-9+38j) a/b #復(fù)數(shù)除法 (0.6393442622950819+0.03278688524590165j),50,1.4.4 字符串,用單引號、雙引號或三引號括起來的符號系列稱為字符串 單引

25、號、雙引號、三單引號、三雙引號可以互相嵌套,用來表示復(fù)雜字符串。 abc、123、中國、Python 字符串屬于不可變序列 空串表示為或 或或 三引號或表示的字符串可以換行,支持排版較為復(fù)雜的字符串;三引號還可以在程序中表示較長的注釋。,51,1.4.4 字符串,1. 字符串合并 a=abc + 123 #生成新對象 2. 字符串格式化,即把對象按格式要求轉(zhuǎn)換為字符串。 a = 3.6674 %7.3f % a 3.667 %d:%c%(65,65) 65:A My name is %s, and my age is %d%(Dong Fuguo,38) My name is Dong Fug

26、uo, and my age is 38 3. 轉(zhuǎn)義字符 n:換行符 t:制表符 r:回車 :單引號 ”:雙引號 :一個 ddd:3位八進制數(shù)對應(yīng)的字符 xhh:2位十六進制數(shù)對應(yīng)的字符 字符串界定符(引號)前面加字母r表示原始字符串,其中的特殊字符不進行轉(zhuǎn)義,但字符串的最后一個字符不能是。,52,1.4.5 操作符和表達式,53,1.4.5 操作符和表達式,Python中的除法有“/”和“/”分別表示除法和整除運算。Python 3.x將其解釋為真除法(無論任何類型都會保持小數(shù)部分) 。例如: 3/5 #除法 0.6 #除法的結(jié)果為浮點數(shù) ,例10/2結(jié)果為5.0 3/5 0 3.0/5 0

27、.6 3.0/5 0.0 13/10 1 -13/10 #結(jié)果向下取整,也稱“地板除” -2,54,1.4.5 操作符和表達式,運算符是“%”。 字符串格式化用法 對整數(shù)和浮點數(shù)計算余數(shù)。因精度影響,浮點數(shù)計算結(jié)果可能略有誤差。 3.1%2 1.1 6.3%2.1 2.0999999999999996 6%2 0,55, 6.0%2 0.0 6.0%2.0 0.0 5.7%4.8 0.9000000000000004,較復(fù)雜運算舉例:,1.4.5 操作符和表達式,Python中很多運算符有多重含義,具體含義取決于操作數(shù)的類型。例如“*”運算符:,56, 3*2 #整數(shù)相乘 6 2.0*3 #浮

28、點數(shù)與整數(shù)相乘 6.0 (3+4j)*2 #復(fù)數(shù)與整數(shù)相乘 (6+8j) (3+4j)*(3-4j) #復(fù)數(shù)與復(fù)數(shù)相乘 (25+0j), 1*5 #字符串重復(fù) 11111 a*10 #字符串重復(fù) aaaaaaaaaa 1,2,3*3 #列表重復(fù) 1, 2, 3, 1, 2, 3, 1, 2, 3 (1,2,3)*3 #元組重復(fù) (1, 2, 3, 1, 2, 3, 1, 2, 3) 3*a #字符串重復(fù) aaa,列表:例如 8,7,5,3 或 ad, bnc,列表內(nèi)容可改變, 元組:例如 (8,7,5,3) 或 (ad, bnc),元組內(nèi)容不可改變,1.4.5 操作符和表達式,在Python中

29、的合法表達式:1 單個任何類型的對象或常數(shù);2 使用運算符連接的變量和常量以及函數(shù)調(diào)用的任意組合。 a = 1,2,3 b = 4,5,6 c = a+b c 1, 2, 3, 4, 5, 6 d = map(str, c) d 1, 2, 3, 4, 5, 6 import math map(math.sin, c) 0.8414709848078965, 0.9092974268256817, 0.1411200080598672, -0.7568024953079282, -0.9589242746631385, -0.27941549819892586 Hello + + world

30、Hello world welcome * 3 welcome welcome welcome (welcome,*3).rstrip(,)+! welcome,welcome,welcome!,57,1.4.5 操作符和表達式,在Python中逗號“,”并不是運算符,而只是一個普通分隔符: a in b, a (False, a) a in (b, a) True x = 3, 5 x (3, 5) 3 = 3, 5 (True, 5) x = 3+5, 7 x (8, 7),58,1.4.6 常用內(nèi)置函數(shù),內(nèi)置函數(shù): 內(nèi)置函數(shù)不需要導(dǎo)入任何模塊即可使用 執(zhí)行下面的命令可以列出所有內(nèi)置函數(shù)

31、dir(_builtins_),59,1.4.6 常用內(nèi)置函數(shù),60,1.4.6 常用內(nèi)置函數(shù),61,1.4.6 常用內(nèi)置函數(shù),62,1.4.6 常用內(nèi)置函數(shù),ord()用來返回單個字符的序數(shù)或ASCII碼 chr()用來返回介于0到255之間的某序數(shù)對應(yīng)的字符 str()用來返回任意類型參數(shù)轉(zhuǎn)換為字符串,63, ord(a) 97 ord(A) 65 chr(65) A chr(67) C chr(ord(A)+1) B, str(1) 1 str(1234) 1234 str(1,2,3) 1, 2, 3 str(1,2,3) (1, 2, 3) str(1,2,3) 1, 2, 3,1.

32、4.6 常用內(nèi)置函數(shù),id(obj)用來返回obj對象內(nèi)存地址 type(obj)用來對象obj對象類型 Isinstance(obj,class)用來判斷obj對象是否是class類型 len(obj)用來返回對象obj元素個數(shù) range()此函數(shù)在下章詳細介紹,本章只要求掌握最簡單的用法,64, a=5 id(a) 1848574544 type(a) isinstance(a,str) False isinstance(a,int) True, b=range(6) #返回0開始到6之前整數(shù)的序列 list(b) 0, 1, 2, 3, 4, 5 len(b) 6 len(abc) 3

33、,1.4.6 常用內(nèi)置函數(shù),abs():取模(絕對值) pow(x,y):x的y次方,等價于x*y round(x,小數(shù)位數(shù)) : 標準圓整,不給出小數(shù)位數(shù)返回整數(shù),功能非常接近于四舍五入,65, abs(-5) 5 abs(1+1j) 1.4142135623730951 pow(2,3) 8 pow(2,-3) 0.125, round(5.923) 6 round(-5.923) -6 round(21.5,-1) 20.0, round(1.55,1) 1.6 round(2.55,1) 2.5 round(2.550000001,1) 2.6,1.4.6 常用內(nèi)置函數(shù),max()、m

34、in()、sum()這三個內(nèi)置函數(shù)分別用于計算列表、元組或其他可迭代對象中所有元素最大值、最小值以及所有元素之和, sum()只支持數(shù)值型元素的序列或可迭代對象, max()和min()則要求序列或可迭代對象中的元素之間可比較大小。例如下面的示例代碼,首先使用,然后分別計算該列表的最大值、最小值和所有元素之和。 import random a= for i in range(10): a=a+random.randint(1,100) a 26, 31, 21, 22, 20, 86, 53, 8, 96, 54 print(min(a),max(a),sum(a),sum(a)/len(a)

35、 8 96 417 41.7,66,random是Python庫,import random作用是引入該庫,引入后才能使用該庫中的對象。,random.randint() 隨機生一個整數(shù)int類型,并指定這個整數(shù)的上限和下限值,上下限的值均可取。,random.random()函數(shù)是這個模塊中最常用的方法了,它會生成一個隨機的浮點數(shù),范圍在0.01.0之間 random.random() 0.27586129839759055,1.4.6 常用內(nèi)置函數(shù),int()、float()、complex()、str()這4個內(nèi)置函數(shù)將其他類型強制轉(zhuǎn)換為整數(shù)、浮點數(shù)、復(fù)數(shù)和字符串,如果不能轉(zhuǎn)換這出錯。,

36、67, int(2.1) #向下取整 2 int(2.9) 2 int(86) 86 int(86.9) #錯誤 float(80) 80.0 float(80) 80.0, str(2) 2 str(2.1) 2.1 complex(3.5) (3.5+0j),1.4.6 常用內(nèi)置函數(shù),兩個幫助編程的內(nèi)置函數(shù): dir()函數(shù)可以查看指定模塊中包含的所有成員或者指定對象類型所支持的操作 help()函數(shù)則返回指定模塊或函數(shù)的說明文檔。,68,1.4.7 對象的刪除,在Python中具有自動內(nèi)存管理功能或者垃圾回收機制,Python解釋器會跟蹤所有的值,一旦發(fā)現(xiàn)某個值不再有任何變量指向,將會自

37、動刪除該值。 顯式釋放自己申請的資源是程序員的好習(xí)慣之一,也是程序員素養(yǎng)的重要體現(xiàn)之一。 在Python中,del命令來顯式刪除對象并解除與值之間的指向關(guān)系。刪除對象時, 如果其指向的值還有別的變量指向則不刪除該值。 如果刪除對象后該值不再有其他變量指向,則刪除該值。,69,1.4.7 對象的刪除, x = 1,2,3,4,5,6 y = 3 z = y print(y) 3 del y #刪除對象 print(y) Traceback (most recent call last): File , line 1, in print(y) NameError: name y is not de

38、fined print(z) 3 del z,70, print(z) Traceback (most recent call last): File , line 1, in print(z) NameError: name z is not defined del x1 #刪除列表中指定元素 print(x) 1, 3, 4, 5, 6 del x #刪除整個列表 print(x) Traceback (most recent call last): File , line 1, in print(x) NameError: name x is not defined,1.4.7 對象的刪

39、除,del命令無法刪除元組或字符串中的指定元素,而只可以刪除整個元組或字符串,因為這兩者均屬于不可變序列。 x = (1,2,3) del x1 #錯誤 Traceback (most recent call last): File , line 1, in del x1 TypeError: tuple object doesnt support item deletion del x #可刪除 print(x) Traceback (most recent call last): File , line 1, in print(x) NameError: name x is not def

40、ined,71,1.4.8 基本輸入輸出,用Python中輸入:通過input( )函數(shù)來實現(xiàn)的,該函數(shù)返回輸入的字符串,imput( )的一般格式為: x=input(提示:) Python 3.x中輸出:使用print()函數(shù) print(xxx,xxx,xxx)中的“,”將打成空格,72,1.4.8 基本輸入輸出,在Python 3.x中,不論用戶輸入數(shù)據(jù)時使用什么界定符,input()函數(shù)的返回結(jié)果都是字符串,需要將其轉(zhuǎn)換為相應(yīng)的類型再處理。,73, x = input(Please input:) Please input:3 print(type(x) x = input(Plea

41、se input:) Please input:1 print(type(x) x=int(input(Please input:) print(type(x) x = input(Please input:) Please input:1,2,3 print(type(x) #?如何轉(zhuǎn)換,1.4.8 基本輸入輸出,print()函數(shù)基本輸出的幾個參數(shù): 設(shè)置sep參數(shù),作為數(shù)據(jù)間隔符: print(1,2,3,sep=:) 1:2:3 設(shè)置file參數(shù),將重定向到文件: fp = open(r D:mytest.txt, a+) #打開文件,a追加模式,+讀寫模式 print(Hello,w

42、orld!, file = fp) fp.close() 設(shè)置end參數(shù),實現(xiàn)輸出內(nèi)容之后不換行: for i in range(10): print(i, end= ) 0 1 2 3 4 5 6 7 8 9,74,1.4.9 模塊的使用,在Python中,一個.py文件就稱之為一個模塊(Module) 使用模塊有什么好處? 提高了代碼的可維護性 可引用其他模塊,減輕工作量,包括Python內(nèi)置模塊和第三方模塊 避免函數(shù)名和變量名沖突 不同的人編寫的模塊名相同怎么辦? 解決方法:引入包,包中含模塊和下級包(子包),包相當與文件夾或目錄。只要頂層的包名不與別人沖突,那所有模塊都不會與別人沖突,

43、75,1.4.9 模塊的使用,Python默認安裝僅包含部分基本或核心模塊,但用戶可以安裝的擴展模塊,pip是管理模塊的重要工具。 在Python啟動時,僅加載了很少的一部分模塊,在需要時由程序員顯式地加載(可能需要先安裝)其他模塊。 可以使用import sys;sys.modules.items()顯示所有預(yù)加載模塊的相關(guān)信息。,76,1.4.9 模塊的使用,import 模塊名 import math math.sin(0.5) #求0.5的正弦 import random x=random.random( ) #獲得0,1) 內(nèi)的隨機小數(shù) y=random.random( ) n=ra

44、ndom.randint(1,100) #獲得1,100上的隨機整數(shù) 可以使用dir()函數(shù)查看任意模塊中所有的對象列表(如import math; dir(math),如果調(diào)用不帶參數(shù)的dir()函數(shù),則返回當前腳本的所有名字列表。 可以使用help函數(shù)查看任意模塊或函數(shù)的使用幫助。,77,1.4.9 模塊的使用,from 模塊名 import 對象名 as 別名, 可以減少查詢次數(shù),提高執(zhí)行速度 from math import * #謹慎使用 from math import sin sin(3) 0.1411200080598672 from math import sin as f

45、#別名 f(3) 0.141120008059867,78,1.4.9 模塊的使用,數(shù)學(xué)庫(math)的使用,庫中常用數(shù)學(xué)常數(shù)和函數(shù),79,1.4.9 模塊的使用,數(shù)學(xué)庫示例 #導(dǎo)入數(shù)學(xué)庫 import math #查看圓周率常數(shù) math.pi 3.141592653589793 #求x的y次方pow(x,y) math.pow(math.pi,2) 9.869604401089358 #邊長為8.3和10.58,兩邊夾角為37度的三角形面積計算 8.3*10.58*math.sin(37.0/180*3.1416)/2 26.423945174044125 from math import

46、 sqrt #引入數(shù)學(xué)庫中的sqrt函數(shù) sqrt(16) 4.0 from math import * #引入數(shù)學(xué)庫中所有的函數(shù) sqrt(16) 4.0,80,1.4.9 模塊的使用,在3.x中重新導(dǎo)入需要使用imp模塊的reload函數(shù),例如當對xyz模塊進行了修改后: fromimpimportreload reload(xyz) Python首先在當前目錄中查找需要導(dǎo)入的模塊文件,如果沒有找到則從sys模塊的path變量所指定的目錄中查找??梢允褂胹ys模塊的path變量查看python導(dǎo)入模塊時搜索模塊的路徑,也可以向其中append自定義的目錄以擴展搜索路徑。 import sy

47、s sys.path.append(/Users/michael/my_py_scripts) 在導(dǎo)入模塊時,會優(yōu)先導(dǎo)入相應(yīng)的pyc文件,如果相應(yīng)的pyc文件與py文件時間不相符,則導(dǎo)入py文件并重新編譯該模塊。,81,1.5 Python代碼規(guī)范,(1)縮進 類定義、函數(shù)定義、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu),行尾的冒號表示縮進的開始 python程序是依靠代碼塊的縮進來體現(xiàn)代碼之間的邏輯關(guān)系的,縮進結(jié)束就表示一個代碼塊結(jié)束了。 同一個級別的代碼塊的縮進量必須相同。 一般而言,以4個空格為基本縮進單位,可以通過下面的方法進行代碼塊的縮進和反縮進: FortmatIndent Region/Dedent R

48、egion,82,1.5 Python代碼規(guī)范,(2)注釋 一個好的、可讀性強的程序一般包含30%以上的注釋。常用的注釋方式主要有兩種: 單行注釋:以#開始,表示本行#之后的內(nèi)容為注釋 多行注釋:包含在一對三引號.或.之間且不屬于任何語句的內(nèi)容將被解釋器認為是注釋 在IDLE開發(fā)環(huán)境中,可以通過下面的操作快速注釋(Alt+3)/解除注釋(Alt+4)大段內(nèi)容: FormatComment Out Region/Uncomment Region,83,1.5 Python代碼規(guī)范,(3)每個import只導(dǎo)入一個模塊 (4)如果一行語句太長,可以在行尾加上來換行分成多行, 之后不能有任何其他符號

49、,包括空格和注釋 。 a=1+2+3+4+5+6+7 +8+9+10 a 55 (5)必要的空格與空行 運算符兩側(cè)、函數(shù)參數(shù)之間、逗號兩側(cè)建議使用空格分開。 不同功能的代碼塊之間、不同的函數(shù)定義之間建議增加一個空行以增加可讀性。 (6)適當使用異常處理結(jié)構(gòu)進行容錯,后面將詳細講解。 (7)軟件應(yīng)具有較強的可測試性,測試與開發(fā)齊頭并進。,84,1.6 Python文件名,.py:Python源文件,由Python解釋器負責(zé)解釋執(zhí)行。 .pyw:Python源文件,常用于圖形界面程序文件。 .pyc:Python字節(jié)碼文件,源文件經(jīng)過編譯而來,用于隱藏Python源代碼和提高載入和運行速度。對于Python模塊,第一次被導(dǎo)入時將被編譯成字節(jié)碼的形式,并在以后再次導(dǎo)入時優(yōu)先使用“.pyc”文件,以提高模塊的加載和運行速度。對于非模塊文件,直接執(zhí)行時并不生成“.pyc”文件,但可以使用py_compile模塊的compile()函數(shù)進行編譯以提高加載和運行速度。另外,Python還提供了co

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論