python交換兩個(gè)變量的值很簡單,a,b = b,a 就可以,寫成函數(shù),代碼如下:
成都創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、龍圩網(wǎng)絡(luò)推廣、微信小程序開發(fā)、龍圩網(wǎng)絡(luò)營銷、龍圩企業(yè)策劃、龍圩品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);成都創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供龍圩建站搭建服務(wù),24小時(shí)服務(wù)熱線:13518219792,官方網(wǎng)址:www.rwnh.cn
def?jh(a,b):
return?b,a
x?=?1
y?=?2
x,y?=?jh(x,y)
print(x,y)
執(zhí)行結(jié)果如下:
這篇文章主要介紹了Python函數(shù)式編程指南(一):函數(shù)式編程概述,本文講解了什么是函數(shù)式編程概述、什么是函數(shù)式編程、為什么使用函數(shù)式編程、如何辨認(rèn)函數(shù)式風(fēng)格等核心知識,需要的朋友可以參考下1pareTo(o2))相信從這個(gè)小小的例子你也能感受到強(qiáng)大的生產(chǎn)效率:)封裝控制結(jié)構(gòu)的內(nèi)置模板函數(shù)為了避開邊界效應(yīng),函數(shù)式風(fēng)格盡量避免使用變量,而僅僅為了控制流程而定義的循環(huán)變量和流程中產(chǎn)生的臨時(shí)變量無疑是最需要避免的。假如我們需要對剛才的數(shù)集進(jìn)行過濾得到所有的正數(shù),使用指令式風(fēng)格的代碼應(yīng)該像是這樣:代碼如下:lst2 = list()for i in range(len(lst)): #模擬經(jīng)典for循環(huán)if lst[i] 0:lst2.append(lst[i])這段代碼把從創(chuàng)建新列表、循環(huán)、取出元素、判斷、添加至新列表的整個(gè)流程完整的展示了出來,儼然把解釋器當(dāng)成了需要手把手指導(dǎo)的傻瓜。然而,“過濾”這個(gè)動(dòng)作是很常見的,為什么解釋器不能掌握過濾的流程,而我們只需要告訴它過濾規(guī)則呢?在Python里,過濾由一個(gè)名為filter的內(nèi)置函數(shù)實(shí)現(xiàn)。有了這個(gè)函數(shù),解釋器就學(xué)會(huì)了如何“過濾”,而我們只需要把規(guī)則告訴它:代碼如下:lst2 = filter(lambda n: n 0, lst)這個(gè)函數(shù)帶來的好處不僅僅是少寫了幾行代碼這么簡單。封裝控制結(jié)構(gòu)后,代碼中就只需要描述功能而不是做法,這樣的代碼更清晰,更可讀。因?yàn)楸荛_了控制結(jié)構(gòu)的干擾,第二段代碼顯然能讓你更容易了解它的意圖。另外,因?yàn)楸荛_了索引,使得代碼中不太可能觸發(fā)下標(biāo)越界這種異常,除非你手動(dòng)制造一個(gè)。函數(shù)式編程語言通常封裝了數(shù)個(gè)類似“過濾”這樣的常見動(dòng)作作為模板函數(shù)。唯一的缺點(diǎn)是這些函數(shù)需要少量的學(xué)習(xí)成本,但這絕對不能掩蓋使用它們帶來的好處。閉包(closure)閉包是綁定了外部作用域的變量(但不是全局變量)的函數(shù)。大部分情況下外部作用域指的是外部函數(shù)。閉包包含了自身函數(shù)體和所需外部函數(shù)中的“變量名的引用”。引用變量名意味著綁定的是變量名,而不是變量實(shí)際指向的對象;如果給變量重新賦值,閉包中能訪問到的將是新的值。閉包使函數(shù)更加靈活和強(qiáng)大。即使程序運(yùn)行至離開外部函數(shù),如果閉包仍然可見,則被綁定的變量仍然有效;每次運(yùn)行至外部函數(shù),都會(huì)重新創(chuàng)建閉包,綁定的變量是不同的,不需要擔(dān)心在舊的閉包中綁定的變量會(huì)被新的值覆蓋?;氐絼偛胚^濾數(shù)集的例子。假設(shè)過濾條件中的 0 這個(gè)邊界值不再是固定的,而是由用戶控制。如果沒有閉包,那么代碼必須修改為:代碼如下:class greater_than_helper:def __init__(self, minval):self.minval = minvaldef is_greater_than(self, val):return val self.minvaldef my_filter(lst, minval):helper = greater_than_helper(minval)return filter(helper.is_greater_than, lst)請注意我們現(xiàn)在已經(jīng)為過濾功能編寫了一個(gè)函數(shù)my_filter。如你所見,我們需要在別的地方(此例中是類greater_than_helper)持有另一個(gè)操作數(shù)minval。如果支持閉包,因?yàn)殚]包可以直接使用外部作用域的變量,我們就不再需要greater_than_helper了:代碼如下:def my_filter(lst, minval):return filter(lambda n: n minval, lst)可見,閉包在不影響可讀性的同時(shí)也省下了不少代碼量。函數(shù)式編程語言都提供了對閉包的不同程度的支持。在Python 2.x中,閉包無法修改綁定變量的值,所有修改綁定變量的行為都被看成新建了一個(gè)同名的局部變量并將綁定變量隱藏。Python 3.x中新加入了一個(gè)關(guān)鍵字 nonlocal 以支持修改綁定變量。但不管支持程度如何,你始終可以訪問(讀取)綁定變量。內(nèi)置的不可變數(shù)據(jù)結(jié)構(gòu)為了避開邊界效應(yīng),不可變的數(shù)據(jù)結(jié)構(gòu)是函數(shù)式編程中不可或缺的部分。不可變的數(shù)據(jù)結(jié)構(gòu)保證數(shù)據(jù)的一致性,極大地降低了排查問題的難度。例如,Python中的元組(tuple)就是不可變的,所有對元組的操作都不能改變元組的內(nèi)容,所有試圖修改元組內(nèi)容的操作都會(huì)產(chǎn)生一個(gè)異常。函數(shù)式編程語言一般會(huì)提供數(shù)據(jù)結(jié)構(gòu)的兩種版本(可變和不可變),并推薦使用不可變的版本。遞歸遞歸是另一種取代循環(huán)的方法。遞歸其實(shí)是函數(shù)式編程很常見的形式,經(jīng)??梢栽谝恍┧惴ㄖ幸姷?。但之所以放到最后,是因?yàn)閷?shí)際上我們一般很少用到遞歸。如果一個(gè)遞歸無法被編譯器或解釋器優(yōu)化,很容易就會(huì)產(chǎn)生棧溢出;另一方面復(fù)雜的遞歸往往讓人感覺迷惑,不如循環(huán)清晰,所以眾多最佳實(shí)踐均指出使用循環(huán)而非遞歸。這一系列短文中都不會(huì)關(guān)注遞歸的使用。第一節(jié)完
作用就是把合理的數(shù)據(jù)轉(zhuǎn)換為需要的類型。int()整數(shù),float()浮點(diǎn)數(shù),str()字符串,list()列表,tuple()元組,set()集合……
比如a='12'這個(gè)是字符串類型,用int函數(shù)a=int(a)這時(shí)變量a就是整型,字符串'12'變?yōu)榱苏麛?shù)12。Python沒有變量聲明的要求,變量的屬性在賦值時(shí)確定,這樣變量的類型就很靈活。
有一種題目判斷一個(gè)整數(shù)是否回文數(shù),用字符串來處理就很簡單
a=1234321#整數(shù)
if str(a)==str(a)[::-1]:#借助字符串反轉(zhuǎn)比較就可以確定是否回文數(shù)。
還比如元組b=(1,3,2,4),元組是不可以更新刪除排序成員的,但是列表是可以的,通過列表函數(shù)進(jìn)行轉(zhuǎn)換來實(shí)現(xiàn)元組的更新刪除和排序。
b=(1,3,2,4)
b=list(b)
b.sort()
b=tuple(b)
這時(shí)得到的元組b就是一個(gè)升序的元組(1,2,3,4)
再比如你要輸入創(chuàng)建整數(shù)列表或者整數(shù)元組基本上寫法相同,就是用對應(yīng)的函數(shù)來最后處理。
ls=list(map(int,input().split()))#這個(gè)就是列表
tup=tuple(map(int,input().split()))#這個(gè)就是元組
再比如有個(gè)叫集合的,集合有唯一性,可以方便用來去重。
ls=[1,2,3,1,2,3,1,2,3]
ls=list(set(ls))#通過set()去重后,現(xiàn)在的ls里就是[1,2,3]去重后的列表。
分享名稱:python中的置換函數(shù) python中數(shù)組的轉(zhuǎn)置
文章出自:http://www.rwnh.cn/article40/hiipeo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)公司、動(dòng)態(tài)網(wǎng)站、云服務(wù)器、網(wǎng)頁設(shè)計(jì)公司、建站公司、網(wǎng)站營銷
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)