版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
《Python醫(yī)學(xué)數(shù)據(jù)分析(微課版)》第二章Python基礎(chǔ)
PythonMedicalDataAnalysisPython編碼規(guī)范2.1Python內(nèi)置數(shù)據(jù)類型2.2內(nèi)容導(dǎo)航CONTENTSPython運(yùn)算符和表達(dá)式2.3Python流程控制2.4Python函數(shù)2.52.1Python編碼規(guī)范縮進(jìn)實(shí)現(xiàn)方法:Tab鍵、多個(gè)空格(通常使用4個(gè)空格)Tab鍵和空格不能混用同一級(jí)別的代碼塊的縮進(jìn)必須相同代碼行長度:每行代碼通常不超過79個(gè)字符在注釋或文檔字符串中,每行的最大字符數(shù)為72個(gè)字符2.1.1代碼布局與縮進(jìn)2.1.2注釋注釋有利于程序理解和團(tuán)隊(duì)合作開發(fā)。據(jù)統(tǒng)計(jì),一個(gè)可維護(hù)性和可讀性都很強(qiáng)的程序一般會(huì)包含30%以上的注釋。常用的注釋方式:①以符號(hào)#開始,之后的內(nèi)容為注釋,不會(huì)被當(dāng)做代碼解釋和執(zhí)行②包含在一對(duì)三引號(hào)('''…''')或("""…""")之間,且不屬于任何語句的內(nèi)容為注釋2.1.3命名規(guī)則可以使用漢字、大小寫字母、數(shù)字和下劃線Python命名區(qū)分大小寫不能以數(shù)字開頭,不建議采用非英文字符對(duì)變量命名避免使用Python的關(guān)鍵字變量01通常使用首字母大寫的駝峰式命名方法,例如StudName避免使用Python內(nèi)建的類型名稱類03建議使用小寫字母和下劃線,單詞之間使用下劃線分隔可以提高可讀性避免使用Python內(nèi)置的函數(shù)名稱函數(shù)02包和模塊名均應(yīng)該短、所有的字母小寫模塊名可以使用下劃線來提高可讀性,例如my_module包名不建議使用下劃線包、模塊04Python編碼規(guī)范2.1Python內(nèi)置數(shù)據(jù)類型2.2內(nèi)容導(dǎo)航CONTENTSPython運(yùn)算符和表達(dá)式2.3Python流程控制2.4Python函數(shù)2.52.2Python內(nèi)置數(shù)據(jù)類型1.整數(shù)定義:整數(shù)(Integers)是沒有小數(shù)部分的數(shù)字類型:十進(jìn)制整數(shù)由0、1、2、3、4、5、6、7、8、9十個(gè)基本數(shù)字組成
如0、-1、9、1232.2.1整數(shù)、浮點(diǎn)數(shù)、復(fù)數(shù)十六進(jìn)制整數(shù)以“0x”或“0X”為開頭,后面使用0-9和A-F(或a-f)來表示整數(shù),其中A-F代表10-15
如0xA3F表示十進(jìn)制的2623(即10×162+3×161+15×160)八進(jìn)制整數(shù)以數(shù)字0o開頭,后面使用0-7來表示整數(shù)
如0o123表示十進(jìn)制的83(即1×82+2×81+3×80)二進(jìn)制整數(shù)使用0和1來表示整數(shù)
如二進(jìn)制數(shù)1010表示十進(jìn)制的10(即1×23+0×22+1×21+0×20)例2-1:使用Python進(jìn)行加法數(shù)學(xué)運(yùn)算整數(shù)的數(shù)學(xué)運(yùn)算Python的整數(shù)類型支持標(biāo)準(zhǔn)的數(shù)學(xué)運(yùn)算,如加法、減法、乘法、除法和取模等x=10
#定義一個(gè)變量x,賦值10y=20 #定義一個(gè)變量y,賦值20#進(jìn)行數(shù)學(xué)運(yùn)算sum=x+y #定義一個(gè)變量sum,將變量x和變量y的加法運(yùn)算結(jié)果賦值給sumprint(sum) #輸出變量sum的值,輸出結(jié)果為30整數(shù)的類型轉(zhuǎn)換方法可以使用int()函數(shù)將其他數(shù)值數(shù)據(jù)類型轉(zhuǎn)換為整數(shù)類型但是在轉(zhuǎn)換過程中可能會(huì)丟失精度,從而引發(fā)異?;蚪?cái)嗬?-2:使用int()函數(shù)將其他數(shù)值數(shù)據(jù)類型轉(zhuǎn)換為整數(shù)類型a=4 #定義一個(gè)變量a,賦值4b=3 #定義一個(gè)變量b,賦值3print(int(a/b))
#將a除b的值轉(zhuǎn)換為整數(shù)類型并輸出,輸出結(jié)果為12.浮點(diǎn)數(shù)定義:浮點(diǎn)數(shù)(Floating-pointnumbers)是有小數(shù)部分的數(shù)字。例如1.2、3.14159、-2.718、1.23e4、6.022e23、-9.81e-3類型轉(zhuǎn)換方法:可以通過float()函數(shù)將整數(shù)或字符串轉(zhuǎn)換為浮點(diǎn)數(shù)3.復(fù)數(shù)復(fù)數(shù)由實(shí)部和虛部組成,形式為a+bj,其中a是實(shí)部,b是虛部,j是虛數(shù)單位。類型轉(zhuǎn)換方法:可以通過complex()函數(shù)創(chuàng)建復(fù)數(shù)使用real和imag屬性訪問復(fù)數(shù)的實(shí)部和虛部例2-3:使用real和imag屬性訪問復(fù)數(shù)a=2+3j的實(shí)部和虛部a=2+3ja.real#查看復(fù)數(shù)實(shí)部,輸出結(jié)果為2.0a.imag
#查看復(fù)數(shù)虛部,輸出結(jié)果為3.02.2.2列表、元組、字典、集合列表(list)的所有元素放在一對(duì)方括號(hào)“[]”
中,相鄰元素之間使用逗號(hào)“,”分隔開列表的元素不需要具有相同的類型,列表中的元素可以是任意類型,包括數(shù)字、字符串、其他列表等。例如:my_list=[1,'apple',3.14,True,[10,20]]列表是可變的,可以添加、刪除或修改列表中的元素1.列表列表中常見的函數(shù)函數(shù)說明list.append(x)將元素x追加“到列表list尾部list.extend(L)將列表L中的所有元素追加“到列表list尾部形成新列表list.insert(i,x)在list列表中索引為i的位置插入x元素list.remove(x)將列表中第一個(gè)為x的元素移除,若不存在x元素將引發(fā)一個(gè)錯(cuò)誤list.pop(i)刪除index為i的元素,并將刪除的元素顯示,若不指定i則默認(rèn)刪除最后一個(gè)元素list.clear()清空列表listlist.index(x)返回第一個(gè)x元素的位置,若不存在x則報(bào)錯(cuò)list.count(x)統(tǒng)計(jì)列表list中x元素的個(gè)數(shù)list.reverse()將列表反向排列l(wèi)ist.sort()將列表從小到大排序,若需從大到小list.sort(reverse=True)list.copy()返回列表的副本表2-1list常見函數(shù)列表中增加元素的方法append():在列表末尾添加元素insert(index,element):在指定索引處插入元素extend(iterable):將另一個(gè)可迭代對(duì)象的所有元素添加到列表的末尾數(shù)學(xué)運(yùn)算符“+”:將兩個(gè)列表中的元素進(jìn)行合并舉例例2-4:使用函數(shù)list.append()在列表[1,2,3,'py']末尾添加元素'hn'my_list=[1,2,3]my_list.insert(2,'hn')#使用函數(shù)insert()在索引為2的位置插入'hn'print(my_list)#輸出結(jié)果為[1,2,'hn',3]my_list=[1,2,3,'py']my_list.append('hn')#使用函數(shù)append()在列表末尾添加元素'hn'print(my_list)#輸出結(jié)果為[1,2,3,'py','hn']例2-5:使用函數(shù)list.insert()在[1,2,3]列表中索引為2的位置插入'hn'元素舉例例2-6:使用函數(shù)list.extend()將[0,1,3]的所有元素添加到列表[1,2,3,'py']的末尾[1,2,3,'py']+[0,1,3]#輸出結(jié)果為[1,2,3,'py',0,1,3]my_list=[1,2,3,'py']to_add=[0,1,3]#創(chuàng)建一個(gè)要添加的列表my_list.extend(to_add)#使用函數(shù)extend()將to_add列表的所有元素添加到my_list的末尾print(my_list)#輸出結(jié)果為[1,2,3,'py',0,1,3]例2-7:使用數(shù)學(xué)運(yùn)算符“+”將列表[1,2,3,'py']和列表[0,1,3]中的元素進(jìn)行合并列表中刪除元素的方法pop():刪除并返回列表中的最后一個(gè)元素,或者指定索引的元素remove(element):刪除列表中第一次出現(xiàn)的指定元素del:使用del語句刪除指定索引的元素或切片clear():清空列表舉例例2-8:使用函數(shù)list.pop()刪除列表my_list中的默認(rèn)元素和索引位置為2的元素my_list=[1,2,3,4]removed_element=my_list.pop()#使用函數(shù)pop()刪除列表中的默認(rèn)元素print(my_list)#刪除的元素是列表中最后一個(gè)元素4,輸出結(jié)果為[1,2,3]removed_element=my_list.pop(1)#使用函數(shù)pop()刪除列表中索引位置為2的元素print(my_list)#刪除的元素是2,輸出結(jié)果為[1,3]例2-9:使用函數(shù)list.remove()將列表my_list中第一個(gè)為2的元素刪除my_list=[1,2,3,2,4]my_list.remove(2)#使用函數(shù)remove()刪除第一個(gè)2print(my_list)#輸出結(jié)果為[1,3,2,4]舉例例2-10:使用del語句將列表my_list中刪除索引位置為1的元素和切片[1:3]的元素my_list=[1,2,3,4]my_list.clear() #使用函數(shù)clear()將列表清空print(my_list)#輸出結(jié)果為[]my_list=[1,2,3,4,5]delmy_list[1]#刪除索引位置為1的元素print(my_list)#輸出結(jié)果為[1,3,4,5]delmy_list[1:3]#現(xiàn)在my_list是[1,3,4,5],刪除索引1到2(不包括3)的元素print(my_list)
#輸出結(jié)果為[1,5]例2-11:使用函數(shù)list.clear()將列表my_list清空列表中修改元素的方法對(duì)位置上的元素直接賦值即可修改my_list=[1,2,3,4]my_list[1]=10#將列表索引位置為1的元素修改為10print(my_list)#輸出結(jié)果為[1,10,3,4]例2-12:將列表my_list中索引位置為1的元素修改為10列表中查看元素的方法利用切片查看列表中的元素切片是Python中有序序列的重要操作之一,適用于列表、元組、字符串、range對(duì)象等類型基本語法是[start:stop:step],其中:start是開始索引,默認(rèn)為0;stop是結(jié)束索引,默認(rèn)為列表的長度;step是步長,默認(rèn)為1[start:stop]是指通過索引獲取列表中字符,并截取列表中的一部分,遵循左閉右開的原則,截取的范圍是[start:stop)alist=[1,2,3,4,5,6,7]#列表中元素1的索引為0alist[:3]#查看索引3往前的所有元素,輸出結(jié)果為[1,2,3]alist[2:5]#截取索引范圍介于[2,5)的元素,輸出結(jié)果為[3,4,5]alist[-1:]#獲取列表的最后一個(gè)元素,或使用alist[-1],輸出結(jié)果為[7]alist[1::2]#從索引1開始,每隔一個(gè)元素取一個(gè)元素,輸出結(jié)果為[2,4,6]alist[-3:]#使用負(fù)索引從列表末尾開始切片,最后一個(gè)元素的索引為-1,輸出索引-3往后的所有元素,輸出結(jié)果為[5,6,7]alist[::-1] #反轉(zhuǎn)列表,步長為負(fù)數(shù),從右往左切,輸出結(jié)果為[7,6,5,4,3,2,1]例2-13:利用切片查看列表alist中的元素2.元組元組(tuple)與列表類似,都是有序的元素集合。不同之處在于:元組是不可變序列,元組一旦被創(chuàng)建,其內(nèi)容就不能被添加、修改和產(chǎn)出。但是,可以同列表一樣,利用切片查看元組中的元素元組使用小括號(hào)“()”,在括號(hào)中添加元素,并使用逗號(hào)隔開。定義一個(gè)元組的方式有兩種。例如:t=(1,2,3)或y=1,2,3如果要?jiǎng)?chuàng)建只包含一個(gè)元素的元組,還需要在元組后面加一個(gè)逗號(hào)“,”,創(chuàng)建包含多個(gè)元素的元組沒有這個(gè)限制。例如:
a=42,#有逗號(hào)時(shí)可以沒有括號(hào)在Python中,如果多個(gè)變量用半角逗號(hào)隔開,則默認(rèn)將多個(gè)變量按元組的形式組織起來。兩個(gè)變量在元組中可以相互交換值舉例例2-14:查看元組c中切片[2:6]的元素x,y=1,2x#輸出結(jié)果為1x,y=y,x#將元組x,y兩個(gè)變量相互交換值x#此時(shí)x值為2,輸出結(jié)果為2c=(1,2,3,4,5,6,7,8,9,10)c[2:6]#截取索引范圍介于[2,6)的元素,輸出結(jié)果為(3,4,5,6)例2-15:將元組的兩個(gè)變量相互交換值元組常用函數(shù)tuple.count(x)統(tǒng)計(jì)x在tuple中出現(xiàn)的次數(shù)tuple.index(x)查找第一個(gè)x元素的位置t=1,1,1,1,2,2,3,1,1,1t#輸出結(jié)果為(1,1,1,1,2,2,3,1,1,1)t.count(1)#統(tǒng)計(jì)1在元組t中出現(xiàn)的次數(shù),輸出結(jié)果為7t.index(2)#查找元組t中第一個(gè)等于2的索引位置,輸出結(jié)果為4例2-16:使用函數(shù)tuple.count()統(tǒng)計(jì)1在元組t中出現(xiàn)的次數(shù),使用函數(shù)tuple.index()查找第一個(gè)2的索引位置3.字典字典(dictionary)是包含若干“鍵:值”對(duì)的無需可變序列。定義字典時(shí),每個(gè)元素的“鍵”和“值”用冒號(hào)分割,相鄰元素之間用逗號(hào)分割,所有的元素都放在一對(duì)大括號(hào)“{}”中字典中的“鍵”是不可變數(shù)據(jù),例如,整數(shù)、浮點(diǎn)數(shù)、字符串、元組等,但列表、集合、字典或包含列表、集合、字典的元組均不能作為字典的“鍵”鍵必須是唯一的,而值可重復(fù)。例如:a_dic={'語文':85,'數(shù)學(xué)':90,'英語':80}字典是可變的,可以添加、刪除或修改字典中的元素字典中查找元素的方法字典是無序的,故不能像列表一樣通過索引index進(jìn)行查找字典需要使用鍵(key)來查找字典中對(duì)應(yīng)的值(value)dic={'name':'Alice','age':31,'city':'NewYork'}dic['name']#查找鍵為'name'的值,輸出結(jié)果為'Alice'dic['country']#查找不存在的鍵會(huì)拋出KeyError異常,輸出結(jié)果為KeyError:'country'例2-17:查找字典dic中鍵為'name'和'country'的值字典中修改元素的方法例2-18:在例2-17的字典dic中,修改鍵為'age'的值dic={'name':'Alice','age':31,'city':'NewYork'}dic['age']=30#修改鍵為'age'的值dic#輸出結(jié)果為{'name':'Alice','age':30,'city':'NewYork'}字典中增加元素的方法例2-19:在例2-17的字典dic中,增加鍵為'country'的值#方法一:dic={'name':'Alice','age':31,'city':'NewYork'}dic['country']='USA'#增加元素dic#輸出結(jié)果為{'name':'Alice','age':31,'city':'NewYork','country':'USA'}#方法二:dic={'name':'Alice','age':31,'city':'NewYork'}dic1={'country':'USA'}dic.update(dic1)#使用update()語句,將dic1中所有元素追加到了dicdic#輸出結(jié)果為{'name':'Alice','age':31,'city':'NewYork','country':'USA'}字典中刪除元素的方法使用del語句使用函數(shù)clear()。函數(shù)clear()會(huì)刪除字典中的所有鍵值對(duì)使用函數(shù)pop()。函數(shù)pop()除了刪除鍵值對(duì)外,還會(huì)返回被刪除的值。函數(shù)popitem()用于隨機(jī)刪除并返回字典中的一對(duì)鍵和值舉例例2-20:在例2-19的字典dic中,使用del語句刪除鍵為'country'的值dic={'name':'Alice','age':31,'city':'NewYork'}dic.clear()#使用函數(shù)clear()清空字典dic#返回空字典,輸出結(jié)果為{}dic={'name':'Alice','age':31,'city':'NewYork','country':'USA'}deldic['country']dic#輸出結(jié)果為{'name':'Alice','age':31,'city':'NewYork'}例2-22:在例2-17的字典dic中,使用函數(shù)clear()清空字典中的所有鍵值對(duì)舉例例2-21:在例2-17的字典dic中,使用函數(shù)pop()刪除鍵'age'的值,使用函數(shù)popitem()隨機(jī)刪除字典dic中的一對(duì)鍵和值dic={'name':'Alice','age':31,'city':'NewYork'}dic.pop('age')#刪除指定的鍵,返回被刪除的值,輸出結(jié)果為31dic#輸出結(jié)果為{'name':'Alice','city':'NewYork'}dic={'name':'Alice','age':31,'city':'NewYork','country':'USA'}dic.popitem()#隨機(jī)刪除一對(duì)鍵和值,返回被刪除的鍵和值,輸出結(jié)果為('country','USA')dic#輸出結(jié)果為{'name':'Alice','age':31,'city':'NewYork'}4.集合集合(set)是一個(gè)無序的不重復(fù)元素序列。與字典一樣使用一對(duì)大括號(hào)“{}”作為界定符,元素用逗號(hào)隔開同一個(gè)集合的元素之間不允許重復(fù),集合中每個(gè)元素都是唯一的創(chuàng)建一個(gè)空集合必須用set()而不是“{}”,“{}”是用來創(chuàng)建一個(gè)空字典集合中的元素必須是可哈希的或不可變的,如數(shù)字、字符串、元組等。不可哈希的類型,如列表和字典,不能作為集合的元素。例如:
a={'a','b','c’}
a={'a','b','c',[1,2]} #會(huì)報(bào)錯(cuò),列表為不可哈希類型集合是無序的,并且不包含重復(fù)元素,因此不能直接修改集合中的元素。但可以對(duì)集合進(jìn)行查找、增加、刪除的操作。集合中查找元素的方法集合是無序的,同字典相同,不能通過索引index進(jìn)行查找。但可以使用in關(guān)鍵字檢查一個(gè)元素是否存在于集合中set_0={'a','b','c'}'b'inset_0#輸出結(jié)果為True例2-23:使用in關(guān)鍵字檢查'b'元素是否存在于集合set_0中集合中增加元素的方法使用函數(shù)add()向集合中添加一個(gè)元素或者使用函數(shù)update()添加多個(gè)元素(或另一個(gè)集合)s=set()#使用函數(shù)set()創(chuàng)建一個(gè)空集合s.add(1)#使用函數(shù)add()添加一個(gè)元素s#輸出結(jié)果為{1}s.update([2,3,4])#使用函數(shù)update()添加多個(gè)元素s#輸出結(jié)果為{1,2,3,4}s2={5,6}#添加另一個(gè)集合的元素s.update(s2)s#輸出結(jié)果為{1,2,3,4,5,6}例2-24:創(chuàng)建空集合,并在集合中增加元素集合中刪除元素的方法使用函數(shù)remove()或函數(shù)discard()刪除指定一個(gè)元素使用函數(shù)pop()隨機(jī)刪除并返回一個(gè)元素使用函數(shù)clear()清空集合除了函數(shù)discard()外,其他的方法在刪除的元素不存在時(shí)會(huì)拋出KeyErrors={1,2,3,4,5,6}s.remove(3) #使用函數(shù)remove()刪除指定一個(gè)元素s #輸出結(jié)果為{1,2,4,5,6}s.discard(7) #使用函數(shù)discard()刪除指定一個(gè)元素s #輸出結(jié)果為{1,2,4,5,6},7不存在于集合中,但不會(huì)有任何錯(cuò)誤s.pop() #使用函數(shù)pop()隨機(jī)刪除一個(gè)元素,輸出一個(gè)隨機(jī)元素,輸出結(jié)果為1s #輸出結(jié)果為{2,4,5,6}s.clear() #使用函數(shù)clear()清空集合s #輸出空集合,輸出結(jié)果為set()例2-25:刪除集合s中的元素2.2.3字符串字符串是編程語言中用于表示文本或字符的序列類型。在Python中,字符串屬于不可變序列可以使用單引號(hào)、雙引號(hào)或三引號(hào)來創(chuàng)建字符串,三者可互相嵌套;三引號(hào)可以指示一個(gè)多行的字符串。例如:s1='Hello,world!’s2="Python"s3='''Tomsaid,"Let'sgo!"'''1.轉(zhuǎn)字義符轉(zhuǎn)義字符含義轉(zhuǎn)義字符含義\(在行尾時(shí))續(xù)行符\000空\\反斜杠符號(hào)\n換行\(zhòng)'單引號(hào)\v縱向制表符\"雙引號(hào)\t橫向制表符\a響鈴\r回車\b退格(Backspace)\f換頁\e轉(zhuǎn)義\xhh十六進(jìn)制轉(zhuǎn)義字符表2-2常見的轉(zhuǎn)義字符舉例在字符串前加上r或R可以創(chuàng)建原始字符串,其中的反斜杠不會(huì)被當(dāng)作轉(zhuǎn)義字符例2-26:正確使用轉(zhuǎn)義字符print('What'syourname?')SyntaxError:unterminatedstringliteral(detectedatline1)#輸出結(jié)果報(bào)錯(cuò),沒有使用轉(zhuǎn)義字符print('What\'syourname?')#使用轉(zhuǎn)義字符后可以正常顯示,輸出結(jié)果為What'syourname?print('C:\some\name')#這里的“\n”機(jī)器識(shí)別成了換行符C:\some#第一行輸出結(jié)果ame
#第二行輸出結(jié)果print(r'C:\some\name’)#在字符串前加上r或R可以創(chuàng)建原始字符串,輸出結(jié)果為C:\some\name 字符串中查找的方法2.字符串索引字符串屬于不可變序列,不能對(duì)字符串對(duì)象進(jìn)行元素增加、修改與刪除等操作使用字符串索引方式訪問某個(gè)特定字符通過切片訪問某個(gè)字符串區(qū)間使用in關(guān)鍵字查找子字符串字符串索引是Python編程中用于訪問字符串中特定位置字符的一種機(jī)制。Python使用基于0的索引系統(tǒng),并且支持正向和反向索引正向索引是從字符串的開端開始計(jì)數(shù),第一個(gè)字符的索引是0,第二個(gè)字符的索引是1,依此類推反向索引是從字符串的末尾開始計(jì)數(shù),即最后一個(gè)字符為-1,倒數(shù)第二個(gè)字符為-2,依此類推字符串切片字符串切片是根據(jù)索引來選擇字符串的一個(gè)子集,通常是通過指定起始索引和結(jié)束索引(有時(shí)還包括步長)來實(shí)現(xiàn)的切片操作不會(huì)修改原始字符串,而是返回一個(gè)新的字符串s='python'#創(chuàng)建字符串ss[2:4]#使用切片方法查找索引范圍介于[2,4)的子字符串,輸出結(jié)果為'th's[0:5]#使用切片方法查找索引范圍介于[0,5)的子字符串,輸出結(jié)果為'pytho''n'ins#使用in關(guān)鍵詞方法查找子字符串是否在創(chuàng)建字符串中,輸出結(jié)果為True例2-27:創(chuàng)建一個(gè)字符串s='python',使用切片方法查找索引范圍[2:4]和[0:5]的子字符串,使用in關(guān)鍵詞方法查找子字符串'n'是否在創(chuàng)建字符串s中(1)字符串常用處理方法函數(shù)作用str.capitalize()首字母大寫str.casefold()將字符串str中的大寫字符轉(zhuǎn)換為小寫str.lower()同str.casefold(),只能轉(zhuǎn)換英文字母str.upper()將字符串str中的小寫轉(zhuǎn)換為大寫str.count(sub)返回字符串str的子字符串sub出現(xiàn)的次數(shù)str.find(sub)返回字符串str的子字符串sub第一次出現(xiàn)的位置str.join(iterable)用str連接可迭代對(duì)象iterable返回連接后的結(jié)果str.strip([chars])去除str字符串兩端的chars字符(默認(rèn)去除"\n","\t",空格),返回操作后的字符串str.lstrip([chars])同strip,去除字符串最左邊的字符str.rstrip([chars])同strip,去除字符串最右邊的字符str.replace(old,new[start:stop,count])將字符串str的子串old替換成新串new并返回操作后的字符串str.split(sep=None,maxsplit=-1)將字符串str按sep分隔符分割maxsplit次,并返回分割后的字符串?dāng)?shù)組表2-3字符串常用處理方法舉例例2-28:使用上述函數(shù)對(duì)創(chuàng)建的字符串進(jìn)行操作s='HelloWorld!'c=s.capitalize()#首字母大寫,其余全部小寫c#輸出結(jié)果為'Helloworld!'s.lower()#用法同函數(shù)str.casefold(),英文字母全部小寫,輸出結(jié)果為'helloworld!'s.upper()#英文字母全部大寫,輸出結(jié)果為'HELLOWORLD!'s.count('l')#統(tǒng)計(jì)子字符串’l’出現(xiàn)的次數(shù),輸出結(jié)果為3s.find('o') #返回’o’第一次出現(xiàn)的位置,輸出結(jié)果為4it=['Join','the','str','!']#創(chuàng)建一個(gè)列表it,屬于可迭代對(duì)象it#輸出結(jié)果為['Join','the','str','!']'*'.join(it) #用字符串連接可迭代對(duì)象,輸出結(jié)果為'Join*the*str*!''\n\taaa\n\taaa\n\t'.strip()#去除字符串'\n\taaa\n\taaa\n\t'兩端的chars字符,輸出結(jié)果為'aaa\n\taaa''xx,你好'.replace('xx','張三')#將字符串'xx,你好'的子串'xx'替換成新串'張三',輸出結(jié)果為'張三,你好''1,2,3,4,5,6,7'.split(',')#使用逗號(hào)分隔字符串'1,2,3,4,5,6,7',輸出結(jié)果為['1','2','3','4','5','6','7'](2)字符串格式化字符串格式化用來把整數(shù)、實(shí)數(shù)、列表等對(duì)象轉(zhuǎn)化為特定格式的字符串例2-29:使用字符串格式化將對(duì)象x1和x2轉(zhuǎn)化為特定格式的字符串x1='Zhangsan'x2=30print('Hesaidhisnameis%s.'%x1)#%s表示占位字符型,輸出結(jié)果為HesaidhisnameisZhangsan.print('Hesaidhewas%d.'%x2)#%d表示占位int,輸出結(jié)果為Hesaidhewas30.print(f'Hesaidhisnameis{x1}.')#這里f也可以大寫,輸出結(jié)果為HesaidhisnameisZhangsan.Python編碼規(guī)范2.1內(nèi)容導(dǎo)航CONTENTSPython流程控制2.4Python函數(shù)2.5Python內(nèi)置數(shù)據(jù)類型2.2Python運(yùn)算符和表達(dá)式2.32.3.1算術(shù)運(yùn)算符表2-4算術(shù)運(yùn)算符運(yùn)算符含義+加法運(yùn)算符,兩個(gè)對(duì)象相加,或者一元加-減法運(yùn)算符,兩個(gè)對(duì)象相減,或得到負(fù)數(shù)*乘法運(yùn)算符,兩個(gè)操作數(shù)相乘,或返回一個(gè)被重復(fù)若干次的字符串/除法運(yùn)算符,兩個(gè)操作數(shù)相除(得到的運(yùn)算結(jié)果為浮點(diǎn)數(shù))%模運(yùn)算符,返回除法(/)的余數(shù)//整除運(yùn)算符,返回商的整數(shù)部分**冪運(yùn)算符,x**y運(yùn)算返回x的y次冪例2-30:使用上述算術(shù)運(yùn)算符進(jìn)行a,b數(shù)值運(yùn)算a=5b=3a+b #加法運(yùn)算,輸出結(jié)果為8a-b #減法運(yùn)算,輸出結(jié)果為2a*b #乘法運(yùn)算,輸出結(jié)果為15a/b #除法運(yùn)算,計(jì)算結(jié)果為浮點(diǎn)數(shù),輸出結(jié)果為1.6666666666666667a%b #取模運(yùn)算,返回a除以b的余數(shù),輸出結(jié)果為2a//b #整除運(yùn)算,返回a除以b的商的整數(shù)部分,不進(jìn)行四舍五入,輸出結(jié)果為1a**b #冪運(yùn)算,返回a的b次冪,輸出結(jié)果為125常用的算術(shù)函數(shù)函數(shù)作用函數(shù)作用abs(x)返回x的絕對(duì)值max(x1,x2,……xn)返回x1,x2,……xn中的最大值int(x)返回x的整數(shù)值min(x1,x2,……xn)返回x1,x2,……xn中的最小值float(x)返回x的浮點(diǎn)數(shù)divmod(x,y)返回兩個(gè)數(shù)的商和余數(shù),相當(dāng)于(x//y,x%y)round(x,n)返回浮點(diǎn)數(shù)x的四舍五入值,n是保留的小數(shù)位數(shù)pow(x,y)返回x的y次方表2-5常用的算術(shù)函數(shù)舉例例2-31:使用上述算術(shù)函數(shù)進(jìn)行x,y,z數(shù)值運(yùn)算x=-5.8263y=2z=13print(abs(x)) #返回x的絕對(duì)值,輸出結(jié)果為5.8263print(int(x)) #返回x的整數(shù)值,輸出結(jié)果為-5print(float(y)) #返回y的浮點(diǎn)數(shù),輸出結(jié)果為2.0print(round(x,2)) #返回浮點(diǎn)數(shù)x的四舍五入值,保留兩位小數(shù),輸出結(jié)果為-5.83print(max(x,y,z)) #返回x,y,z中的最大值,輸出結(jié)果為13print(min(x,y,z)) #返回x,y,z中的最小值,輸出結(jié)果為-5.8263print(divmod(z,y)) #返回z,y兩個(gè)數(shù)的商和余數(shù),相當(dāng)于(z//y,z%y),輸出結(jié)果為(6,1)print(pow(x,y)) #返回x的y次方,輸出結(jié)果為33.945771692.3.2關(guān)系運(yùn)算符運(yùn)算符說明>
大于:如果左操作數(shù)大于右操作數(shù),則為True<
小于:如果左操作數(shù)小于右操作數(shù),則為True==等于:如果兩個(gè)操作數(shù)相等,則為True!=不等于:如果兩個(gè)操作數(shù)不相等,則為True>=大于等于:如果左操作數(shù)大于或等于右操作數(shù),則為True<=小于等于:如果左操作數(shù)小于或等于右操作數(shù),則為True表2-6關(guān)系運(yùn)算符關(guān)系運(yùn)算符,也稱為比較運(yùn)算符,在Python中用于比較兩個(gè)值之間的關(guān)系,并返回一個(gè)布爾值(True或False)舉例例2-32:使用上述關(guān)系運(yùn)算符進(jìn)行a,b,c,d數(shù)值運(yùn)算a=6b=5c=5d=3a>b #如果a大于b,則為True,輸出結(jié)果為Tured<c #如果d小于c,則為True,輸出結(jié)果為Tureb==c #如果b,c兩個(gè)操作數(shù)相等,則為True,輸出結(jié)果為Turec!=d #如果c,d兩個(gè)操作數(shù)不相等,則為True,輸出結(jié)果為Turea>=b #如果a大于或等于b,則為True,輸出結(jié)果為Tured<=c #如果d小于或等于c,則為True,輸出結(jié)果為Ture2.3.3邏輯運(yùn)算符表2-7邏輯運(yùn)算符邏輯運(yùn)算符用于連接兩個(gè)或多個(gè)布爾值(True/False)的表達(dá)式,并根據(jù)這些表達(dá)式的值來產(chǎn)生新的布爾值運(yùn)算符說明and邏輯與:用于組合兩個(gè)布爾表達(dá)式,當(dāng)且僅當(dāng)兩個(gè)表達(dá)式都為True時(shí),結(jié)果才為True,否則返回Falseor邏輯或:用于組合兩個(gè)布爾表達(dá)式,當(dāng)至少有一個(gè)表達(dá)式為True時(shí),結(jié)果就為Truenot邏輯非:用于反轉(zhuǎn)一個(gè)布爾表達(dá)式的值。如果表達(dá)式為True,則not運(yùn)算符返回False;如果表達(dá)式為False,則not運(yùn)算符返回True舉例例2-33:使用上述邏輯運(yùn)算符進(jìn)行a,b布爾值運(yùn)算a=5>3b=5<3aandb #當(dāng)且僅當(dāng)兩個(gè)表達(dá)式都為True時(shí),結(jié)果才為True,否則返回False,輸出結(jié)果為Falseaorb #當(dāng)至少有一個(gè)表達(dá)式為True時(shí),結(jié)果就為True,輸出結(jié)果為Truenota #a表達(dá)式為True,not運(yùn)算符返回False,輸出結(jié)果為Falsenotb #b表達(dá)式為False,not運(yùn)算符返回True,輸出結(jié)果為True2.3.4特殊運(yùn)算符運(yùn)算符說明=將右側(cè)的值或表達(dá)式的計(jì)算結(jié)果賦給左側(cè)的變量+=將左側(cè)變量與右側(cè)的值相加,并將結(jié)果賦給左側(cè)變量-=從左側(cè)變量中減去右側(cè)的值,并將結(jié)果賦給左側(cè)變量*=將左側(cè)變量與右側(cè)的值相乘,并將結(jié)果賦給左側(cè)變量/=用左側(cè)變量除以右側(cè)的值,并將結(jié)果賦給左側(cè)變量%=用左側(cè)變量除以右側(cè)的值,并將余數(shù)賦給左側(cè)變量//=用左側(cè)變量整除右側(cè)的值,并將結(jié)果(只取整數(shù)部分)賦給左側(cè)變量**=將左側(cè)變量作為底數(shù),右側(cè)的值作為指數(shù)進(jìn)行冪運(yùn)算,并將結(jié)果賦給左側(cè)變量表2-8賦值運(yùn)算符運(yùn)算符說明in如果在指定序列中找到值/變量,返回True:否則返回Falsenotin如果在指定序列中沒有找到值/變量,返回True;否則返回False表2-9成員運(yùn)算符舉例例2-34:使用上述賦值運(yùn)算符和成員運(yùn)算符進(jìn)行特定的操作運(yùn)算#賦值運(yùn)算符舉例:x=10 #將整數(shù)10賦給變量xx #輸出結(jié)果為10x+=3 #相當(dāng)于x=x+3x #輸出結(jié)果為13,新的x值為13x-=3 #相當(dāng)于x=x–3x #輸出結(jié)果為10,x值又回到了10x*=3 #相當(dāng)于x=x*3x #輸出結(jié)果為30x/=3 #相當(dāng)于x=x/3x #輸出結(jié)果為10.0,新的x值為10.0x%=3x #相當(dāng)于x=x%3,輸出結(jié)果為1.0#成員運(yùn)算符舉例:3in[1,2,3,4,5] #如果在序列[1,2,3,4,5]中找到值3,則返回True,輸出結(jié)果為True6notin[1,2,3,4,5] #如果在序列[1,2,3,4,5]中沒有找到值3,則返回True,輸出結(jié)果為TruePython編碼規(guī)范2.1內(nèi)容導(dǎo)航CONTENTSPython函數(shù)2.5Python內(nèi)置數(shù)據(jù)類型2.2Python運(yùn)算符和表達(dá)式2.3Python流程控制2.42.4Python流程控制Python流程控制是編程中用于決定代碼執(zhí)行順序的機(jī)制,它使得程序能夠根據(jù)不同的條件或規(guī)則來執(zhí)行不同的代碼塊順序結(jié)構(gòu)是程序的基礎(chǔ)。任何程序均由順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)這三種基本結(jié)構(gòu)組成,這些基本結(jié)構(gòu)都有一個(gè)入口和一個(gè)出口在選擇和循環(huán)結(jié)構(gòu)中,條件可以是任意表達(dá)式,但執(zhí)行結(jié)果必須為布爾類型None,0,空(空字符串,空列表,空字典等)三種的布爾值為False,其余均為True2.4.1順序結(jié)構(gòu)順序結(jié)構(gòu)是程序代碼自上而下運(yùn)行,逐條執(zhí)行每一條Python代碼,不重復(fù)執(zhí)行任何代碼,也不會(huì)跳過任何代碼例2-35:使用順序結(jié)構(gòu)逐條執(zhí)行以下每一條Python代碼print("Sunday")print("Monday")print("Tuesday")print("Wednesday")print("Thursday")print("Friday")print("Saturday")#輸出結(jié)果為SundayMondayTuesdayWednesdayThursdayFridaySaturday1.單分支選擇結(jié)構(gòu)(if語句)2.4.2選擇結(jié)構(gòu)選擇結(jié)構(gòu)也叫判斷結(jié)構(gòu)或分支結(jié)構(gòu),根據(jù)滿足的條件去執(zhí)行相應(yīng)的動(dòng)作,即根據(jù)條件判斷的真假去執(zhí)行不同分支所對(duì)應(yīng)的子代碼分類:包括單分支、雙分支和多分支結(jié)構(gòu)單分支選擇結(jié)構(gòu)只包含一個(gè)條件表達(dá)式和一個(gè)代碼塊,語法結(jié)構(gòu)如下:if條件表達(dá)式:
代碼塊注意:if條件表達(dá)式后面的“:”不可少,表示一個(gè)語句塊的開始。如果條件為真(True),則執(zhí)行該代碼塊如果條件為假(False),則跳過該代碼塊例2-36:使用if語句執(zhí)行以下Python代碼x=10ifx>5:print("x大于5")#輸出結(jié)果為x大于52.雙分支選擇結(jié)構(gòu)(if-else語句)雙分支選擇結(jié)構(gòu)包含一個(gè)條件判斷、一個(gè)“if”代碼塊和一個(gè)“else”代碼塊,語法結(jié)構(gòu)如下:if條件表達(dá)式:
代碼塊1else:
代碼塊2如果條件為真,則執(zhí)行“if”代碼塊1如果條件為假,則執(zhí)行“else”代碼塊2x=3ifx>5:print("x大于5")else:print("x不大于5") #輸出結(jié)果為x不大于5例2-37:使用if-else語句執(zhí)行以下Python代碼3.多分支選擇結(jié)構(gòu)(if-elif-else語句)多分支選擇結(jié)構(gòu)可以根據(jù)多個(gè)條件來執(zhí)行不同的代碼塊。它包含一個(gè)或多個(gè)“elif”代碼塊,一個(gè)“if”代碼塊和一個(gè)“else”代碼塊,語法結(jié)構(gòu)如下:if條件表達(dá)式:
代碼塊1elif
條件表達(dá)式2:
代碼塊2elif...:
.....else:
代碼塊nPython會(huì)按照“if”、“elif”的順序檢查每個(gè)條件,并執(zhí)行第一個(gè)為真的條件對(duì)應(yīng)的代碼塊。如果沒有任何條件為真,并且存在“else”代碼塊,則執(zhí)行“else”代碼塊1.while循環(huán)2.4.3循環(huán)結(jié)構(gòu)定義:循環(huán)結(jié)構(gòu)是用于重復(fù)執(zhí)行一段代碼塊,直到滿足特定的條件結(jié)束循環(huán)類型:while循環(huán)、for循環(huán)while循環(huán)是最簡單的循環(huán),幾乎所有程序語言中都存在while循環(huán)這種或者類似結(jié)構(gòu),語法結(jié)構(gòu)如下:while條件表達(dá)式:
循環(huán)體while循環(huán)一般用于循環(huán)次數(shù)難以提前確定的情況while循環(huán)用于在滿足某個(gè)條件時(shí)重復(fù)執(zhí)行代碼塊,只要條件為真(True),循環(huán)就會(huì)繼續(xù)執(zhí)行舉例例2-39:使用while循環(huán)執(zhí)行以下Python代碼#計(jì)算1到10的累加和sum=0i=1whilei<=10:
sum+=I #sum+=i表示是sum=sum+i
i+=1 #i+=1表示是i=i+1
print(sum)#輸出結(jié)果為136101521283645552.for循環(huán)#遍歷列表中的元素fruits=['apple','banana','cherry']#fruits(復(fù)數(shù)形式)是列表名,表示多個(gè)水果的集合forfruitinfruits:#fruit(單數(shù)形式)是臨時(shí)變量名,表示每次循環(huán)時(shí)取出列表中的單個(gè)元素print(fruit)#輸出結(jié)果為applebananacherry例2-40:使用for循環(huán)執(zhí)行以下Python代碼for循環(huán)的語法結(jié)構(gòu)如下:for變量in可迭代對(duì)象:
循環(huán)體for循環(huán)一般用于循環(huán)次數(shù)可以提前確定的情況,尤其適用于枚舉或遍歷可迭代對(duì)象中(如字典、集合、文件對(duì)象等)元素for循環(huán)用于枚舉或遍歷一個(gè)序列(如列表、元組、字符串)中的元素Python編碼規(guī)范2.1內(nèi)容導(dǎo)航CONTENTSPython內(nèi)置數(shù)據(jù)類型2.2Python運(yùn)算符和表達(dá)式2.3Python流程控制2.4Python函數(shù)2.5
注意2.5.1函數(shù)的定義在定義函數(shù)時(shí),函數(shù)名后要有圓括號(hào),圓括號(hào)中是參數(shù)列表參數(shù)列表可以為空,也可以有多個(gè)參數(shù),多個(gè)參數(shù)之間用逗號(hào)隔開函數(shù)體需要縮進(jìn)書寫,函數(shù)體中可以包含一行或多行語句return語句表示函數(shù)的返回值,如果函數(shù)沒有返回值,可以省略不寫;如果有多個(gè)返回值,需要使用逗號(hào)將返回值隔開函數(shù)是一段有特定功能的、可重復(fù)使用的代碼塊在Python中使用關(guān)鍵字“def”定義函數(shù),函數(shù)定義的語法結(jié)構(gòu)如下:def<函數(shù)名>([<參數(shù)列表>]):
<函數(shù)體>[return<返回值列表>]2.5.2函數(shù)的調(diào)用例2-41:定義一個(gè)可以求兩個(gè)數(shù)的和值的函數(shù),并進(jìn)行調(diào)用defadd_numbers(a,b): #定義函數(shù)
sum=a+breturnsumresult=add_numbers(3,5)#調(diào)用函數(shù)print(result)#輸出結(jié)果為8函數(shù)定義以后還不能直接運(yùn)行,需要在合適的位置進(jìn)行調(diào)用才能運(yùn)行函數(shù)調(diào)用可以作為單獨(dú)一行語句,也可以作為表達(dá)式中的一部分。當(dāng)函數(shù)作為表達(dá)式的一部分時(shí),函數(shù)需要有返回值2.5.3函數(shù)的參數(shù)形式參數(shù):簡稱為形參,在使用def定義函數(shù)時(shí),函數(shù)名后面參數(shù)列表里的變量即為形式參數(shù)實(shí)際參數(shù):簡稱為實(shí)參,在調(diào)用函數(shù)時(shí)提供的值或者變量稱作實(shí)際參數(shù)。在函數(shù)調(diào)用時(shí),將實(shí)參的值或引用傳遞給形參。如果在定義函數(shù)時(shí)沒有形參,表示這個(gè)函數(shù)不接收參數(shù)函數(shù)定義時(shí),可以不指定形參的數(shù)據(jù)類型,形參的類型由實(shí)參類型或者python解釋器來決定函數(shù)返回值的類型由return語句來決定,如果函數(shù)中沒有return語句或沒有執(zhí)行return語句,則函數(shù)默認(rèn)返回空值1.實(shí)參和形參舉例例2-42:定義函數(shù)求任意兩個(gè)數(shù)的平方和deff(a,b): #定義函數(shù)f,其中有兩個(gè)形參:a和bc=a**2+b**2returncres=f(3,4) #調(diào)用函數(shù)f,3和4為實(shí)參print(res) #輸出結(jié)果為252.參數(shù)類型定義:是指在定義函數(shù)時(shí),可以為形參設(shè)置默認(rèn)值。注意:在調(diào)用設(shè)有默認(rèn)值形參的函數(shù)時(shí),可以不對(duì)有默認(rèn)值的參數(shù)傳值,也可以通過實(shí)參顯式傳遞值的方式來替換其默認(rèn)值。在定義函數(shù)時(shí),沒有默認(rèn)值的參數(shù)放置在參數(shù)列表的左邊,有默認(rèn)值的參數(shù)需放置在參數(shù)列表的最右邊,否則將導(dǎo)致定義函數(shù)失敗。在python中函數(shù)的參數(shù)可以有多種形式,例如普通參數(shù)、默認(rèn)值參數(shù)、關(guān)鍵字參數(shù),可變長度參數(shù)等。(1)默認(rèn)值參數(shù)舉例例2-43:為函數(shù)fun()設(shè)置默認(rèn)值參數(shù)deffun(a=0,b=0):c=a**2+b**2returncprint(fun()) #輸出結(jié)果為0print(fun(5)) #輸出結(jié)果為25print(fun(2,3)) #輸出結(jié)果為13(2)關(guān)鍵字參數(shù)例2-44:為函數(shù)設(shè)置關(guān)鍵字參數(shù)defuser_info(name,birth,sex='女'):print('用戶名:{}'.format(name),end='')print('性別:{}'.format(sex),end='')print('出生日期:{}'.format(birth))
user_info(name=‘張三’,birth=‘2009-6-3’) #調(diào)用函數(shù)時(shí),只對(duì)name和birth參數(shù)傳值,sex參數(shù)使用了默認(rèn)值,輸出結(jié)果為用戶名:張三性別:女出生日期:2009-6-3user_info(name='李四',sex='男',birth='1993-9-23’)
#調(diào)用函數(shù)時(shí),按照參數(shù)名傳遞參數(shù),輸出結(jié)果為用戶名:李四性別:男出生日期:1993-9-23一般情況下,函數(shù)傳遞參數(shù)是按照順序進(jìn)行傳遞的關(guān)鍵字參數(shù):在python中,可以通過參數(shù)名傳遞參數(shù),而不用關(guān)心參數(shù)列表中的順序,這類參數(shù)被稱之為關(guān)鍵字參數(shù)。通過使用關(guān)鍵字參數(shù),可以不必?fù)?dān)心參數(shù)的順序,還可以只給想要的參數(shù)進(jìn)行賦值(3)可變長度參數(shù)deff1(a,*args,b=2):print(a,b,args,type(args))
f1(1,2,3,4,5,6,7,8,b=200)
#輸出結(jié)果為1200(2,3,4,5,6,7,8)<class'tuple'>例2-45:為函數(shù)設(shè)置可變長度參數(shù)可變長度參數(shù):如果在定義函數(shù)時(shí)不確定參數(shù)的個(gè)數(shù),可以使用可變長度參數(shù)。Python提供了兩種方式接收沒有直接定義的參數(shù)。在參數(shù)前面加一個(gè)星號(hào)(*):是通過元組的方式來接受沒有直接定義的參數(shù)。如果在函數(shù)調(diào)用時(shí)沒有指定參數(shù),則是一個(gè)空元組。在參數(shù)前面加兩個(gè)星號(hào)(**):是將沒被定義的關(guān)鍵參數(shù)放到一個(gè)字典里。舉例例2-46:將關(guān)鍵參數(shù)放置到字典中deff_print(name,birth,sex='女',**medhis):print('姓名:{}'.format(name),end='')print('出生日期:{}'.format(birth),end='')print('性別:{}'.format(sex),end='')print('既往病史:{}'.format(medhis),end='')return;f_print(name='王紅',birth='1962-8-12',sex='女',medhis=('高血壓','糖尿病','冠心病'))#輸出結(jié)果為姓名:王紅出生日期:1962-8-12性別:女既往病史:{'medhis':('高血壓','糖尿病','冠心病')}2.5.4函數(shù)的遞歸與嵌套遞歸是指函數(shù)調(diào)用自身的過程,可以編寫遞歸函數(shù)來解決被分解為相似子問題的問題遞歸函數(shù)包含:基本情況和遞歸情況基本情況:指的是當(dāng)滿足某個(gè)條件時(shí)函數(shù)應(yīng)該停止遞歸遞歸情況:則是指函數(shù)調(diào)用自身來解決一個(gè)更小或更簡單的子問題遞歸思維類似于數(shù)學(xué)中的程序框架圖,它是從下而上的思維方式遞歸算法往往可以使代碼更簡潔,在設(shè)計(jì)算法時(shí)注意:明確遞歸的終止條件,即明確遞歸出口;程序邏輯要有重復(fù)性;確定遞歸終止時(shí)有明確的解1.遞歸函數(shù)舉例例2-47:利用遞歸函數(shù)計(jì)算階乘deffactorial(n):ifn==1:return1else:returnn*factorial(n-1)result=factorial(5)print(result)#通過遞歸調(diào)用計(jì)算5*4*3*2*1的結(jié)果,輸出結(jié)果為102.嵌套函數(shù)例2-48:嵌套函數(shù)使用示例defouter_function(x):definner_function(y):returny*2returninner_function(x)result=outer_function(5)#inner_function()是outer_function()的嵌套函數(shù),它被用來對(duì)傳入的參數(shù)進(jìn)行加工處理print(result) #輸出結(jié)果為10定義:在一個(gè)函數(shù)內(nèi)部定義另一個(gè)函數(shù),這就是嵌套函數(shù)嵌套函數(shù)可以更好地組織和管理代碼,尤其是在某個(gè)函數(shù)內(nèi)部需要另一個(gè)輔助函數(shù)來完成特定任務(wù)時(shí),高效運(yùn)行代碼2.5.5lambda匿名函數(shù)Lambda匿名函數(shù)是一種特殊的匿名函數(shù),它可以在不使用def或者return等關(guān)鍵字的情況下創(chuàng)建簡單的函數(shù)Lambda匿名函數(shù)通常用于需要一個(gè)簡單函數(shù)的地方,而不需要定義一個(gè)完整的函數(shù)。具有以下的語法形式:#函數(shù)名=lambdaarguments:expression其中,lambda是關(guān)鍵字arguments是函數(shù)的參數(shù)expression是函數(shù)的返回值優(yōu)點(diǎn):可以簡化代碼,尤其是在一些函數(shù)式編程的場(chǎng)景中經(jīng)常使用Lambda匿名函數(shù)只能是一行語句或表達(dá)式,不能是多行語句或表達(dá)式舉例例2-49:定義一個(gè)簡單的加法Lambda匿名函數(shù)add=lambdax,y:x+y#定義一個(gè)簡單的加法Lambda匿名函數(shù),x、y是兩個(gè)參數(shù),x+y是返回值表達(dá)式print(add(2,3)) #輸出結(jié)果為5#將Lambda匿名函數(shù)作為參數(shù)傳遞給sorted()函數(shù)points=[(1,2),(3,1),(5,3),(4,2)]points_sorted=sorted(points,key=lambdapoint:point[0])#根據(jù)sorted()函數(shù)對(duì)x+y值的大小進(jìn)行排序print(points_sorted) #輸出結(jié)果為[(1,2),(3,1),(4,2),(5,3)]Lambda匿名函數(shù)與內(nèi)置函數(shù)結(jié)合例2-50:使用map()函數(shù)結(jié)合Lambda匿名函數(shù)對(duì)列表中的每個(gè)元素進(jìn)行求平方操作,使用filter()函數(shù)結(jié)合Lambda匿名函數(shù)對(duì)列表中的元素進(jìn)行篩選#使用map()函數(shù)結(jié)合Lambda匿名函數(shù)對(duì)列表中的每個(gè)元素求平方numbers=[1,2,3,4,5]squared=list(map(lambdax:x**2,numbers))print(squared) #輸出結(jié)果為[1,4,9,16,25]#使用filter()函數(shù)結(jié)合Lambda匿名函數(shù)對(duì)列表中的元素進(jìn)行篩選numbers=[1,2,3,4,5]even_numbers=list(filter(lambdax:x%2==0,numbers))print(even_numbers) #輸出結(jié)果為[2,4]2.5.6常用內(nèi)置函數(shù)常用的字符串處理函數(shù):(1)字符串連接函數(shù):將多個(gè)字符串連接起來“+”
運(yùn)算符:是最簡單的字符串連接方法,適用于連接少量字符串join()方法:可以指定字符串之間的分隔符,尤其適用于生成.csv文件或SQL查詢使用format()函數(shù)和{}占位符:是一種更加靈活的字符串連接方式,在{}位置上可以插入變量(2)字符串查找函數(shù):用于在字符串中查找特定的子字符串(3)字符串替換函數(shù):用于將字符串中指定的子字符串替換為新的子字符串1.字符串處理函數(shù)字符串連接函數(shù)舉例例2-51:將兩
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 高中體育教學(xué)計(jì)劃與試題帶答案
- 中級(jí)茶葉加工工模擬練習(xí)題含參考答案
- gis考研題庫及答案
- 院感填空試題及答案
- 產(chǎn)后出血預(yù)防與處理培訓(xùn)試題(附答案)
- 牙科基本知識(shí)題庫及答案
- 教練員筆試題附答案
- 醫(yī)院管理中級(jí)考試題庫及答案
- 2025年醫(yī)療三基三嚴(yán)知識(shí)試題庫及參考答案
- 計(jì)算機(jī)網(wǎng)絡(luò)基礎(chǔ)試題及答案
- 足太陰脾經(jīng)課件
- 入駐廠區(qū)企業(yè)安全生產(chǎn)管理協(xié)議書
- 2023年河南省選調(diào)大學(xué)畢業(yè)生(非定向)筆試真題
- CNAS-CL01實(shí)驗(yàn)室認(rèn)可準(zhǔn)則學(xué)習(xí)試題
- 2024年人教版九年級(jí)上冊(cè)語文期末復(fù)習(xí)名著打卡《水滸傳》
- GB/T 17727-2024船用法蘭非金屬墊片
- 低壓線路改造項(xiàng)目可行性研究報(bào)告
- JJF(機(jī)械) 1064-2021 運(yùn)動(dòng)場(chǎng)地材料沖擊吸收和垂直變形試驗(yàn)機(jī)校準(zhǔn)規(guī)范
- PPAP全尺寸檢測(cè)報(bào)告
- 化工工藝安全與風(fēng)險(xiǎn)評(píng)估
- 起重機(jī)焊接結(jié)構(gòu)件制造工藝規(guī)程
評(píng)論
0/150
提交評(píng)論