Python 中函数(function)的用法
函數是組織好的,可重復使用的,用來實現單一,或相關聯功能的代碼段。
函數能提高應用的模塊性,和代碼的重復利用率。Python提供了許多內建函數,比如print()、input(),也可以自己創建函數,這被叫做用戶自定義函數。
一:定義函數
可以定義一個由自己想要功能的函數,以下是簡單的規則:
- 函數代碼塊以 def 關鍵詞開頭,后接函數標識符名稱和圓括號()。
- 任何傳入參數和自變量必須放在圓括號中間。圓括號之間可以用于定義參數。
- 函數的第一行語句可以選擇性地使用文檔字符串—用于存放函數說明。
- 函數內容以冒號起始,并且縮進。
- return [表達式] 結束函數,選擇性地返回一個值給調用方。不帶表達式的return相當于返回 None。
語法:
def functionname( parameters ):"""comments"""function_suitereturn [expression]實例:
def func(parameter):"""打印傳入的字符到顯示設備上"""print(parameter)return parameter二:函數調用
定義一個函數只給了函數一個名稱,指定了函數里包含的參數,和代碼塊結構。
這個函數的基本結構完成以后,可以通過另一個函數調用執行,也可以直接從Python提示符執行。
實例:
''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:531509025 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' # coding: utf-8 # 定義函數 def func(parameter):"""打印傳入的字符到顯示設備上"""print(parameter)return parameter# 調用函數 func('五星紅旗迎風飄揚') func('再次調用func()函數')以上實例輸出結果:
五星紅旗迎風飄揚 再次調用func()函數三:參數傳遞
在 python 中,類型屬于對象,變量是沒有類型的:
a = [1,2,3] a = 'China'以上代碼中,[1,2,3] 是 List 類型,“Runoob” 是 String 類型,而變量 a 是沒有類型,她僅僅是一個對象的引用(一個指針),可以是 List 類型對象,也可以指向 String 類型對象。
可更改(mutable)與不可更改(immutable)對象
在 python 中,strings, tuples, 和 numbers 是不可更改的對象,而 list,dict 等則是可以修改的對象。
參數
以下是調用函數時可使用的正式參數類型:
- 必備參數(位置參數)
- 關鍵字參數
- 默認參數
- 不定長參數
- 必備參數
必備參數須以正確的順序傳入函數。調用時的數量必須和聲明時的一樣。
調用函數時,你必須傳入一個參數,不然會出現語法錯誤
定義一個函數rt(a),調用函數時沒有傳入實參:
def rt(a):print(a)rt()報錯:
rt() TypeError: rt() missing 1 required positional argument: 'a'正確傳入必備參數:
''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:531509025 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' def rt(a):print(a)rt(123) rt('ASggh')輸出:
123 ASggh關鍵字參數
關鍵字參數和函數調用關系緊密,函數調用使用關鍵字參數來確定傳入的參數值。
使用關鍵字參數允許函數調用時參數的順序與聲明時不一致,因為 Python 解釋器能夠用參數名匹配參數值。
''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:531509025 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' # 可寫函數說明 def printinfo(name, age):"""打印任何傳入的字符串"""print("Name: ", name)print("Age ", age)return# 調用printinfo函數 printinfo(age=50, name="miki")輸出結果:
Name: miki Age 50默認參數
調用函數時,默認參數的值如果沒有傳入,則被認為是默認值。下例會打印默認的age,如果age沒有被傳入:
''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:531509025 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' # 可寫函數說明 def printinfo(name, age = 28):"""打印任何傳入的字符串"""print("Name: ", name)print("Age ", age)return# 調用printinfo函數 printinfo(name='Carson') printinfo(age=50, name="miki")輸出結果:
Name: Carson Age 28 Name: miki Age 50不定長參數
你可能需要一個函數能處理比當初聲明時更多的參數。這些參數叫做不定長參數,和上述2種參數不同,聲明時不會命名。
四:匿名函數
python 使用 lambda 來創建匿名函數。
- lambda只是一個表達式,函數體比def簡單很多。
- lambda的主體是一個表達式,而不是一個代碼塊。僅僅能在lambda表達式中封裝有限的邏輯進去。
- lambda函數擁有自己的命名空間,且不能訪問自有參數列表之外或全局命名空間里的參數。
雖然lambda函數看起來只能寫一行,卻不等同于C或C++的內聯函數,后者的目的是調用小函數時不占用棧內存從而增加運行效率。
語法:
lambda函數的語法只包含一個語句,如下:
lambda [arg1 [,arg2,.....argn]]:expression實例:
num = lambda x, y: x*y print(num(3, 9)) print(num(7, 8))輸出:
27 56總結
以上是生活随笔為你收集整理的Python 中函数(function)的用法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 5种Python逐行读取文件的方式
- 下一篇: python命名元组