在python中有一種自定義函式為匿名函式,可以用lambda關鍵字定義。通過lambda構造的函式可以沒有名稱,最大的特點是在自定義匿名函式時所有**只能在一行內完成,語法如下:
lambda parameters : function_expression
lambda為匿名函式的關鍵起始詞;parameters是函式可能涉及的形參,如果有多個引數,需要用英文狀態的逗號隔開;function_expression為具體的函式體。如果構造的函式不是很複雜就用lambda匿名函式一氣呵成,否則就只能使用def關鍵字構造有名稱的自定義函式。舉例描述lambda函式的使用:
# 統計列表中每個元素的頻次
list6 =
['a','a','b','a','a','b','c','b','c','b','b','d','c'
]# 構建空字典,用於頻次統計資料的儲存
dict3 =
# 迴圈計算
for i in set(list6):
dict3[i]
= list6.count(i)
print(dict3)
# 取出字典中的鍵值對
key_value = list(dict3.items(
))print(key_value)
# 列表排序
key_value.sort(
)print(key_value)
# 按頻次高低排序
key_value.sort(key = lambda x : x[1], reverse=true)
print(key_value)
def function_name(parameters):
function_expression
return(result)
第一行結必須要加上英文狀態的冒號,第二行開始需要縮排:
# 猜數字
def game(min,max):
import random
number = random.randint(min,max)
# 隨機生成乙個需要猜的數字
while true:
guess = float(input(
'請在%d到%d之間猜乙個數字: ' %(min, max))
)if guess < number:
min = guess
print(
'不好意思,你猜的的數偏小了!請在%d到%d之間猜乙個數!' %(min,max))
elif guess > number:
max = guess
print(
'不好意思,你猜的的數偏大了!請在%d到%d之間猜乙個數!' %(min,max))
else:
print(
'恭喜你猜對了!'
) print(
'遊戲結束!'
)break
# 呼叫函式
game(50,100)
float() 函式用於將整數和字串轉換成浮點數。
自定義函式的集中引數
必選引數
當你呼叫乙個自定義函式時必須給函式中的必選引數賦值,否則程式將會報錯。就上面的猜數字遊戲為例如果不給game中的min賦值,將會報錯。
預設引數
構造自定義函式時就已經給某些引數賦予了各自的初值,當呼叫函式時,這樣的函式可以不用傳值。
# 計算1到n的平方和
def square_sum(n, p = 2):
result = sum(
[i ** p for i in range(1,n+1)])
return(n,p,result)
print(
'1到%d的%d次方和為%d!' %square_sum(200))
print(
'1到%d的%d次方和為%d!' %square_sum(200,3))
如上構造的在自定義函式中,n為必選引數,p為預設引數。根據結果顯示,在第一次呼叫函式時,並沒有給p賦值且正常執行,第二次呼叫函式時,給p傳遞新值3,此時p引數由原來的2換為3。
可變引數
# 任意個數的資料求和
def adds(*args):
print(args)
s = sum(args)
return(s)
print(
'和為%d!' %adds(10,13,7,8,2))
print(
'和為%d!' %adds(7,10,23,44,65,12,17))
引數args前面加乙個星號*這樣的引數就稱為可變引數,該引數可以接納任意多個實參的並**為元組形式。
關鍵字引數
# 關鍵字引數
def info_collection(tel, birthday, **kwargs):
user_info =
# 構造空字典,用於儲存使用者資訊
user_info[
'tel'
]= tel
user_info[
'birthday'
]= birthday
user_info.update(kwargs)
# 使用者資訊返回
return(user_info)
# 呼叫函式
info_collection(13612345678,'1990-01-01',nickname=
'月亮',gender =
'女',edu =
'碩士',income = 15000,add =
'上海市浦東新區',interest =
['游泳','唱歌','看電影'
])
Python自定義函式
可選引數是python的乙個特性,顧名思義就是這個引數是可有可沒有的。如果你學過其他的語言,那麼你會很清楚明白他的不同點的。def fun n,m 1 s 1for i in range 1 n 1 s i return s m m就是可選引數,如果在呼叫他的時候不給m就預設為1 eg1 fun 1...
Python自定義函式
python中的自定義函式,其理解意思相當於c 中的自定義方法,但是建立的方式不同。說他與c 的方法相同,那麼就自然有 無引數無返回值,有引數無返回值,無引數有返回值,有引數有返回值。函式 建立函式 無引數無返回值 deffunction print 輸出依據 print 呼叫 函式呼叫 funct...
自定義引數 Python自定義函式引數
1.種類 1 位置引數 x就是位置引數 usr bin env python coding utf 8 def power x result x x print result 2 預設引數n就是預設引數 usr bin env python coding utf 8 def power x,n 1 ...