溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python函數(shù)詳細(xì)總結(jié)

發(fā)布時(shí)間:2020-07-16 12:42:33 來源:網(wǎng)絡(luò) 閱讀:1117 作者:楊云1028 欄目:編程語言

函數(shù)定義

  1. 函數(shù)代碼塊以 def 關(guān)鍵詞開頭,后接函數(shù)標(biāo)識(shí)符名稱和圓括號(hào)()。
  2. 任何傳入?yún)?shù)和自變量必須放在圓括號(hào)中間。圓括號(hào)之間可以用于定義參數(shù)。
  3. 函數(shù)的第一行語句可以選擇性地使用文檔字符串—用于存放函數(shù)說明。
  4. 函數(shù)內(nèi)容以冒號(hào)起始,并且縮進(jìn)。
  5. return [表達(dá)式] 結(jié)束函數(shù),選擇性地返回一個(gè)值給調(diào)用方。不帶表達(dá)式的return相當(dāng)于返回 None。

語法

def functionname( parameters ):
   "函數(shù)_文檔字符串"
   function_suite
   return [expression]

可更改(mutable)與不可更改(immutable)對(duì)象

在 python 中,==strings, tuples, 和 numbers== 是不可更改的對(duì)象,而 ==list,dict== 等則是可以修改的對(duì)象。

  • 不可變類型

    變量賦值 a=5 后再賦值 a=10,這里實(shí)際是新生成一個(gè) int 值對(duì)象 10,再讓 a 指向它,而 5 被丟棄,不是改變a的值,相當(dāng)于新生成了a。

  • 可變類型

    變量賦值 la=[1,2,3,4] 后再賦值 la[2]=5 則是將 list la 的第三個(gè)元素值更改,本身la沒有動(dòng),只是其內(nèi)部的一部分值被修改了。

全局變量與局部變量

定義在函數(shù)內(nèi)部的變量擁有一個(gè)局部作用域

定義在函數(shù)外的擁有全局作用域。

如果要把函數(shù)內(nèi)部的變量聲明為外部的全局作用域,使用global聲明

傳參

  • 必備參數(shù)
#可寫函數(shù)說明
def printme( str ):
   "打印任何傳入的字符串"
   print str;
   return;

prinme('My string')
  • 關(guān)鍵字參數(shù)
#可寫函數(shù)說明
def printme( str ):
   "打印任何傳入的字符串"
   print str;
   return;

#調(diào)用printme函數(shù)
printme( str = "My string");
  • 缺省參數(shù)
#可寫函數(shù)說明
def printinfo( name, age = 35 ):
   "打印任何傳入的字符串"
   print "Name: ", name;
   print "Age ", age;
   return;

#調(diào)用printinfo函數(shù)
printinfo( age=50, name="miki" );
printinfo( name="miki" );
  • 不定長(zhǎng)參數(shù)

    傳入列表時(shí),加入一個(gè)星號(hào)
    傳入字典時(shí),加入兩個(gè)星號(hào)

# 可寫函數(shù)說明
def printinfo( arg1, *vartuple ):
   "打印任何傳入的參數(shù)"
   print "輸出: "
   print arg1
   for var in vartuple:
      print var
   return;

# 調(diào)用printinfo 函數(shù)
printinfo( 10 );
printinfo( 70, 60, 50 );

匿名參數(shù)lambda

  • lambda只是一個(gè)表達(dá)式,函數(shù)體比def簡(jiǎn)單很多。
  • lambda的主體是一個(gè)表達(dá)式,而不是一個(gè)代碼塊。僅僅能在lambda表達(dá)式中封裝有限的邏輯進(jìn)去。
    lambda函數(shù)擁有自己的命名空間,且不能訪問自有參數(shù)列表之外或全局命名空間里的參數(shù)。
  • 雖然lambda函數(shù)看起來只能寫一行,卻不等同于C或C++的內(nèi)聯(lián)函數(shù),后者的目的是調(diào)用小函數(shù)時(shí)不占用棧內(nèi)存從而增加運(yùn)行效率。
語法
lambda [arg1 [,arg2,.....argn]]:expression

# 可寫函數(shù)說明
sum = lambda arg1, arg2: arg1 + arg2;

# 調(diào)用sum函數(shù)
print "相加后的值為 : ", sum( 10, 20 )
向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI