




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、Python課程教師信息: 張端,計算機(jī)學(xué)院,趙傲,計算機(jī)學(xué)院,助教第1章基礎(chǔ)知識,主 要 內(nèi) 容,Python是一種怎樣的語言 如何選擇Python版本 Python安裝與簡單使用 Python基礎(chǔ)知識 Python代碼規(guī)范 Python文件名 Python腳本的“_name_” 編寫自己的包與模塊 Python快速入門,3,1.0 Python是一種怎樣的語言,計算機(jī)(Computer)的概念 根據(jù)指令操作數(shù)據(jù)的機(jī)器 計算機(jī)功能:指對數(shù)據(jù)的操作,表現(xiàn)為數(shù)據(jù)計算、 輸入輸出處理和結(jié)果存儲等 必須告知計算機(jī)如何操作,計算機(jī)才會完成計算 計算機(jī)
2、程序:為了完成某項(xiàng)任務(wù),解決某個問題由計算機(jī)執(zhí)行的一系列指令(步驟),4,1.0 Python是一種怎樣的語言,程序設(shè)計語言的歷史 機(jī)器語言:二進(jìn)制代碼表示的一種機(jī)器指令的集合 匯編語言:在機(jī)器語言上增加了人類可讀的助記符 高級語言:向自然語言靠近的語言,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是一門跨平臺、開源、免費(fèi)的解釋型高級動態(tài)編程語言 偽編譯,Python源程序轉(zhuǎn)換為字節(jié)碼,Jython py2exe工具將Python程序轉(zhuǎn)換為擴(kuò)展名為“.exe”的可執(zhí)行程序 Python支持 命令式編程 函數(shù)式編程 面向?qū)ο缶幊?支持各領(lǐng)域的擴(kuò)展庫 Python為“膠水”語言,與不同語言編寫的程序無縫拼接 優(yōu)
4、點(diǎn):明確,簡單,優(yōu)雅,減輕構(gòu)思性腦力勞動;缺點(diǎn):慢,略提高記憶性腦力勞動 在科學(xué)計算、大數(shù)據(jù)、人工智能等領(lǐng)域應(yīng)用越來越廣泛,8,1.0 Python是一種怎樣的語言,9,1.0 Python是一種怎樣的語言,10,1.0 Python是一種怎樣的語言,如何學(xué)習(xí)Python,對過程的要求: 根據(jù)Python的特點(diǎn),注重記憶和理解 系統(tǒng)學(xué)習(xí)和點(diǎn)滴學(xué)習(xí)并重,前半學(xué)期更注重后者 PPT上紅色部分代表第一次出現(xiàn)的、難點(diǎn)、重點(diǎn) 課后必須將書本或者PPT看3遍, 第一遍理解 第二遍濃縮,PPT上的紅色部分 第三遍記憶 獨(dú)立完成作業(yè)和實(shí)驗(yàn),熟練掌握重要示例 至考前書本或者PPT閱讀次數(shù)必須達(dá)到6遍以上,11,
5、1.1 如何選擇Python版本,安裝好Python以后,在“開始”菜單中啟動“IDLE(Python GUI)”即可啟動Python解釋器并可以看到當(dāng)前安裝的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ā)需求在兩個版本之間進(jìn)行切換。 只需要啟動相應(yīng)版本的IDLE即可。 在命令提示符環(huán)境中運(yùn)行Python程序時 在調(diào)用Python主程序時指定其完整路徑 修改系統(tǒng)Path變量來實(shí)現(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. 驗(yàn)證是否環(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項(xiàng)加上Python安裝目錄。,21,1.2 Python安裝與簡單使用,安裝好以后,默認(rèn)以IDLE為開發(fā)環(huán)境,當(dāng)然也可以安裝使用其他的開發(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ù)必要保證擴(kuò)展名為“.py”, 如果是GUI程序可以保存為“.pyw”文件。 菜單“Run”=“Check Module”來檢查程序中是否存在語法錯誤 菜單“Run”=“Run Module”運(yùn)行程序,程序運(yùn)行結(jié)果將直接顯示在IDLE交互界面上。 執(zhí)行上述兩項(xiàng)操作時系統(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、補(bǔ)充: 也可以通過在資源管理器中雙擊擴(kuò)展名為“.py”或“.pyc”的Python程序文件直接運(yùn)行; 可命令提示符環(huán)境中運(yùn)行Python程序文件,按win+R,鍵入cmd,回車,轉(zhuǎn)至HelloWorld.py所在目錄,鍵入python HelloWorld.py;,28,1.2 Python安裝與簡單使用,在實(shí)際開發(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簡史 在機(jī)房或者手機(jī)、 本地電腦上安裝Python環(huán)境,手機(jī)上請?jiān)趹?yīng)用市場找到并安裝QPython3 APP 上機(jī)編寫第一個示例程序 Hello World,嘗試將print函數(shù)拼寫錯誤等,查看輸出結(jié)果,32,1.3* 使用pip管理第三方包,Python3安裝包默認(rèn)包含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ù)類型 變量 運(yùn)算符與表達(dá)式 內(nèi)置函數(shù),34,1.4.1 Python的對象模型,概念引入:值和類型 值(Value):程序操作的最基本的東西,字
14、母,或者數(shù)字 類型(Type):數(shù)據(jù)從不同角度看有不同的含義使用type()查看類型 type(2) #整數(shù) type(20.0) #浮點(diǎn)數(shù) type(Hello World!) #字符串,35,1.4.1 Python的對象模型,對象是python語言中最基本的概念,在python中處理的均為對象。 內(nèi)置對象 可供編程者使用,內(nèi)置對象可直接使用,如數(shù)字、字符串、列表、del等; 非內(nèi)置對象 需要導(dǎo)入模塊才能使用,如正弦函數(shù)sin(x),隨機(jī)數(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):就是某個值的標(biāo)簽,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.。這一點(diǎn)適用于Python任意類型
16、的對象。 注意: Python解釋器會根據(jù)賦值或運(yùn)算來自動推斷變量類型。 Python仍屬于強(qiáng)類型編程語言,40,1.4.2 Python變量,使用變量時需要程序員確定所進(jìn)行的運(yùn)算是否合適,避免出現(xiàn)異常。同一個運(yù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ù)合賦值運(yùn)算符(例如+=、*=等等)左邊表示創(chuàng)建變量或修改變量的值,在右邊表示引用變量的值。這一點(diǎn)同樣適用于使用下標(biāo)來訪問列表、字典等可變序列以及其他自定義對象中元素的情況。 x = 3 #創(chuàng)建整型變量 print(x*2) 9 x += 6 #修改變量值,效果上相當(dāng)于 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變量,字符串和元組屬于不可變序列,不能通過下標(biāo)來修改其中的元素值。 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中有特殊含義; 變量名中不能有空格以及標(biāo)點(diǎn)符號(括號、引號、逗號、斜線、反斜線、冒號、句號、問號等等); 不能使用關(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、十進(jìn)制整數(shù)如,0、-1、9、123 十六進(jìn)制整數(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 八進(jìn)制整數(shù),只需要8個數(shù)字0、1、2、3、4、5、6、7來表示整數(shù),必須以0o開頭,如0o35、0o11 二進(jìn)制整數(shù)、只需要2個數(shù)字0、1來表示整數(shù),必須以0b開頭如,0b101、0b100,48,1.4.3 數(shù)字,浮點(diǎn)數(shù)又稱小數(shù), 15.0、0.37、-11.2、1.2e2、314.15e-2 1. 這里e改為E,效果完全相同;浮點(diǎn)數(shù)5.0與整數(shù)5不同 2. 一個浮點(diǎn)數(shù)a由兩個數(shù)m和x來表示:
24、a = m bx。 3. m是定點(diǎn)小數(shù),x是定點(diǎn)整數(shù),m(即尾數(shù))是形如d.ddd.ddd的p位數(shù) 4. python中浮點(diǎn)數(shù)精度有限,49,1.4.3 數(shù)字,復(fù)數(shù): a = 3+4j b = 5+6j c = a+b c (8+10j) c.real #查看復(fù)數(shù)實(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位八進(jìn)制數(shù)對應(yīng)的字符 xhh:2位十六進(jìn)制數(shù)對應(yīng)的字符 字符串界定符(引號)前面加字母r表示原始字符串,其中的特殊字符不進(jìn)行轉(zhuǎn)義,但字符串的最后一個字符不能是。,52,1.4.5 操作符和表達(dá)式,53,1.4.5 操作符和表達(dá)式,Python中的除法有“/”和“/”分別表示除法和整除運(yùn)算。Python 3.x將其解釋為真除法(無論任何類型都會保持小數(shù)部分) 。例如: 3/5 #除法 0.6 #除法的結(jié)果為浮點(diǎn)數(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 操作符和表達(dá)式,運(yùn)算符是“%”。 字符串格式化用法 對整數(shù)和浮點(diǎn)數(shù)計算余數(shù)。因精度影響,浮點(diǎn)數(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ù)雜運(yùn)算舉例:,1.4.5 操作符和表達(dá)式,Python中很多運(yùn)算符有多重含義,具體含義取決于操作數(shù)的類型。例如“*”運(yùn)算符:,56, 3*2 #整數(shù)相乘 6 2.0*3 #浮
28、點(diǎn)數(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 操作符和表達(dá)式,在Python中
29、的合法表達(dá)式:1 單個任何類型的對象或常數(shù);2 使用運(yùn)算符連接的變量和常量以及函數(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 操作符和表達(dá)式,在Python中逗號“,”并不是運(yùn)算符,而只是一個普通分隔符: 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ù)在下章詳細(xì)介紹,本章只要求掌握最簡單的用法,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ù)) : 標(biāo)準(zhǔn)圓整,不給出小數(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()只支持?jǐn)?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() 隨機(jī)生一個整數(shù)int類型,并指定這個整數(shù)的上限和下限值,上下限的值均可取。,random.random()函數(shù)是這個模塊中最常用的方法了,它會生成一個隨機(jī)的浮點(diǎn)數(shù),范圍在0.01.0之間 random.random() 0.27586129839759055,1.4.6 常用內(nèi)置函數(shù),int()、float()、complex()、str()這4個內(nèi)置函數(shù)將其他類型強(qiáng)制轉(zhuǎn)換為整數(shù)、浮點(diǎn)數(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)存管理功能或者垃圾回收機(jī)制,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命令無法刪除元組或字符串中的指定元素,而只可以刪除整個元組或字符串,因?yàn)檫@兩者均屬于不可變序列。 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ù)來實(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ù),實(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) 使用模塊有什么好處? 提高了代碼的可維護(hù)性 可引用其他模塊,減輕工作量,包括Python內(nèi)置模塊和第三方模塊 避免函數(shù)名和變量名沖突 不同的人編寫的模塊名相同怎么辦? 解決方法:引入包,包中含模塊和下級包(子包),包相當(dāng)與文件夾或目錄。只要頂層的包名不與別人沖突,那所有模塊都不會與別人沖突,
43、75,1.4.9 模塊的使用,Python默認(rèn)安裝僅包含部分基本或核心模塊,但用戶可以安裝的擴(kuò)展模塊,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)的隨機(jī)小數(shù) y=random.random( ) n=ra
44、ndom.randint(1,100) #獲得1,100上的隨機(jī)整數(shù) 可以使用dir()函數(shù)查看任意模塊中所有的對象列表(如import math; dir(math),如果調(diào)用不帶參數(shù)的dir()函數(shù),則返回當(dāng)前腳本的所有名字列表。 可以使用help函數(shù)查看任意模塊或函數(shù)的使用幫助。,77,1.4.9 模塊的使用,from 模塊名 import 對象名 as 別名, 可以減少查詢次數(shù),提高執(zhí)行速度 from math import * #謹(jǐn)慎使用 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ù),例如當(dāng)對xyz模塊進(jìn)行了修改后: fromimpimportreload reload(xyz) Python首先在當(dāng)前目錄中查找需要導(dǎo)入的模塊文件,如果沒有找到則從sys模塊的path變量所指定的目錄中查找??梢允褂胹ys模塊的path變量查看python導(dǎo)入模塊時搜索模塊的路徑,也可以向其中append自定義的目錄以擴(kuò)展搜索路徑。 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)縮進(jìn) 類定義、函數(shù)定義、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu),行尾的冒號表示縮進(jìn)的開始 python程序是依靠代碼塊的縮進(jìn)來體現(xiàn)代碼之間的邏輯關(guān)系的,縮進(jìn)結(jié)束就表示一個代碼塊結(jié)束了。 同一個級別的代碼塊的縮進(jìn)量必須相同。 一般而言,以4個空格為基本縮進(jìn)單位,可以通過下面的方法進(jìn)行代碼塊的縮進(jìn)和反縮進(jìn): FortmatIndent Region/Dedent R
48、egion,82,1.5 Python代碼規(guī)范,(2)注釋 一個好的、可讀性強(qiáng)的程序一般包含30%以上的注釋。常用的注釋方式主要有兩種: 單行注釋:以#開始,表示本行#之后的內(nèi)容為注釋 多行注釋:包含在一對三引號.或.之間且不屬于任何語句的內(nèi)容將被解釋器認(rèn)為是注釋 在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)必要的空格與空行 運(yùn)算符兩側(cè)、函數(shù)參數(shù)之間、逗號兩側(cè)建議使用空格分開。 不同功能的代碼塊之間、不同的函數(shù)定義之間建議增加一個空行以增加可讀性。 (6)適當(dāng)使用異常處理結(jié)構(gòu)進(jìn)行容錯,后面將詳細(xì)講解。 (7)軟件應(yīng)具有較強(qiáng)的可測試性,測試與開發(fā)齊頭并進(jìn)。,84,1.6 Python文件名,.py:Python源文件,由Python解釋器負(fù)責(zé)解釋執(zhí)行。 .pyw:Python源文件,常用于圖形界面程序文件。 .pyc:Python字節(jié)碼文件,源文件經(jīng)過編譯而來,用于隱藏Python源代碼和提高載入和運(yùn)行速度。對于Python模塊,第一次被導(dǎo)入時將被編譯成字節(jié)碼的形式,并在以后再次導(dǎo)入時優(yōu)先使用“.pyc”文件,以提高模塊的加載和運(yùn)行速度。對于非模塊文件,直接執(zhí)行時并不生成“.pyc”文件,但可以使用py_compile模塊的compile()函數(shù)進(jìn)行編譯以提高加載和運(yùn)行速度。另外,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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 五年級上冊數(shù)學(xué)教案 - 5.3 分餅 北師大版
- 2025年租憑合同延期申請書模板
- 五年級下冊數(shù)學(xué)教案-練習(xí)一 北師大版
- 三年級上冊語文部編版期中測試卷(含答案)
- 2024年水電站計算機(jī)監(jiān)控裝置項(xiàng)目資金申請報告代可行性研究報告
- 2025年濟(jì)南工程職業(yè)技術(shù)學(xué)院單招職業(yè)傾向性測試題庫含答案
- 《7 秋季星空》 教學(xué)設(shè)計-2023-2024學(xué)年科學(xué)六年級上冊青島版
- 我為爸爸慶祝父親節(jié)教案教學(xué)設(shè)計
- 2025年廣東省建筑安全員-A證考試題庫附答案
- 2025年桂林信息工程職業(yè)學(xué)院單招職業(yè)傾向性測試題庫帶答案
- 中醫(yī)主任述職報告
- 通防培訓(xùn)課件
- 撤場通知書( 模板)
- 音樂識譜節(jié)奏訓(xùn)練課件
- 七年級數(shù)學(xué)上冊期末試卷(可打印)
- richcui美國sspc富鋅底漆解讀
- 學(xué)前兒童游戲(中職學(xué)前教育專業(yè))PPT完整版全套教學(xué)課件
- 人教版高中地理必修一全冊測試題(16份含答案)
- GN汽車吊吊裝專項(xiàng)安全方案講義
- 初中歷史-《開元盛世 》教學(xué)課件設(shè)計
- 成果導(dǎo)向(OBE)教育理念課件
評論
0/150
提交評論