Python程序設計基礎教程課件CH02 Python語言基礎_第1頁
Python程序設計基礎教程課件CH02 Python語言基礎_第2頁
Python程序設計基礎教程課件CH02 Python語言基礎_第3頁
Python程序設計基礎教程課件CH02 Python語言基礎_第4頁
Python程序設計基礎教程課件CH02 Python語言基礎_第5頁
已閱讀5頁,還剩58頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2.1python程序編寫風格

程序格式框架是指代碼語句段落的格式,這是python程序格式區(qū)別于其它語言的獨特之處,有助于提高代碼的可讀性和可維護性。1、縮進Python語言采用縮進的嚴格規(guī)范來表示程序間的邏輯關系。例如:x2=1#第1行foriinrange(9,0,-1):#第2行x1=(x2+1)*2#第3行x2=x1#第4行print(x1)#第5行

其中,第2行與第3、4行表示邏輯關系??s進指每行語句開始前的空白區(qū)域,用來表示Python程序間的包含和層次關系。沒有邏輯關系代碼一般不縮進,頂行且不留空白。當使用if、while、for、def、class等結構時,語句后通過冒號(:)結尾之后在下行進行左縮進,即表示后續(xù)代碼與緊鄰無縮進語句的所屬關系。代碼編寫中,縮進可使用跳格鍵tab實現(xiàn),也可以用多個空格鍵實現(xiàn),一般是4個空格。Python中對語句之間的層次關系沒有限制,可以嵌套使用多層縮進。在編寫程序運行時,如出現(xiàn)“unexpectedindent”錯誤,則說明存在語句縮進不匹配問題。2、注釋

注釋是代碼中的輔助性文字,方便閱讀理解代碼含議,注釋的內(nèi)容不會被執(zhí)行。Python中采用“#”號表示注釋,注釋單行時,只要寫在注釋內(nèi)容的前面即可,注釋多行時,每一行的前面都必須要寫。

例如:>>>sum=0#給s賦值>>>print(sum)#輸出變量sum的值3、續(xù)行符Python程序是逐行編寫的,每行代碼長度并不限制,但若一行語句寫太長不利于閱讀,因此,python提供了反斜杠(“\”)作為續(xù)行符,可將單行分割為多行來編寫。

例如:print(“{}是{}的省會”.format(\“福州”,\“福建”\))

上述代碼等價于下面的一行語句。print(“{}是{}的省會”.format(“福州”,“福建”))

說明:使用續(xù)行符時,續(xù)行符后面不能留有空格,續(xù)行符后面必須直接換行。2.2變量

變量是內(nèi)存中命名的存儲位置,它的值可以動態(tài)變化。Python的標識符命名規(guī)劃如下:

(1)標識符名字的第1個字符必須是中文漢字、英文字母或下畫線(_),后面可以由中文漢字、英文字母、下畫線(_)或數(shù)字(0~9)組成。例如:駱luo,_number、score123等。

(2)標識符名字是區(qū)分大小寫的。Abcd和abcd是兩個不同的變量

(3)禁止使用Python保留字(或稱關鍵字,見書本表2-1)Python支持多種格式的賦值語句。1、簡單賦值

簡單賦值用于為一個變量建立對象引用。

例如:x=1。2、序列賦值

序列賦值指等號左側(cè)是元組、列表表示的多個變量名,右側(cè)是元組、列表或字符串等序列表示的值。

序列賦值可以一次性為多個變量賦值。Python順序匹配變量名和值。

例如:>>>a,b=1,2#使用省略圓括號的元組賦值>>>a,b(1,2)>>>a,b=(10,20)#使用元組賦值>>>a,b(10,20)>>>[a,b]=[30,’ab’]#使用列表賦值>>>a,b(30,’ab’)

當?shù)忍栍覝y為字符串時,Python會將字符串分解為單個字符,依次賦值給每個變量。此時,變量的個數(shù)和字符個數(shù)必須相等,否則會出錯。

例如:>>>(x,y,z)=‘a(chǎn)bc’#用字符串賦值>>>x,y,z(‘a(chǎn)’,’b’,’c’)>>>(x,y,z)=‘de’#提示錯誤

可以在變量名之前使用“*”,為變量創(chuàng)建列表對象引用。此時,不帶星號的變量匹配一個值,剩余的值作為列表對象。

例如:>>>x,*y=‘a(chǎn)bc’#x匹配第一個字符,其余字符作為列表匹配給y>>>x,y(‘a(chǎn)’,[‘b’,’c’])3、多目標賦值

多目標賦值指用連續(xù)的多個“=”為變量賦值。

例如:>>>a=b=c=10#將10賦值給變量a,b,c>>>a,b,c(10,10,10)

說明:這種情況下作為值的整數(shù)對象10在內(nèi)存中只有一個,變量a、b、c引用的是同一個變量。4、增強賦值

增強賦值指運算符與賦值相結合的賦值語句。

例如:>>>a=10>>>a+=20#等價于a=a+20>>>a302.3python數(shù)據(jù)類型Python中有6個標準的數(shù)據(jù)類型:Number(數(shù)字)、String(字符串)、List(列表)、Tuple(元組)、Dictionary(字典)、Set(集合)。2.3.1Number(數(shù)字)

數(shù)字是程序處理的一種基本數(shù)據(jù),Python核心對象包含的常用數(shù)字類型有:整形(int)、浮點型(float)、布爾型(bool)以及與之相關的語法和操作。同時Python提供了復數(shù)(complex)以及無窮精度的長整型(long)。

(3)布爾型bool只有兩個值True和False。

(4)復數(shù)

復數(shù)常量表示為“實部+虛部”形式,虛部以j或J結尾。

例如:10+2j

使用type()函數(shù)可以查詢變量所指的對象類型。

例如:>>>a,b,c,d=10,10.5,True,10+2j>>>print(type(a),type(b),type(c),type(d))<class‘int’><class‘float’><class‘bool’><class‘complex’>2.3.2String(字符串)

字符串是一個有序的字符的集合,用來存儲和表現(xiàn)基于文本的信息。Python字符串有多種表示方式。1、單引號和雙引號

在表示字符常量時,單引號和雙引號可以互換,可以用單引號或者是雙引號兩種形式返回相同類型的對象。同時單引號字符串可以嵌入雙引號或在雙引號中嵌入單引號。

例如:>>>‘a(chǎn)b’,”ab”(‘a(chǎn)b’,’ab’)>>>‘12”ab’‘12”ab’>>>”12’ab”“12’ab”2、三引號

在表示字符常量時,三引號通常用來表示多行字符串,也被稱為塊字符。在顯示時,字符串中的各種控制字符以轉(zhuǎn)義字符顯示。

例如:>>>str=‘‘‘thisisstringthisispythonstring’’’>>>print(str)thisisstringthisispythonstring

說明:

(1)字符串可以使用+運算符將字符串連接在一起,或者用*運算符重復字符串。

例如:>>>print(‘str’+’ing’,’my’*3)stringmymymy

(2)Python中的字符串有兩種索引方式,第一種是從左往右,從0開始依次增加;第二種是從右往左,從-1開始依次減少。

例如:>>>word=‘hello’>>>print(word[0],word[4])ho>>>print(word[-1],word[-5])oh

(3)可以對字符串進行切片,即獲取子串。用冒號分隔兩個索引,格式為:變量[頭下標:尾下標]。截取的范圍是前閉后開的,并且兩個索引都可以省略。例如:>>>word=‘Pythoniseasy’>>>word[6:8]‘is’>>>word[:]‘Pythoniseasy’>>>word[6:]‘iseasy’3、轉(zhuǎn)義字符

在字符中使用特殊字符時,Python用反斜杠(\)轉(zhuǎn)義字符。其常用轉(zhuǎn)義字符見書本表2-2所示。4、帶r或R前綴的Raw字符串

由于在Python中不會解析其字符串中的轉(zhuǎn)義字符,利用Raw字符串來解決打開Windows系統(tǒng)中文件路徑的問題。

例如:path=open(‘d:\temp\newpy.py’,’r’)Python會將文件名字符串中的\t和\n處理為轉(zhuǎn)義字符。為避免這種情況,可將文件名中的反斜線表示為轉(zhuǎn)義字符,即:path=open(‘d:\\temp\\newpy.py’,’r’)

另一種表示方法,將反斜線用正斜線表示,即:path=open(‘d:/temp/newpy.py’,’r’)

或者使用Raw字符串來表示文件名字符串。例如:path=open(r’d:\temp\newpy.py’,’r’),這里r或R不區(qū)分大小寫。

2.4python運算符與表達式Python中有豐富的運算符,包括算術運算符、關系運算符、字符串運算符、邏輯運算符。

表達式是由運算符和圓括號將常量、變量和函數(shù)等按一定規(guī)則組合在一起的式子。根據(jù)運算符的不同,Python有算術運算符、關系表達式、字符串表達式、邏輯表達式。

2.4.1算術運算符和表達式

算數(shù)運算符包括加(+)、減(-)、乘(*)、除(/)、取余(%)、取整(//)、冪運算(**)。Python常用的算術運算符見下表所示。

運算符說明實例運算符說明實例+加1+2輸出的結果為3%取余7%2輸出的結果為1-減1-2輸出的結果為-1//取整7//2輸出的結果為3*乘1*2輸出的結果為2**冪運算2**3輸出的結果為8/除1/2輸出的結果為0.5

例2-1:算術運算符及表達式舉例。add=2+3print(“%d+%d=%d”%(2,3,add))#加法運算并輸出,輸出結果為2+3=5sub=2-3print(“%d-%d=%d”%(2,3,sub))#減法運算并輸出,輸出結果為2-3=-1mul=2*3print(“%d*%d=%d”%(2,3,mul))#乘法運算并輸出,輸出結果為2*3=6div=6/2print(“%d/%d=%d”%(6,2,div))#除法運算并輸出,輸出結果為6/2=3

mod=7%2print(“%d%%%d=%d”%(7,2,mod))#計算余數(shù)并輸出,輸出結果為7%2=1fdiv=7//2print(“%d//%d=%.lf”%(7,2,fdiv))#整除運算并輸出,輸出結果為7//2=3power=2**3print(“%d**%d=%d”%(2,3,power))#乘方運算并輸出,輸出結果為2**3=82.4.2賦值運算符和表達式

賦值運算除了一般的賦值運算(=)外,還包括各種復合賦值運算。例如:+=、-=、*=、/=等。其功能是把賦值號右邊的值賦給左邊變量所在的存儲單元。賦值運算符及表達式見書本表2-4所示。

例2-2:賦值運算符舉例a=15b=10c=0c=a+bprint(“valueofcis”,c)#輸出結果為valueofcis25c+=aprint(“valueofcis”,c)#輸出結果為valueofcis40c*=aprint(“valueofcis”,c)#輸出結果為valueofcis600c/=aprint(“valueofcis”,c)#輸出結果為valueofcis40.0c=2c%=aprint(“valueofcis”,c)#輸出結果為valueofcis2c**=aprint(“valueofcis”,c)#輸出結果為valueofcis32768c//=aprint(“valueofcis”,c)#輸出結果為valueofcis21842.4.3關系運算符和表達式

關系運算符也稱比較運算符,用來對兩個表達式的值進行比較,比較的結果為邏輯值。若關系成立返回True,若關系不成立返回False。

在Python中常用的關系運算符及其表達式見書本表2-6所示。

例如:>>>5<8and5==8#結果:False>>>5>8or5<8#結果:True>>>not5.8>=5#結果:False>>>5<6<7#結果:True

2.4.4邏輯運算符和表達式

邏輯運算符是執(zhí)行邏輯運算的運算符。邏輯運算也稱布爾運算,運算結果是邏輯真(True)或邏輯假(False)。Python常用的邏輯運算符有not、and和or操作。邏輯運算符及其表達式見下表所示。

運算符說明實例not邏輯非notx:x為真返回False,x為假返回Trueand邏輯與xandy:x、y同時為真返回True,否則返回Falseor邏輯或xory:x、y只要其中一個為真返回True,都為假則返回False

例2-3:邏輯運算符舉例。a=2b=5c=0print("a>bandb<c的結果",a>bandb<c)print("a>bandb>c的結果",a>bandb>c)print("a>borb<c的結果",a>borb<c)print("a>borb>c的結果",a>borb>c)print("a>bornot(b<c)的結果",a>bornot(b<c))print("nota>bornot(b<c)的結果",nota>bornot(b<c))輸出結果為:a>bandb<c的結果Falsea>bandb>c的結果Falsea>borb<c的結果Falsea>borb>c的結果Truea>bornot(b<c)的結果Truenota>bornot(b<c)的結果True2.4.5字符串運算符和表達式1、字符串運算符和表達式

在Python中同樣提供了對字符串進行相關處理的操作,常用的字符串運算符及表達式見書本表2-7所示。

例2-4:字符串運算符舉例。a=”python”b=”easy”print(“a+b輸出結果:”,a+b)#a+b輸出結果:pythoneasyprint(“a*2輸出結果:”,a*2)#a*2輸出結果:pythonpythonprint(“a[1]輸出結果:”,a[1])#a[1]輸出結果:yprint(“a[1:6]輸出結果:”,a[1:6])#a[1:6]輸出結果:ythonif(“n”ina):print(“n在變量a中”)else:print(“n不在變量a中”)#n在變量a中if(“m”notina):print(“m不在變量a中”)else:print(“m在變量a中”)print(r”\n”)#m不在變量a中#\n2、字符串的格式化

編寫程序的過程中,經(jīng)常需要進行格式化輸出,Python中提供了字符串格式化操作符“%”,格式化字符串時,Python使用一個字符串作為模板。模板中有格式符,這些格式符為真實預留位置,并說明真實數(shù)值應該呈現(xiàn)的格式。

例如:>>>print(“I’m%s.I’m%dyearsold”%(‘student’,20))I’mstudent.I’m20yearsold

說明:%s為第一個格式符,表示一個字符串。%d為第二個格式符,表示一個整數(shù)。(‘student’,20)的兩個元素’student’和20分別替換%s和%d的真實值。在模板和元組之間,有一個%號分隔,它代表了格式化操作。Python中格式符可以包含的類型見書本表2-8所示。

例2-5:字符串的格式化操作舉例。a=50print(“%dtohexis%x”%(a,a))

輸出結果為:50tohexis32f=3.1415926print(“valueoffis%.4f”%f)

輸出結果為:valueoffis3.1416students=[{“name”:”susan”,”age”:19},{“name”:”zhaosi”,”age”:20},{“name”:”wangwu”,”age”:21}]print(“name:%10s,age:%10d”%(students[0][“name”],students[0][“age”]))

輸出結果為:name:susan,age:19print(“name:%-10s,age:%-10d”%(students[1][“name”],students[1][“age”]))

輸出結果為:name:zhaosi,age:202.4.6

位運算符和表達式

位運算符是把數(shù)字看作二進制進行計算,Python中的位運算符及其表達式見書本表2-10所示。1、按位與

兩個操作數(shù)x、y按相同位置的進行與操作,兩個位置上都是1時,其結果為1,否則為0。

例如:a=00101111

#十進數(shù)是47b=00010101

#十進數(shù)是21a&b=00000101

#十進數(shù)是5

2、按位或

兩個操作數(shù)x、y按相同位置的進行或操作,只要有一個位置上是1時,其結果為1,否則為0。

例如:a=00101111b=00010101a|b=00111111

#十進數(shù)是63

3、按位異或

兩個操作數(shù)x、y按相同位置的進行異或操作,位置上的數(shù)相同時,其結果為0,否則為1。

例如:a=00101111b=00010101a^b=00111010#十進數(shù)是58

4、按位取反

操作數(shù)x的二進制位中,1取反為0,0取反為1,符號位也參與操作。

例如:a=00101111~a=11010000#十進數(shù)是-48

5、按位左移

兩個操作數(shù)x、y,將x按二進制形式向左移動y位,末尾補0,符號位保持不變。向左移動一位等同于乘以2。

a<<2=10111100#十進數(shù)是188

6、按位右移

兩個操作數(shù)x、y,將x按二進制形式向右移動y位,符號位保持不變。向右移動一位等同于除以2。

a>>2=00001011#十進數(shù)是11

2.4.7運算符的優(yōu)先級

每一種運算符都有一定的優(yōu)先級,用來決定它在表達式中的運算次序。各類運算符的優(yōu)先級見書本表2-11所示,運算符優(yōu)先級依次從高到低。

如果表達式中包含括號,Python會首先計算括號內(nèi)的表達式,然后將結果用在整個表達式中。例如:計算表達式a+b*(c-d)/e時,運算符的運算次序依次為:()、*、/、+。

例2-6:運算符優(yōu)先級舉例。a=10;b=15;c=20;d=5;e=0;e=(a+b)*c/dprint(“(a+b)*c/d運算結果為:”,e)e=((a+b)*c)/dprint(“((a+b)*c)/d運算結果為:”,e)e=(a+b)*(c/d)print(“(a+b)*(c/d)運算結果為:”,e)e=a+(b*c)/dprint(“a+(b*c)/d運算結果為:”,e)輸出結果為:(a+b)*c/d運算結果為:100.0((a+b)*c)/d運算結果為:100.0(a+b)*(c/d)運算結果為:100.0a+(b*c)/d運算結果為:70.02.5python常用函數(shù)

1、數(shù)據(jù)類型轉(zhuǎn)換函數(shù)

程序在編寫過程中時常需要對數(shù)據(jù)類型進行轉(zhuǎn)換。Python中常用的數(shù)據(jù)類型轉(zhuǎn)換函數(shù)見書本表2-12所示。

例如:>>>int(3.6)3>>>int(‘12’,16)#如果是帶參數(shù)base的話,12要以字符串的形式進行輸入12為十六進制18

>>>long(‘123’)123L>>>x=7>>>eval(‘3*x’)21>>>s=’run’>>>str(s)‘run’

>>>dict={‘runoob’:’’,’google’:’’}#字典>>>repr(dict)"{'runoob':'','google':''}“>>>tuple([1,2,3,4])(1,2,3,4)>>>tuple({1:2,3:4})#針對字典,返回的是字典的key組成的tuple(1,3)

>>>atuple=(123,’xyz’,’abc’)>>>alist=list(atuple)>>>print(alist)[123,’xyz’,’abc’]>>>x=set(‘google’)>>>y=set(‘python’)>>>x,y({‘e’,’o’,’g’,’l’},{‘n’,’o’,’y’,’t’,’p’,’h’})#重復的被刪除掉>>>dict(a=’a’,b=’b’,c=’c’){‘a(chǎn)’:’a’,’b’:’b’,’c’:’c’}

2、常用的數(shù)學函數(shù)Python中的math模塊提供了基本的數(shù)學函數(shù)。使用時首先用importmath語句將math模塊導入。math模塊中常用的數(shù)學函數(shù)見書本表2-13所示。

例如:>>>abs(-100.1)100.1>>>pow(2,5)32

>>>importmath#導入math模塊>>>math.fabs(-100.1)100.1>>>math.exp(2)7.38905609893065>>>math.log10(2)0.3010299956639812>>>math.sqrt(4)2.0>>>math.floor(-100.1)-101

>>>math.ceil(-100.1)-100>>>math.sin(3)0.1411200080598672>>>math.cos(3)-0.9899924966004454>>>math.asin(-1)#參數(shù)必須是-1到1之間的數(shù)值。如果參數(shù)值大于1,會產(chǎn)生一個錯誤-1.5707963267948966

>>>math.acos(-1)#參數(shù)必須是-1到1之間的數(shù)值。如果參數(shù)值大于1,會產(chǎn)生一個錯誤3.141592653589793>>>math.tan(3)-0.1425465430742778>>>math.atan(3)1.2490457723982544>>>math.fmod(-10,3)-1.0

3、常用的字符串處理函數(shù)Python提供了常用的字符串處理函數(shù),見表2-14所示。

例如:>>>string=”pythoniseasy”>>>string.capitalize()‘Pythoniseasy’>>>string.center(20,’*’)‘***pythoniseasy***’

>>>string.count(“s”)2>>>str=”is”>>>string.endswith(str,2,9)Tr

溫馨提示

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

評論

0/150

提交評論