python自定義函式

2021-10-22 13:47:50 字數 2921 閱讀 7528

在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 ...