python中函數部分內容的解析
這篇文章帶給大家的內容是關於python中函數部分內容的解析,有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。
在python中,變數沒有類型,一個物件的引用,類型屬於物件
變數的本質上是一個佔位符!通常用小寫字母命名變數。
一:語法
def 函數名稱(參數清單):
函數體
(函數名稱命名一般以小寫字母單底線數字等組合)
#二:常用函數的型別
(1)帶參數的函數:參數須以正確的順序傳入函數
(2)預設參數函數:未傳遞參數,則會使用預設參數,預設參數不在最後,會報錯!
(3)關鍵字參數:函數呼叫使用關鍵字參數來決定傳入的參數值
(4)不定長參數:函數能處理比當初宣告時更多的參數,
①*args中所有的變數都會被包裝成一個元組存放所有未命名的變數
②**args中所有變數都會被包裝成一個字典
( 5)宣告函數時,參數中星號* 可以單獨出現,*之後的參數必須用關鍵字傳入
(6)匿名函數,使用lambda函數建立匿名函數
①lambda 只是一個表達式,函數體比def 簡單很多
②lambda的主體是一個表達式,而不是一個代碼塊
③函數擁有自己的命名空間,並且不能訪問自己參數列表之外或全域命名空間裡的參數。
三:python 函數的參數傳遞:
不可變型別:
類似 c 的值傳遞,如 int、string、tuple。
如fun(a),傳遞的只是a的值,沒有影響a物件本身。
例如在fun(a)內部修改a 的值,只是修改另一個複製的對象,不會影響a 本身.
可變類型:
類似c 的引用傳遞,如列表,字典。如fun(la),則是將la 真正的傳過去,修改後fun外部的la也會受影響
python中一切都是對象,嚴格意義我們不能說值傳遞還是引用傳遞,我們應該說傳不可變物件和傳輸可變物件
四:變數作用域
python 中的作用域一般有四種:
L (Local) 局部作用域
E (Enclosing) 閉包函數外的函數中
G (Global) 全域作用域
B (Built-in) 內建作用域
找出規則是L-> ;E->G->B
Python 中只有模組(module),類別(class)以及函數(def、lambda)才會引入新的作用域,其它的程式碼區塊(如if/ elif/else/、try/except、for/while等)是不會引入新的作用域的,也就是說這些語句內定義的變量,外部也可以存取。
五:全域變數與局部變數
定義在函數內部的變數擁有一個局部作用域,定義在函數外的擁有全域作用域。
當內部作用域想要修改外部作用域的變數時,就要用到global和nonlocal關鍵字了。
(1)global用來修改全域變數的值
(2)nonlocal要修改嵌套作用域(enclosing 作用域,外層非全域作用域)中的變數則需要nonlocal 關鍵字了
六:函數呼叫中的技巧(重要)
函數名稱.__doc__取得函數的幫助文件
函數名稱可以作為另一個函數的形參
多個傳回值以元組的方式傳回
內部函數,不修改全域變數可以存取全域變數! !
內部函數,修改同名全域變量,則python會認為它是局部變數! !
七:關於命名
(1)檔名:全小寫,可以使用底線
(2)函數名稱:小寫,小駝峰原則
(3)變數名稱:全部小寫,底線連接
詳細的命名規則參考PEP8
八:幾個特殊的函數
map
reduce
filter
# --------------------------------------------------------------------------# # 函数的语法及调用 # --------------------------------------------------------------------------# def func(func_name, number): # 函数的定义 """打印输入的任何字符串""" print(func_name, number) return 'Done' func('func_1', 'faith') # 函数的调用 # --------------------------------------------------------------------------# # 不定长参数函数,封装成元组 # --------------------------------------------------------------------------# def func_1(func_name, *number): """ 打印输入的任何字符串 """ print(type(number)) print(func_name, number) return 'Done' func_1('func_1', 1, 2, 2, 3) def func_2(func_name, number): # print(type(number)) print(func_name, number) return 'Done' func_2('func_2', (1, 2, 2, 3)) def func_3(func_name, *number): print(func_name) print(number[3]) # 根据元组index中一部分变量 print(number[4]) return 'Done' func_3('func_3', 1, 2, 2, 3, 'aaa', 'abc') # get out question: the number of index isn't known in most case! # --------------------------------------------------------------------------# # 不定长参数函数,封装成字典 # --------------------------------------------------------------------------# def func_4(func_name, **number): # 可变参数必须在函数参数的最后 # print(type(number)) print(func_name, number) return 'Done' func_4('func_4', name='faith') # --------------------------------------------------------------------------# # 命名关键字函数 # --------------------------------------------------------------------------# def func_5(a, x, c, *, china, uk): print('func_5:', china, uk) print(a, x, c) func_5(1, 2, 3, china='bJ', uk='rs') # 调用时必须加上关键字 # func_5(1, 2, 3, 'bJ', 'rs') # --------------------------------------------------------------------------# # 函数应用之-递归 # --------------------------------------------------------------------------# def my_sum(i): if i < 0: raise ValueError # 抛出错误 elif i <= 1: return i else: return i + my_sum(i - 1) print(my_sum(1.4)) # --------------------------------------------------------------------------# # 传递不可变对象实例 # --------------------------------------------------------------------------# def change_int(a): a = 10 b = 2 change_int(b) print(b) # 结果是2 # --------------------------------------------------------------------------# # 传递可变对象实例 # --------------------------------------------------------------------------# def change_me(mylist): mylist.append([1, 2, 3, 4]) print("函数内取值: ", mylist) return myList = [10, 20, 30] change_me(myList) print("函数外取值: ", myList) # --------------------------------------------------------------------------# # 函数内修改全局变量的值 # --------------------------------------------------------------------------# money = 200 # 模块里面的全局变量 def add_money(): global money money = money + 1 return money print("修改后的值money = ", add_money()) # --------------------------------------------------------------------------# # 匿名函数 # --------------------------------------------------------------------------# sum_1 = lambda arg1, arg2: arg1 + arg2 # 调用sum函数 print("相加后的值为 : ", sum_1(10, 20)) print("相加后的值为 : ", sum_1(20, 20)) # 单独编译一个文件时候输出结果 if __name__ == "__main__": pass
以上是python中函數部分內容的解析的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Python函數介紹:isinstance函數的用法和範例Python是一門功能強大的程式語言,提供了許多內建函數,使得程式設計變得更加方便和有效率。其中一個非常有用的內建函數是isinstance()函數。本文將介紹isinstance函數的用法和範例,並提供具體的程式碼範例。 isinstance()函數用來判斷一個物件是否是指定的類別或類型的實例。該函數的語法如下

Python函數介紹:abs函數的用法和範例一、abs函數的用法介紹在Python中,abs函數是一個內建函數,用於計算給定數值的絕對值。它可以接受一個數字參數,並傳回該數字的絕對值。 abs函數的基本語法如下:abs(x)其中,x是要計算絕對值的數值參數,可以是整數或浮點數。二、abs函數的範例下面我們將透過一些具體的範例來展示abs函數的用法:範例1:計算

隨著Python程式語言的廣泛應用,開發者常常會在編寫程式過程中遇到「硬編碼錯誤」的問題。所謂“硬編碼錯誤”,指的是將具體的數值、字串等資料直接寫入程式碼中,而不是將其定義為常數或變數。這做法存在著多方面的問題,例如可讀性低,難以維護、修改和測試,同時也會增加出錯的可能性。本篇文章就如何解決Python函數中的硬編碼錯誤這一問題進行探討。一、什麼是硬

Python函數介紹:filter函數的作用和範例Python是一種功能強大的程式語言,提供了許多內建的函數,其中之一就是filter函數。 filter函數用於過濾清單中的元素,並傳回滿足指定條件的元素組成的新清單。在本文中,我們將介紹filter函數的作用,並提供一些範例來幫助讀者理解其用法和潛力。 filter函數的語法如下:filter(function

Python函數介紹:dir函數的用法和範例Python是一種開源的、進階的、解釋性的程式語言。它可用於開發各種類型的應用程序,包括網頁應用程式、桌面應用程式和遊戲等。 Python提供了大量的內建函數和模組,這些函數和模組可以幫助程式設計師快速編寫高效的Python程式碼。其中,dir函數是一個非常有用的內建函數,它可以幫助程式設計師查看物件、模組或類別中的屬性和方法

Python函數介紹:globals函數的功能和使用範例Python是一種功能強大的程式語言,提供了許多內建函數,其中globals()函數就是其中之一。本文將介紹globals()函數的功能和使用範例,並附帶具體的程式碼範例。一、globals函數的功能globals()函數是一個內建函數,用來傳回目前模組的全域變數的字典。它傳回一個包含全域變數的字典,其中

Python是一門流行的高階程式語言,它具有簡單易懂的語法、豐富的標準函式庫和開源社群的支持,而且還支援多種程式設計範式,例如物件導向程式設計、函數式程式設計等。尤其是Python在資料處理、機器學習、科學計算等領域有廣泛的應用。然而,在多執行緒或多進程程式設計中,Python也存在一些問題。其中之一就是併發不安全。本文將從以下幾個方面介紹如何解決Python的函數中的並發不安

Python函數介紹:range函數的介紹及範例Python是一種廣泛應用於各種領域的高階程式語言,它具有簡單易學的特點,並且有著豐富的內建函數庫。其中,range函數是Python中常用的一個內建函數之一。本文將詳細介紹range函數的功能以及使用方法,並透過實例來示範其具體的應用。 range函數是用來產生一個整數序列的函數,它接受三個參數,分別是起始值(
