20200114-第二十四上課python腳本python_第1頁
20200114-第二十四上課python腳本python_第2頁
20200114-第二十四上課python腳本python_第3頁
20200114-第二十四上課python腳本python_第4頁
20200114-第二十四上課python腳本python_第5頁
已閱讀5頁,還剩50頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、Python 是由 Guido van Rossum 在八十年代末和九十年代初,在荷蘭國家數(shù)學(xué)和計算機科學(xué)研究所設(shè)計出來的 Python 是一種解釋型語言: 這意味著開發(fā)過程中沒有了編譯這個環(huán)節(jié)。類似于PHP和Perl語言。 Python 是交互式語言: 這意味著,您可以在一個 Python 提示符 后直接執(zhí)行代碼。 Python 是面向?qū)ο笳Z言: 這意味著Python支持面向?qū)ο蟮娘L(fēng)格或代碼封裝在對象的編程技術(shù)。 1.易于學(xué)習(xí):Python有相對較少的關(guān)鍵字,結(jié)構(gòu)簡單,和一個明確定義的語法,學(xué)習(xí)起來更加簡單。 2.易于閱讀:Python代碼定義的更清晰。 3.易于維護:Python的成功在于

2、它的源代碼是相當容易維護的。 4.一個廣泛的標準庫:Python的最大的優(yōu)勢之一是豐富的庫,跨平臺的,在UNIX,Windows和Macintosh兼容很好。 5.互動模式:互動模式的支持,您可以從終端輸入執(zhí)行代碼并獲得結(jié)果的語言,互動的測試和調(diào)試代碼片斷。 6.可移植:基于其開放源代碼的特性,Python已經(jīng)被移植(也就是使其工作)到許多平臺。 7.可擴展:如果你需要一段運行很快的關(guān)鍵代碼,或者是想要編寫一些不愿開放的算法,你可以使用C或C+完成那部分程序,然后從你的Python程序中調(diào)用。 8.數(shù)據(jù)庫:Python提供所有主要的商業(yè)數(shù)據(jù)庫的接口。 9.GUI編程:Python支持GUI可以

3、創(chuàng)建和移植到許多系統(tǒng)調(diào)用。 10.可嵌入: 你可以將Python嵌入到C/C+程序,讓你的程序的用戶獲得腳本化的能力。Python的應(yīng)用方向1. 常規(guī)軟件開發(fā)常規(guī)的軟件開發(fā)、腳本編寫、網(wǎng)絡(luò)編程能力。2. 科學(xué)計算很多流行的NumPy,SciPy,Matplotlib,Enthoughtlibrarys等眾多程序庫的開發(fā)用的模塊,很適合于做科學(xué)計算、繪制高質(zhì)量的2D和3D圖像。在日常的科研開發(fā)之中仍然有很多的工作是可以用Python代勞的。3. 自動化運維這幾乎是Python應(yīng)用的自留地,作為運維工程師首選的編程語言,Python在自動化運維方面已經(jīng)深入人心,比如Saltstack和Ansibl

4、e都是大名鼎鼎的自動化平臺。4. 云計算開源云計算解決方案OpenStack就是基于Python開發(fā)的。5. WEB開發(fā)基于Python的Web開發(fā)框架Django,Tornado,F(xiàn)lask等,流行的Python+Django架構(gòu)。6. 數(shù)據(jù)分析在大量數(shù)據(jù)的基礎(chǔ)上,結(jié)合科學(xué)計算、機器學(xué)習(xí)等技術(shù),對數(shù)據(jù)進行清洗、去重、規(guī)格化和針對性的分析是大數(shù)據(jù)行業(yè)的基石。Python是數(shù)據(jù)分析的主流語言之一。7. 人工智能Python在人工智能大范疇領(lǐng)域內(nèi)的機器學(xué)習(xí)、神經(jīng)網(wǎng)絡(luò)、深度學(xué)習(xí)等方面都是主流的編程語言,得到廣泛的支持和應(yīng)用。Python的就業(yè)方向發(fā)展前景一:Linux運維發(fā)展前景二:Python W

5、eb網(wǎng)站工程師發(fā)展前景三:Python自動化測試發(fā)展前景四:數(shù)據(jù)分析發(fā)展前景五:人工智能命名規(guī)則變量名的首字符必須是字母或下劃線;可以由字母、數(shù)字或下劃線組成。1、變量名通常是字母和下劃線組成;包名、模塊名通常用小寫字母。2、類名首字母用大寫,其他字母采用小寫。對象名用小寫字母。3、函數(shù)名通常采用小寫。下劃線或單詞首字母大寫來增加名稱的可讀性,導(dǎo)入的函數(shù)以模塊名做前綴。代碼縮進1、代碼縮進要求嚴格和IndentationError異常。2、編碼前的統(tǒng)一規(guī)則,建議4個空格或單個制表符。注釋1、#注釋2、中文注釋在源碼里可以寫中文#-*-coding: UTF-8-*-3、跨平臺注釋 #! /us

6、r/bin/python運行在windows以外的平臺結(jié)束標記1、語句的結(jié)束 可以使用 分號, 也可以使用 回車2、Python中推薦使用回車作為一條語句的結(jié)束變量的賦值變量名的首字符必須是字母或下劃線;可以由字母、數(shù)字或下劃線組成。變量無需聲明局部變量- 只在函數(shù)或代碼段內(nèi)使用的變量,- 函數(shù)或代碼段一旦結(jié)束, 局部變量的生命周期也將結(jié)束.全局變量- 全局變量能被不同的函數(shù),類或文件共享的變量- 在函數(shù)外定義的變量都是全局變量, 通常定義在文件的開始處- 在函數(shù)里 用 global 全局變量名 引用全局變量- 應(yīng)該避免使用全局變量備注:python創(chuàng)建的變量就是一個對象, python會管理

7、變量的生命周期. Python對變量的回收采用的也是垃圾回收機制聲名變量的格式:變量名 = 值(值的類型決定變量的類型) 例如:counter = 100 # 整型變量miles = 1000.0 # 浮點型變量name = John # 字符串變量flag = True # 布爾類型變量多個變量的賦值:python支持同時為多個變量賦值:a = b = c = 1為多個變量指定不同的值:name, age, sex = 張 三 , 23, 男 使用type()函數(shù)可以查看變量的類型: age = 18.5print(type(age)常量常量是指一旦初始化就不能修改的固定值。Python沒有

8、提供定義常量的關(guān)鍵字。常量類代碼#-*-coding:UTF-8-*-#Filename: const.py class _const:class ConstError(TypeError):pass def setattr (self, name, value):if self. dict .has_key(name):raise self.ConstError, Cant(%s) %nameself. dict name=valueimport syssys.modules name = _const()調(diào)用代碼新建test.py:#-*-coding:UTF-8-*-import con

9、st const.magic = 23 print const.magic const.magic = 33rebindconst執(zhí)行調(diào)用#python const.py#python test.py定義一個常量類實現(xiàn)常量的功能該類定義了一個方法 setattr() , 和一個異常ConstError, ConstError類繼承自類TypeError. 通過調(diào)用類自帶的字典 dict , 判斷定義的常量是否包含在字典如果字典中包含此變量, 將拋出異常,否則,給新創(chuàng)建的常量賦值。最后兩行代碼的作用是把const類注冊到sys.modules這個全局字典中。數(shù)據(jù)類型1、字符串a(chǎn)、使用單引號()用

10、單引號括起來表示字符串,例如:str=this is string;print str;b、使用雙引號()雙引號中的字符串與單引號中的字符串用法完全相同,例如:str=this is string;print str;c、使用三引號()利用三引號,表示多行的字符串,可以在三引號中自由的使用單引號和雙引號,例如:str=this is stringthis is pythod string this is stringprint str;2、布爾類型bool=False;print bool; bool=True; print bool;3、整數(shù)int=20;print int;4、浮點數(shù)flo

11、at=2.3;print float;5、數(shù)字包括整數(shù)、浮點數(shù)。5.1、刪除數(shù)字對象引用,例如:a=1;b=2; c=3;del a; del b, c;6.1 、初始化列表,例如:list列表中的元素逗號分隔,可以不是相同類型nums=1, 3, 5, 7, 8, 13, 20; =physics, chemistry, 1997, 2000;6.2 、訪問列表中的值(第一元素從序號0開始),例如:nums0: 1print nums0:, nums0nums2:5: 5, 7, 8 從下標為2的元素切割到下標為5的元素,但不包含下標為5的元素print nums2:5:, nums2:5n

12、ums1: 3, 5, 7, 8, 13, 20 從下標為1切割到最后一個元素print nums1:, nums1:nums:-3: 1, 3, 5, 7 從最開始的元素一直切割到倒數(shù)第3個元素,但不包含倒數(shù)第三個元素print nums:-3:, nums:-3nums: 1, 3, 5, 7, 8, 13, 20 返 回 所 有 元 素 print nums:, nums:6.3、更新列表,例如:nums0=ljq;print nums0; 6.4、刪除列表元素del nums0;nums: 3, 5, 7, 8, 13, 20print nums:, nums:;6.5、列表腳本操作符

13、列表對+和*的操作符與字符串相似。+號用于組合列表,*號用于重復(fù)列表,例如:print print print print for xlen(1, 2, 3); #31, 2, 3 + 4, 5, 6; #1, 2, 3, 4, 5, 6 Hi! * 4; #Hi!, Hi!, Hi!, Hi!3 in 1, 2, 3 #Truein 1, 2, 3: print x, #1 2 36.6、列表截取L=spam, Spam, SPAM!;print L2;print L-2;print L1:;#SPAM!#Spam#Spam, SPAM!6.7、列表函數(shù)&方法list.append(obj)

14、 在列表末尾添加新的對象list.count(obj) 統(tǒng)計某個元素在列表中出現(xiàn)的次數(shù)list.extend(seq) 在列表末尾一次性追加另一個序列中的多個值(用新列表擴展原來的列表) list.index(obj) 從列表中找出某個值第一個匹配項的索引位置,索引從0開始list.insert(index, obj) 將對象插入列表list.pop(obj=list-1) 移除列表中的一個元素(默認最后一個元素),并且返回該元素的值list.remove(obj) 移除列表中某個值的第一個匹配項list.reverse() 反向列表中元素,倒轉(zhuǎn)list.sort(func) 對原列表進行排序

15、list.sort(reverse=True)7、元組(tuple)Python的元組與列表類似,不同之處在于元組的元素不能修改;元組使用小括號(),列表使用方括號;元組創(chuàng)建很簡單,只需要在括號中添加元素,并使用逗號(,)隔開即可,例如:tup1 = (physics, chemistry, 1997, 2000);tup2 = (1, 2, 3, 4, 5 );tup3 = a, b, c, d;創(chuàng)建空元組,例如:tup = ();元組中只有一個元素時,需要在元素后面添加逗號,例如:tup1 = (50,);元組與字符串類似,下標索引從0開始,可以進行截取,組合等。7.1、訪問元組tup1

16、= (physics, chemistry, 1997, 2000);#tup10: physicsprint “tup10: ”, tup10 #tup11:5: (chemistry, 1997,2000) print tup11:5: , tup11:57.2、修改元組元組中的元素值是不允許修改的,但我們可以對元組進行連接組合,例如:tup1 = (12, 34.56);tup2 = (abc, xyz);# 以下修改元組元素操作是非法的。# tup10 = 100;# 創(chuàng)建一個新的元組tup3 = tup1 + tup2;print tup3; #(12, 34.56, abc, xy

17、z)7.3、刪除元組元組中的元素值是不允許刪除的,可以使用del語句來刪除整個元組,例如:tup = (physics, chemistry, 1997, 2000);print tup; del tup;7.4、元組運算符與字符串一樣,元組之間可以使用+號和*號進行運算。這就意味著他們可以組合和復(fù)制,運算后會生成一個新的元組。7.5、元組索引&截取L = (spam, Spam, SPAM!);print L2; print L-2;print L1:;#SPAM!#Spam#Spam, SPAM!7.6、元組內(nèi)置函數(shù)cmp(tuple1, tuple2) 比較兩個元組元素。len(tupl

18、e) 計算元組元素個數(shù)。max(tuple) 返回元組中元素最大值。min(tuple) 返回元組中元素最小值。tuple(seq) 將列表轉(zhuǎn)換為元組。8.1、字典簡介字典(dictionary)是除列表之外python中最靈活的內(nèi)置數(shù)據(jù)結(jié)構(gòu)類型。列表是有序的對象結(jié)合,字典是無序的對象集合。兩者之間的區(qū)別在于:字典當中的元素是通過鍵來存取的,而不是通過偏移存取。字典由鍵和對應(yīng)的值組成。字典也被稱作關(guān)聯(lián)數(shù)組或哈希表?;菊Z法如下:dict = Alice: 2341, Beth: 9102, Cecil: 3258;也可如此創(chuàng)建字典:dict1 = abc: 456 ; dict2 = abc:

19、 123, 98.6: 37 ;每個鍵與值必須用冒號隔開(:),每對用逗號分割,整體放在花括號中()。鍵必須獨一無二,但值則不必;值可以取任何數(shù)據(jù)類型,如字符串,數(shù)或元組。8.2、訪問字典里的值#!/usr/bin/pythondict = name: Zara, age: 7, class: First;print dictname: , dictname;print dictage: , dictage;8.3、修改字典向字典添加新內(nèi)容的方法是增加新的鍵/值對,修改或刪除已有鍵/值對如下實例:#!/usr/bin/pythondict = name: Zara, age: 7, class

20、: First; dictage=27; #修改已有鍵的值dictschool=wutong; #增加新的鍵/值對print dictage: , dictage;print dictschool: , dictschool;8.4、刪除字典del dictname; # 刪除鍵是name的條目dict.clear(); # 清空詞典所有條目del dict ; # 刪 除 詞 典例 如 : #!/usr/bin/pythondict = name: Zara, age: 7, class: First;del dictname;#dict age: 7, class: Firstprint

21、dict, dict;注意:字典不存在,del會引發(fā)一個異常8.5、字典內(nèi)置函數(shù)&方法cmp(dict1, dict2) 比較兩個字典元素。len(dict) 計算字典元素個數(shù),即鍵的總數(shù)。str(dict) 輸出字典可打印的字符串表示。type(variable) 返回輸入的變量類型,如果變量是字典就返回字典類型。radiansdict.clear() 刪除字典內(nèi)所有元素radiansdict.copy() 返回一個字典的淺復(fù)制radiansdict.fromkeys() 創(chuàng)建一個新字典,以序列seq中元素做字典的鍵,val為字典所有鍵對應(yīng)的初始值radiansdict.get(key, d

22、efault=None) 返回指定鍵的值,如果值不在字典中返回default值radiansdict.has_key(key) 如果鍵在字典dict里返回true,否則返回falseradiansdict.items() 以列表返回可遍歷的(鍵, 值) 元組數(shù)組radiansdict.keys() 以列表返回一個字典所有的鍵radiansdict.setdefault(key, default=None) 和get()類似, 但如果鍵已經(jīng)不存在于字典中,將會添加鍵并將值設(shè)為default radiansdict.update(dict2) 把字典dict2的鍵/值對更新到dict里radian

23、sdict.values() 以列表返回字典中的所有值,9.1、集合集合(set)是由一個或數(shù)個形態(tài)各異的大小整體組成的構(gòu)成集合的事物或?qū)ο蠓Q作元素或是成員。基本功能是進行成員關(guān)系測試和刪除重復(fù)元素。可以使用大括號 或者 set() 函數(shù)創(chuàng)建集合注意:創(chuàng)建一個空集合必須用 set() 而不是 , 因為 是用來創(chuàng)建一個空字典。創(chuàng)建格式:parame = value01,value02,.或者 set(value)9.2、集合列表轉(zhuǎn)集合setname=set(listname)集合轉(zhuǎn)列表listname=list(setname)setname=update(string)做為整體加入集合setn

24、ame=add(string)拆分后加入集合單分支:if 判斷條件:代碼塊如果單分支語句的代碼塊只有一條語句,可以把if語句和代碼寫在同一行:if 判斷條件: 一句代碼實例:判斷指定的uid是不是root用戶uid = 0if uid = 0:print(root)也可以這樣寫:uid = 0if uid = 0: print(root)輸出結(jié)果:root雙分支:if 判斷條件:代碼塊else:代碼塊實例:根據(jù)用戶id打印用戶身份uid = 100if uid = 0:print(root) else:print(Common user)輸出結(jié)果:Common user多分支:if 判斷條件1

25、:代碼塊1 elif 判斷條件2:代碼塊2.elif 判斷條件n:代碼塊nelse:默認代碼塊實例:根據(jù)學(xué)生分數(shù)打印字母等級基本形式while循環(huán)語句的基本形式如下:while 判斷條件: 代碼塊當給定的判斷條件的返回值的真值測試結(jié)果為True時執(zhí)行循環(huán)體的代碼,否則退出循環(huán)體。實例:計算1-9的和while死循環(huán)當while的判斷條件一直為True時,while循環(huán)體中代碼就會永遠循環(huán)下去。while True:print(這是一個死循環(huán))while.else 語 句 形 式 : while 判斷條件:代碼塊else:代碼塊else中的代碼塊會在while循環(huán)正常執(zhí)行完的情況下執(zhí)行,如果wh

26、ile循環(huán)被break中斷,else中的代碼塊不會執(zhí)行。實例1:while循環(huán)正常執(zhí)行結(jié)束的情況(else中的語句會被執(zhí)行) while_esle.pycount = 0while count =9: print(count) count += 1else:print(end)執(zhí)行結(jié)果為:0 1 2 3 4 5 6 7 8 9 end實例2:while循環(huán)被中斷的情況(else中的語句不會被執(zhí)行) while_break.pycount = 0while count =9: print(count) if count = 5:break count += 1else:print(end)輸出結(jié)

27、果:0 1 2 3 4 5循環(huán)控制語句可以更改循環(huán)體中程序的執(zhí)行過程,如中斷循環(huán)、跳過本次循環(huán)。循環(huán)控制語句說明break終止整個循環(huán)continue跳過本次循環(huán),執(zhí)行下一次循環(huán)passpass語句是個空語句,只是為了保持程序結(jié)構(gòu)的完整性,沒有什么特殊含義。pass語句并不是只能用于循環(huán)語句中,也可以用于分支語句中。循環(huán)嵌套是指:在一個循環(huán)體里面嵌入另一循環(huán)。實例1:通過while循環(huán)打印99乘法表j = 1while j = 9:i = 1while i = 3:break print(namesi)輸出結(jié)果:TomPeterJerry包、模塊、函數(shù)1、-Python的程序由 包(packa

28、ge)、模塊(module)、函數(shù) 組成. 2、-包是一系列模塊組成的集合.3、-模塊 是處理某一類問題的函數(shù)和類的集合.包1、-包 就是一個完成特定任務(wù)的工具箱,Python提供了許多有用的工具包,如字符串處理、圖形用戶接口、web應(yīng)用、圖像圖形處理等這些自帶的工具包和模塊安裝在Python的安裝目錄下的Lib目錄2、-文件 init .py 包的注冊文件.3、-包中至少含有一個 init .py文件,該文件的內(nèi)容可以為空. init .py 用于標識當前文件夾是一個包模塊和函數(shù)-Python的程序是由一個個模塊組成,一個Python文件就是一個模塊.-模塊把一組相關(guān)的函數(shù)或代碼組織到一個文

29、件中.-當導(dǎo)入一個模塊時,Python 依次查找-當前目錄,-lib目錄, %python%lib-site-packages目錄 %python%libsite-packages-環(huán)境變量PYTHONPATH指定的目錄可通過sys.path語句搜索模塊的查找路徑模塊和函數(shù)-myModule.py定義函數(shù) 和 類-callModule.py 導(dǎo)入myModule, 調(diào)用函數(shù)和類的成員- myModule.py - callModule.py -模塊的導(dǎo)入在使用一個模塊中的函數(shù)或類之前, 首先需要導(dǎo)入該模塊. import module_name from module_name import

30、func_name from module_name import *注: import語句可以多次導(dǎo)入, 即使導(dǎo)入同一模塊import語句可以置于程序中的任意位置, 甚至可以置于條件語句if 1 0 :import os print os.path模塊中的if name = main :1: name 是一個變量。前后加了雙下劃線是因為是因為這是系統(tǒng)定義的名字。普通變量不要使用此方式命名變量。2:Python有很多模塊,而這些模塊是可以獨立運行的!這點不像C+和C的頭文件。3:import的時候是要執(zhí)行所import的模塊的。4: name 就是標識模塊的名字的一個系統(tǒng)變量。這里分兩種情況:假如當前模塊是主模塊(也就是調(diào)用其他模塊的模塊),那么此模塊名字就是 main ,通過if判斷這樣就可以執(zhí)行“ mian :”后面的主函數(shù)內(nèi)容;假如此模塊是被import的,則此模塊名字為文件名字(不加后面的.py),通過if判斷這樣就會跳過“ mian :”后面的內(nèi)容。面向?qū)ο缶幊桃粋€類占有一個獨立的空間,類中的屬性(函數(shù)外)叫做類變量,類中的函數(shù),叫做類的方法。類中的方法第一個參數(shù)self,表示的是實例對象,不是類。類(Class):用來描述具有相同的屬性和方法的對象的集合。它定義了該集合中每個實例對象所

溫馨提示

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

評論

0/150

提交評論