Python函數詳細總結

來源:互聯網
上載者:User

標籤:none   ssi   pytho   名稱   元素   exp   ++   代碼塊   標識符   

函數定義
  1. 函數代碼塊以 def 關鍵詞開頭,後接函數標識符名稱和圓括弧()。
  2. 任何傳入參數和自變數必須放在圓括弧中間。圓括弧之間可以用於定義參數。
  3. 函數的第一行語句可以選擇性地使用文檔字串—用於存放函數說明。
  4. 函數內容以冒號起始,並且縮排。
  5. return [運算式] 結束函數,選擇性地返回一個值給調用方。不帶運算式的return相當於返回 None。
文法
def functionname( parameters ):   "函數_文檔字串"   function_suite   return [expression]
可更改(mutable)與不可更改(immutable)對象

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

  • 不可變類型

    變數賦值 a=5 後再賦值 a=10,這裡實際是新產生一個 int 值對象 10,再讓 a 指向它,而 5 被丟棄,不是改變a的值,相當於新產生了a。

  • 可變類型

    變數賦值 la=[1,2,3,4] 後再賦值 la[2]=5 則是將 list la 的第三個元素值更改,本身la沒有動,只是其內部的一部分值被修改了。

全域變數與局部變數

定義在函數內部的變數擁有一個局部範圍

定義在函數外的擁有全域範圍。

如果要把函數內部的變數聲明為外部的全域範圍,使用global聲明

傳參
  • 必備參數
#可寫函數說明def printme( str ):   "列印任何傳入的字串"   print str;   return;prinme(‘My string‘)
  • 關鍵字參數
#可寫函數說明def printme( str ):   "列印任何傳入的字串"   print str;   return;#調用printme函數printme( str = "My string");
  • 預設參數
#可寫函數說明def printinfo( name, age = 35 ):   "列印任何傳入的字串"   print "Name: ", name;   print "Age ", age;   return;#調用printinfo函數printinfo( age=50, name="miki" );printinfo( name="miki" );
  • 不定長參數

    傳入列表時,加入一個星號
    傳入字典時,加入兩個星號

# 可寫函數說明def printinfo( arg1, *vartuple ):   "列印任何傳入的參數"   print "輸出: "   print arg1   for var in vartuple:      print var   return;# 調用printinfo 函數printinfo( 10 );printinfo( 70, 60, 50 );
匿名參數lambda
  • lambda只是一個運算式,函數體比def簡單很多。
  • lambda的主體是一個運算式,而不是一個代碼塊。僅僅能在lambda運算式中封裝有限的邏輯進去。
    lambda函數擁有自己的命名空間,且不能訪問自有參數列表之外或全域命名空間裡的參數。
  • 雖然lambda函數看起來只能寫一行,卻不等同於C或C++的內嵌函式,後者的目的是調用小函數時不佔用棧記憶體從而增加運行效率。
文法lambda [arg1 [,arg2,.....argn]]:expression# 可寫函數說明sum = lambda arg1, arg2: arg1 + arg2;# 調用sum函數print "相加後的值為 : ", sum( 10, 20 )

Python函數詳細總結

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.