『壹』 python自定義函數有哪些
Python的自定義函數格式中規中矩,用def引導自定義函數名,用括弧給出該函數的參數,在冒號後換行通過縮進確定函數體。在格式上和條件判斷語句有些相似。
如果函數名和變數名沖突了,相當於重新賦值。而python解釋是從上到下的,也就是說此時誰在下面誰佔用這個變數名。剩下的那個就只能在內存中等待垃圾回收了。
自定義函數的參數:
按道理來說,即使Python不嚴格要求定義函數參數,但這方面的知識有助於理解自定義函數中參數操作的情況,還是應該說明一下的。
可以簡單地理解為在定義函數時括弧中聲明的參數是我們在函數使用中會用到的參數,在調用函數時括弧中的變數就是參加函數運算用到的變數,換個名字參數(用於定義)和變數(用於調用)就足以理解了。
『貳』 python自定義函數的問題,如下
我覺得在func函數裡面,df的類型是類似於每一行,而不是整個df
要證明的話可以print(type(df))對比一下
『叄』 python使用了for,if,elif,else語句,定義一個比較大小的函數
方法用錯了, 首先不能是DataFrame的applymap方法 這個方法是對每一個元素進行處理的
其次, 處理函數(你的func_wd)是接受一個值, 返回一個值, 不是接受一堆值然後循環
def func_wd(x) 這個x就是wd那一列中的某一個值, 裡面直接分支返回就行了:
在map這個方法的時候, 用Series的apply:
data['wd'] = data['wd'].apply(fuc_wd)
這樣就行了
『肆』 python中創建自定義函數的關鍵字
打開IDLE python GUI,點擊開始-所有程序-python2.7-IDLE python GUI,或者直接進入dos環境,或者其他的IDLE。
『伍』 python中怎麼調用自定義函數
如果自定義函數,是在當前文件中定義的,直接調用即可,就像樓上回答的一樣;如果是在別的模塊中定義的,那麼要在當前文件中調用,就需要先導入對應的模塊,
導入方法:在當前文件代碼最前面加上 import 模塊名
比如,你在文件test.py中定義了函數sum,那麼你要在當前文件頭部,添加:
from test import *
『陸』 python sort()用法
Python中的sort()方法用於數組排序,下面以實例形式對此加以詳細說明:
一、基本形式
列表有自己的sort方法,其對列表進行原址排序,既然是原址排序,那顯然元組不可能擁有這種方法,因為元組是不可修改的。
x=[4,6,2,1,7,9]x.sort()
printx#[1,2,4,6,7,9]
如果需要一個排序好的副本,同時保持原有列表不變,怎麼實現呢
x=[4,6,2,1,7,9]
y=x[:]
y.sort()
printy#[1,2,4,6,7,9]
printx#[4,6,2,1,7,9]
注意:y = x[:] 通過分片操作將列表x的元素全部拷貝給y,如果簡單的把x賦值給y:y = x,y和x還是指向同一個列表,並沒有產生新的副本。
另一種獲取已排序的列表副本的方法是使用sorted函數:
x=[4,6,2,1,7,9]
y=sorted(x)
printy#[1,2,4,6,7,9]
printx#[4,6,2,1,7,9]
sorted返回一個有序的副本,並且類型總是列表,如下:
printsorted('Python')#['P','h','n','o','t','y']
二、自定義比較函數
可以定義自己的比較函數,然後通過參數傳遞給sort方法:
defcomp(x,y):
ifx<y:
return1
elifx>y:
return-1
else:
return0
nums=[3,2,8,0,1]
nums.sort(comp)
printnums#降序排序[8,3,2,1,0]
nums.sort(cmp)#調用內建函數cmp,升序排序
printnums#降序排序[0,1,2,3,8]
三、可選參數
sort方法還有兩個可選參數:key和reverse
1、key在使用時必須提供一個排序過程總調用的函數:
x=['mmm','mm','mm','m']
x.sort(key=len)
printx#['m','mm','mm','mmm']
2、reverse實現降序排序,需要提供一個布爾值:
y=[3,2,8,0,1]
y.sort(reverse=True)
printy#[8,3,2,1,0]
『柒』 python3 定義函數
Python 有很多有用的內置函數, 但還是不能滿足程序員的需求, 所以需要 自定義函數 。
如何編寫 自定義函數 , 需要用到 def語句, 函數名, 括弧及參數, 冒號, 函數說明,內置縮進編碼模塊,return 語句 , 其中有一些也可省略不寫,後面會慢慢介紹。
編寫函數不可或缺的元素, 一定都要寫。函數名盡量寫得簡單易懂。
一般是對函數的描述說明。
這是編寫具體的 操作命令 的地方, 如果還未想好如何編寫, 可以使用 pass 來佔位,讓程序可以運行起來,防止調試出錯。
參數放在最後講, 是因為這裡面的東西還是很多的。首先看個例子。
如上的案例都是限制了參數個數的, 最多傳三個參數 name/age/city , 但是如果有一些特例,需要傳多個參數怎麼辦呢。 參數前面加個 * , 變成 可變參數 。
那如果想要傳多個包含名稱的參數,例如a=1,b=2,c=3......,那該怎麼寫呢。參數前面加個 ** , 變成 關鍵字參數 。
『捌』 python 內置排序函數使用
python內置關於排序的工具主要有兩個一個是列表自帶的 sort() 方法,另外一個是 sorted() 函數。Python 列表內置方法可以直接修改列表。而 sorted() 內置函數從一個可迭代對象(列表,元組等都可以)構建一個新的排序列表。其函數原型分別如下:
對列表進行默認排序
從函數原型來看,可以看到兩者都具有兩個可選參數,它們都必須指定為關鍵字參數。
key 指定帶有單個參數的函數,用於從 iterable 的每個元素中提取用於比較的鍵 (例如 key=str.lower)。默認值為 None (直接比較元素)。 key 形參的值應該是個函數(或其他可調用對象),它接受一個參數並返回一個用於排序的鍵。
假設有其他類型的變數,比如一個自定義的類或者列表中又是一個列表。以官網例子為例有這樣一個列表,其元素為元組,
可以用以下方式按照年齡排序
類似的有自定義類
可以用如下方式進行排序
也可以顯示定義一個函數,且只有一個參數,返回用於排序的鍵,比如
總之就是定義一個函數返回一個用於排序的鍵,可以用lambda函數或者 def 定義都可以。
上面實現的簡單函數實際就是實現了返回一個有序結構的第 n 的元素,或者某個類中的某個屬性,因此 Python 提供了便利功能,使訪問器功能更容易,更快捷。operator 模塊有 itemgetter() 、 attrgetter() 函數。分別完成返回第 n 個元素,某個屬性功能。上面的排序可以用如下方式進行實現
在python2中,sort有一個 cmp 參數,即用一個函數來自定義比較,在python3中這種方式被取消。為了繼承類似的用法,在 Python 3.2 中, functools.cmp_to_key() 函數被添加到標准庫中的 functools 模塊中。
這種作用先定義如何比較兩個變數,以上面的學生列表按照年齡排序為例
這種做法自定義比較函數接收兩個形參,返回比較結果(bool),而新式方法接受一個參數,返回的是比較的鍵。
假設有字典 d = {'b':2, 'a':1,'c':8,'d':4} ,則可以通過以下方式對字典按照鍵和值進行排序
『玖』 怎樣理解python中的函數,用戶自定義函數有什麼意義
函數是什麼?
定義:函數是組織好的,可重復使用的,用來實現單一,或相關聯功能的代碼段。
作用:函數能提高應用的模塊性和代碼的重復利用率。你已經知道Python提供了許多內建函數,比如print()。但你也可以自己創建函數,這被叫做用戶自定義函數。
函數是 python 的一等公民,函數也是對象。
使用函數有兩個步驟:
1、定義函數def 函數名(): 函數體
2、調用函數函數名()