邏輯式程序設(shè)計(jì)語(yǔ)言-程序設(shè)計(jì)語(yǔ)言原理課件_第1頁(yè)
邏輯式程序設(shè)計(jì)語(yǔ)言-程序設(shè)計(jì)語(yǔ)言原理課件_第2頁(yè)
邏輯式程序設(shè)計(jì)語(yǔ)言-程序設(shè)計(jì)語(yǔ)言原理課件_第3頁(yè)
邏輯式程序設(shè)計(jì)語(yǔ)言-程序設(shè)計(jì)語(yǔ)言原理課件_第4頁(yè)
邏輯式程序設(shè)計(jì)語(yǔ)言-程序設(shè)計(jì)語(yǔ)言原理課件_第5頁(yè)
已閱讀5頁(yè),還剩45頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、Python簡(jiǎn)介 Python概述 內(nèi)置數(shù)據(jù)類型 條件、循環(huán)語(yǔ)句 函數(shù)和函數(shù)式編程 面向?qū)ο缶幊?Python對(duì)數(shù)據(jù)分析和機(jī)器學(xué)習(xí)的支持Python概述 Python是一種開(kāi)源的 、解析性的,面向?qū)ο蟮木幊陶Z(yǔ)言; Python使用一種優(yōu)雅的語(yǔ)法,可讀性強(qiáng); Python支持類和多層繼承等的面向?qū)ο缶幊谭缎停?Python可運(yùn)行在多種計(jì)算機(jī)平臺(tái)和操作系統(tǒng)中,如unix,windows,MacOS,OS/2等等。https:/stackoverflow.blog/2017/09/06/incredible-growth-python/?cb=1Python 是訪問(wèn)量增長(zhǎng)最快的主流編程語(yǔ)言Pytho

2、n特性 面向?qū)ο?內(nèi)置豐富的數(shù)據(jù)結(jié)構(gòu) 簡(jiǎn)單性 健壯性 跨平臺(tái) 可擴(kuò)展 動(dòng)態(tài)性 強(qiáng)類型 應(yīng)用廣泛使用python安裝python, 請(qǐng)參閱: 運(yùn)行python腳本: 交互式運(yùn)行(在Windows平臺(tái)下有GUI界面) 執(zhí)行python腳本文件 在Linux/UNIX環(huán)境下運(yùn)行程序 在python頭部加一行:#! /usr/local/bin/python chmod +x myfile.py ./myfile.py (當(dāng)然也可以直接以python myfile 方式執(zhí)行)Python與其他語(yǔ)言比較 Python與其他語(yǔ)言比較 比Perl的語(yǔ)法和設(shè)計(jì)更簡(jiǎn)單 比

3、Java更簡(jiǎn)單、更易于使用 比C+更簡(jiǎn)單、更易于使用 比Visual Basic更強(qiáng)大也具備跨平臺(tái)特性 比Ruby更成熟、語(yǔ)法更具有可讀性 具備SmallTalk和Lisp等動(dòng)態(tài)類型的特性,但是對(duì)于開(kāi)發(fā)者定制系統(tǒng)的終端用戶來(lái)說(shuō)更簡(jiǎn)單,也更接近傳統(tǒng)編程語(yǔ)言的語(yǔ)法Python的缺點(diǎn) Python的缺點(diǎn) 運(yùn)行速度不夠快 開(kāi)發(fā)速度與運(yùn)行速度之間的矛盾 至今還沒(méi)有一門編程語(yǔ)言,開(kāi)發(fā)速度比Python快,運(yùn)行速度比C快Python簡(jiǎn)介 Python概述 內(nèi)置數(shù)據(jù)類型 條件、循環(huán)語(yǔ)句 函數(shù)和函數(shù)式編程 面向?qū)ο缶幊?Python對(duì)數(shù)據(jù)分析和機(jī)器學(xué)習(xí)的支持內(nèi)置數(shù)據(jù)類型 內(nèi)置數(shù)據(jù)類型: 列表(List), 元組

4、(Tuple), 字典(Dictionary或Hash), 序列 變量的定義: 在Python中,變量的類型是由賦給它的數(shù)值定義的; q = 7 #q其為數(shù)值型變量 q = “Seven” #q為字符串型變量序列 序列是具有索引和切片能力的集合; 切片:把序列切成小塊; 列表、元組和字符串具有通過(guò)索引訪問(wèn)某個(gè)具體的值,或通過(guò)切片返回一段切片的能力; 列表、元組、字符串都屬于序列。列表(List) List是一種有序的集合,可以隨時(shí)添加和刪除其中的元素。List里數(shù)據(jù)類型可以不同; classmates = 張三, 李四, 王二 用索引來(lái)訪問(wèn)List中每一個(gè)位置的元素,索引是從0開(kāi)始的: cla

5、ssmates0 張三列表(List) List對(duì)象支持的方法 append(x) count(x) :x在List中的個(gè)數(shù) extend(L) Index(x) insert(i, x) pop(x) remove(x) reverse() sort()元組(Tuple) List和Tuple是Python內(nèi)置的有序集合:一個(gè)可變,一個(gè)不可變; classmates = (張三, 李四, 王二) 元組可以用方括號(hào)括起下標(biāo)做索引; 元組一旦創(chuàng)建就不能改變; 列表大部分操作同樣適用于元組,沒(méi)有append(),insert()方法。字典(Hash) 字典是一個(gè)用大括號(hào)括起來(lái)的鍵值對(duì),字典元素分為

6、兩部份,鍵(key)和值(value)。 字典是python中唯一內(nèi)置映射數(shù)據(jù)類型。通過(guò)指定的鍵從字典訪問(wèn)值。 字典與列表最大的不同是,字典是無(wú)序的,字典中的元素可以通過(guò)健來(lái)訪問(wèn)的; 字典也是可變的,可以包含任何其他類型,字典中沒(méi)有位置的概念。 例如:“取字典的第一個(gè)元素?” 說(shuō)法錯(cuò)誤,因?yàn)樽值錄](méi)有位置概念; 字典的使用: a = a:aa, b:bb ac=cc aa / aa字典(Hash) 字典的常用方法: has_key(x) keys() values() items() clear() copy() update(x) get(x,y)集合(Set) Set和Hash類似,也是一組

7、key的集合,但不存儲(chǔ)value。由于key不能重復(fù),所以,在Set中,沒(méi)有重復(fù)的key。 要?jiǎng)?chuàng)建一個(gè)Set,需要提供一個(gè)List作為輸入集合:s1= set(1, 2, 3),s2 = set(2, 3, 4) 兩個(gè)Set可以做數(shù)學(xué)意義上的交集、并集等操作: s1 & s2 2, 3列表、元組、字典的共同點(diǎn) 都屬于Python內(nèi)置數(shù)據(jù)結(jié)構(gòu); 都用于管理多個(gè)元素; 都是線性結(jié)構(gòu); 都提供豐富的對(duì)管理元素進(jìn)行操作的功能; 列表、元素、字典中各元素均采用逗號(hào)進(jìn)行分隔; 列表、元組、字典內(nèi)各元素類型可以不同;列表、元組、字典的不同點(diǎn) 列表內(nèi)元素用括號(hào)包裹,元組內(nèi)元素用小括號(hào)()包裹,字典內(nèi)元素用大括

8、號(hào)包裹; 列表、字典內(nèi)的元素個(gè)數(shù)及元素的值可以修改,元組內(nèi)的元素個(gè)數(shù)及元素的值不可以修改(元組可以看出是只讀的列表);Python簡(jiǎn)介 Python概述 內(nèi)置數(shù)據(jù)類型 條件、循環(huán)語(yǔ)句 函數(shù)和函數(shù)式編程 面向?qū)ο缶幊?Python對(duì)數(shù)據(jù)分析和機(jī)器學(xué)習(xí)的支持條件、循環(huán)語(yǔ)句 結(jié)構(gòu)化程序設(shè)計(jì)的三種基本結(jié)構(gòu): 順序結(jié)構(gòu) 選擇結(jié)構(gòu) 循環(huán)結(jié)構(gòu) Python支持三種不同的控制結(jié)構(gòu):if,for和while,不支持C語(yǔ)言中的switch語(yǔ)句。if 條件語(yǔ)句 if 語(yǔ)句的用法:if EXPRESSION1: STATEMENT1elif EXPRESSION2:STATEMENT2else: STATEMENT3

9、for循環(huán)語(yǔ)句 for語(yǔ)句的用法:mylist = for statementfor word in mylist:print wordelse: #最終執(zhí)行 print End listwhile循環(huán)語(yǔ)句 while語(yǔ)句的用法:a = 0while a 5: a = a + 1 print aelse:print as value is fivebreak、continue、pass語(yǔ)句 break: 跳出最近的整個(gè)循環(huán)(跳出整個(gè)循環(huán)語(yǔ)句); continue: 跳出本次循環(huán)(后面的代碼)(繼續(xù)執(zhí)行下一個(gè)循環(huán)); pass: 空占位語(yǔ)句,不作任何事情; break語(yǔ)句與continue語(yǔ)句的

10、區(qū)別: break語(yǔ)句跳出整個(gè)循環(huán); 而continue語(yǔ)句只是跳出當(dāng)前循環(huán)(continue后面的語(yǔ)句將不再執(zhí)行),會(huì)繼續(xù)執(zhí)行下一次循環(huán)。Python簡(jiǎn)介 Python概述 內(nèi)置數(shù)據(jù)類型 條件、循環(huán)語(yǔ)句 函數(shù)和函數(shù)式編程 面向?qū)ο缶幊?Python對(duì)數(shù)據(jù)分析和機(jī)器學(xué)習(xí)的支持函數(shù)和函數(shù)式編程1. 函數(shù)定義2. 函數(shù)變量作用域3. 函數(shù)參數(shù)4. Lambda函數(shù)5. 常用內(nèi)置函數(shù)6. 函數(shù)高級(jí)主題Python 函數(shù)定義 函數(shù)定義:def function_name(arg1,arg2,.):statementreturn value 函數(shù)名: 函數(shù)名必須以下劃線或字母下劃線或字母開(kāi)頭,可以包含任

11、意字母、數(shù)字或下劃線的組合。不能使用任何的標(biāo)點(diǎn)符號(hào); 函數(shù)名是區(qū)分大小寫(xiě)的; 函數(shù)名不能是保留字。Python 函數(shù)作用域 Python使用名稱空間的概念存儲(chǔ)對(duì)象,這個(gè)名稱空間就是對(duì)象作用的區(qū)域, 不同對(duì)象存在于不同的作用域。 不同對(duì)象的作用域規(guī)則不同對(duì)象的作用域規(guī)則: 每個(gè)模塊都有自已的全局作用域。 函數(shù)定義的對(duì)象屬局部作用域,只在函數(shù)內(nèi)有效,不會(huì)影響全局作用域中的對(duì)象。 賦值對(duì)象屬局部作用域,除非使用global關(guān)鍵字進(jìn)行聲明。 LGB規(guī)則 大多數(shù)名字引用在三個(gè)作用域中查找:先局部(Local),次之全局(Global),再次之內(nèi)置(Build-in)。若仍然找不到這個(gè)變量名,則引發(fā)Nam

12、eError異常。Python 函數(shù)參數(shù) 函數(shù)的參數(shù)分類: 默認(rèn)參數(shù):def function(ARG=VALUE) 元組參數(shù):def function(*ARG) 字典參數(shù):def function(*ARG) 一些規(guī)則: 默認(rèn)值必須在非默認(rèn)參數(shù)之后; 在單個(gè)函數(shù)定義中,只能使用一個(gè)tuple參數(shù)(*ARG)和一個(gè)字典參數(shù)(*ARG); tuple參數(shù)必須在連接參數(shù)和默認(rèn)參數(shù)之后; 字典參數(shù)必須在最后定義。lambda函數(shù) Python允許用lambda關(guān)鍵詞創(chuàng)造匿名函數(shù),匿名是因?yàn)椴恍枰詷?biāo)準(zhǔn)的方式來(lái)聲明,比如說(shuō),使用def語(yǔ)句,然而,作為函數(shù),它們也能有參數(shù)。 這個(gè)表達(dá)式的定義體必須和聲

13、明放在同一行: 語(yǔ)法: lambda (parameters): expression lambda函數(shù)可看做僅有參數(shù)的特殊函數(shù),后面必須是表達(dá)式或調(diào)用別的函數(shù)。 g=lambda x:x*2 g(3) / 6 g(“abcd”) / abcdabcd內(nèi)置特殊函數(shù) Abs ( x ):abs ( ) 返回一個(gè)數(shù)字的絕對(duì)值,如果給出復(fù)數(shù),返回值就是該復(fù)數(shù)的模。 Callable ( object ) :callable ( ) 函數(shù)用于測(cè)試對(duì)象是否可調(diào)用,如果可以則返回True,否則返回False,可調(diào)用對(duì)象包括函數(shù)、方法、代碼對(duì)象、類和已經(jīng)定義了“調(diào)用”方法的類實(shí)例。 Isinstance (

14、 object, class-or-str-or-tuple ) :測(cè)試對(duì)象類型 ,如果為真,返回為True,如果為假,返回為False,如isinstance (a, str ) 。 divmod ( x, y ) : divmod ( x, y ) 函數(shù)完成除法運(yùn)算,返回商和余數(shù)。 pow (x, y ,z ) : pow ( ) 函數(shù)返回以x為底,y為指數(shù)的冪,如果給出z值,該函數(shù)就計(jì)算 x 的 y次冪值被 z 取模的值。 len ( object ):len ( ) 函數(shù)返回字符串和序列的長(zhǎng)度。函數(shù)高級(jí)主題 函數(shù)嵌套(embedded) Python函數(shù)是可以嵌套的,也就是說(shuō)可以將一個(gè)

15、函數(shù)放在另一個(gè)函數(shù)里面。 函數(shù)遞歸(recursion) Python函數(shù)是可以遞歸的,意思是函數(shù)可以調(diào)用函數(shù)自身,就是函數(shù)自己調(diào)用自己。def func(n): def func1(m): print(n*m) return n*m return func1print(func(10)(9)901000000000def factorial(n): if n=1: return 1 else: return n*factorial(n-1) factorial (10)3628800 factorial (50)3041409320171337804361260816606476884437

16、7641568960512000000000000經(jīng)典階乘運(yùn)算經(jīng)典階乘運(yùn)算Python簡(jiǎn)介 Python概述 內(nèi)置數(shù)據(jù)類型 條件、循環(huán)語(yǔ)句 函數(shù)和函數(shù)式編程 面向?qū)ο缶幊?Python對(duì)數(shù)據(jù)分析和機(jī)器學(xué)習(xí)的支持Python 面向?qū)ο缶幊?. 類與對(duì)象的定義2. 類的構(gòu)造函數(shù)3. 類與對(duì)象特點(diǎn)Python 面向?qū)ο缶幊?類和對(duì)象是面向?qū)ο缶幊痰膬蓚€(gè)主要方面: 類創(chuàng)建一個(gè)新類型,而對(duì)象是這個(gè)類的實(shí)例 ; 這類似于上面一個(gè)類Bird(),而b1是類Bird的一個(gè)實(shí)例,也就是類的一個(gè)對(duì)象(實(shí)例); 類的組成元素: 關(guān)鍵字(類):class 類的名字: Class_name 構(gòu)造函數(shù): _init_(s

17、elf) / 在其他語(yǔ)言中,self稱為”this”; 類的方法: class_func(self, argv) 類的特性: class_variablePython 面向?qū)ο缶幊?對(duì)象定義: class_object_1 = Class_Name() 對(duì)象特性: class_object_1.class_variable 對(duì)象方法: class_object_1.class_func(argv) class_object_1 = Class_Name() class_object_2 = Class_Name() class_object_1.class_variable class_obj

18、ect_2.class_variable class_object_1.class_func(argv) class_object_2.class_func(argv)Python 類的構(gòu)造函數(shù) 對(duì)實(shí)例成員變量進(jìn)行初始化時(shí),需要使用構(gòu)造方法構(gòu)造方法的定義格式: def _init_(self, 其他參數(shù)): 語(yǔ)句塊 當(dāng)定義類的對(duì)象時(shí)會(huì)自動(dòng)調(diào)用這個(gè)”_init_”方法。通過(guò)在變量和方法名之前加上兩個(gè)下劃線”_”前綴將其變?yōu)樗接谐蓡T,此時(shí),類之外的任何代碼都將無(wú)法訪問(wèn)私有成員。Python 類與對(duì)象特點(diǎn) 類也是對(duì)象 只有你使用關(guān)鍵字class, Python解釋器在執(zhí)行的時(shí)候,就會(huì)創(chuàng)建一個(gè)對(duì)象;

19、下面的代碼段: class ObjectCreator (object): pass my_object = ObjectCreator () 我們稱這個(gè)對(duì)象為類對(duì)象,因?yàn)樵搶?duì)象可以實(shí)例化,創(chuàng)建實(shí)例對(duì)象,因此我們稱它為類。Python 類與對(duì)象特點(diǎn) 訪問(wèn)控制機(jī)制 Python提供的訪問(wèn)控制機(jī)制,分別是: public和private;Python中,如果函數(shù)、類方法和屬性如果以兩個(gè)下劃線開(kāi)頭,但是不以兩個(gè)下劃線結(jié)束,它就是private的,其他的一切都是public的。Python 類與對(duì)象特點(diǎn) Python的類層次結(jié)構(gòu): Python 2.2版本以后,采用單根的類層次結(jié)構(gòu); 單根層次結(jié)構(gòu):所

20、有類是否都應(yīng)從單獨(dú)一個(gè)基礎(chǔ)類繼承? 在Python中,所有類都是Object類的子類。Python中類與對(duì)象的關(guān)系中類與對(duì)象的關(guān)系Python 類與對(duì)象特點(diǎn) Python采用兩種繼承方式: 普通繼承方式; super繼承方式;普通繼承方式super繼承方式在在super機(jī)制里可機(jī)制里可以保證公共父類僅以保證公共父類僅被執(zhí)行一次。被執(zhí)行一次。Python 類與對(duì)象特點(diǎn) Python允許單繼承、多繼承和多重繼承;單繼承實(shí)例單繼承實(shí)例多重繼承實(shí)例多重繼承實(shí)例多繼承實(shí)例多繼承實(shí)例Python 類與對(duì)象特點(diǎn) 類與對(duì)象多態(tài) 多態(tài)意味著就算不知道變量所引用的對(duì)象類型是什么,還是能對(duì)它進(jìn)行操作,而且它也能根據(jù)

21、(或者類)對(duì)象的類型的不同而表現(xiàn)出不同的行為。多態(tài)多態(tài)類屬類屬方法覆蓋方法覆蓋參數(shù)傳遞參數(shù)傳遞 def add1(x,y): return x+y x=1,y=23 x=“spam”,y=Python add1(x,y)參數(shù)傳遞參數(shù)傳遞方法覆蓋方法覆蓋Python簡(jiǎn)介 Python概述 內(nèi)置數(shù)據(jù)類型 條件、循環(huán)語(yǔ)句 函數(shù)和函數(shù)式編程 面向?qū)ο缶幊?Python對(duì)數(shù)據(jù)分析和機(jī)器學(xué)習(xí)的支持?jǐn)?shù)據(jù)分析的一般過(guò)程Python對(duì)數(shù)據(jù)分析的支持Data collection and preparationExploration of dataAnalysisPython機(jī)器學(xué)習(xí)庫(kù) Python機(jī)器學(xué)習(xí)庫(kù) scik

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論