本文目錄一覽:
python所有內置函數的定義詳解
1、定義函數
函數是可重用的程序。本書中已經使用了許多內建函數,如len()函數和range()函數,但是還沒自定義過函數。定義函數的語法格式如下:
def 函數名(參數):
函數體
定義函數的規則如下:
①關鍵字def用來定義一個函數,它是define的縮寫。
②函數名是函數的唯一標識,函數名的命名規則遵循標識符的命名規則。
③函數名後面一定要緊跟著一個括弧,括弧內的參數是可選的,括弧後面要有冒號。
④函數體(statement)為一個或一組Python語句,注意要有縮進。
⑤函數體的第一行可以有文檔字元串,用於描述函數的功能,用三引號括起來。
按照定義規則,可以定義第一個函數了:
def hello_world():
… print(‘Hello,world!’) # 注意函數體要有縮進
…
hello_world()
Hello,world!
這個函數不帶任何參數,它的功能是列印出「Hello,world!」。最後一行代碼hello_world()是調用函數,即讓Python執行函數的代碼。
2、全局變數和局部變數
全局變數是定義在所有函數外的變數。例如,定義一個全局變數a,分別在函數test1()和test2()使用變數a:
a = 100 # 全局變數
def test1():
… print(a)
…
def test2():
… print(a)
…
test1()
100
test2()
100
定義了全局變數a之後,在函數test1()和test2()內都可以使用變數a,由此可知,全局變數的作用範圍是全局。
局部變數是在函數內定義的變數,除了用關鍵字global修飾的變數以外。例如,在函數test1()內定義一個局部變數a,分別在函數外和另一個函數test2()內使用變數a:
def test1():
… a = 100 # 局部變數
… print(a)
…
def test2():
… print(a)
…
test1()
100
print(a)
Traceback (most recent call last):
File “stdin”, line 1, in module
NameError: name ‘a’ is not defined
test2()
Traceback (most recent call last):
File “stdin”, line 1, in module
File “stdin”, line 2, in test2
NameError: name ‘a’ is not defined
Python解釋器提示出錯了。由於局部變數a定義在函數test1()內,因此,在函數test1()內可以使用變數a,但是在函數外或者另一個函數test2()內使用變數a,都會報錯,由此可見,局部變數的作用範圍是定義它的函數內部。
一般情況下,在函數內聲明的變數都是局部變數,但是採用關鍵字global修飾的變數卻是全局變數:
def test1():
… global a # 全局變數
… a = 100
… print(a)
…
def test2():
… print(a)
…
test1()
100
print(a)
100
test2()
100
這個程序與上個程序相比,只是在函數test1()中多了一行代碼「global a」,程序便可以正確運行了。在函數test1()中,採用關鍵字global修飾了變數a之後,變數a就變成了全局變數,不僅可以在該函數內使用,還可以在函數外或者其他函數內使用。
如果在某個函數內局部變數與全局變數同名,那麼在該函數中局部變數會覆蓋全局變數:
a = 100 # 全局變數
def test1():
… a = 200 # 同名局部變數
… print(a)
…
def test2():
… print(a)
…
test1()
200
test2()
100
由於在函數test1()中定義了一個與全局變數同名的局部變數a,因此,在函數test1()中全局變數a的值被局部變數覆蓋了,但是在函數test2()中全局變數a的值沒有被覆蓋。
綜上所述,在Python中,全局變數保存的數據供整個腳本文件使用;而局部變數只用於臨時保存數據,變數僅供局部代碼塊使用。
如何查看 Python 全部內置變數和內置函數?
查看python內置函數的方法:1、打開Python IDLE編輯器;2、輸入” dir(__builtins__)”命令,按下回車鍵(Enter)得到Python全部內置變數和函數。
如何查看 Python 全部內置變數和內置函數?
1 如圖,打開 Python IDLE,我用的 是 Python 3.7 ,界面有個性定製。你的版本不同,界面有差異,但是操作方法應該是一樣的。
2 輸入 dir(__builtins__)
按下回車鍵(Enter)。
3 也可以:
import builtins
dir(builtins)
按下回車鍵(Enter)。
得到的結果和 dir(__builtins__) 是一樣的。
4 那麼這返回的一大堆到底是什麼東西?
可以看到,返回的結果是以 [ 開頭以 ] 結尾,說明是個列表,我們看看這列表裡一共有多少個元素?
輸入:
len(dir(__builtins__))
得到一個數字,154 ,說明當前版本的 Python 內置的常量和函數總數是 154 。
5 我們再重新輸出一下這個列表,逐個列印出來,更好看一點。
for item in dir(__builtins__):
print(item)
按下兩次回車鍵(Enter)。按照默認的字母順序,先是大寫字母 A-Z,然後是下劃線(_)開頭的,然後是小寫字母 a-z ,為什麼是這個順序?因為按照 ASCII 碼錶,表示小寫字母的數字比表示大寫字母的數字要大,而表示下劃線(_)的數字居中,所以如此。
6 print() 就是 Python 3 的默認函數。我們試試:
print(‘Hello World’)
builtins.print(‘Hello World’)
__builtins__.print(‘Hello World’)
運行結果如下,可以看到,結果是一樣的。
dir()本身就是 Python 的內置函數,利用它,我們可以查看對象的全部方法和屬性,對於掌控全局,了解全貌很有用。
課程推薦:Python快速教程之從入門到精通
什麼是Python內置函數
所謂的內置函數,就是Python給你提供的,直接可以拿來使用的函數,比如說print、input等。常見的內置函數如下:
第一、help()函數
Help()函數的參數分為兩種:如果傳一個字元串做參數的話,它會自動搜索以這個字元串命名的模塊、方法等;如果傳入的是一個對象,就會顯示這個對象的類型的幫助。比如輸入help(『print』),它就會尋找以『print』為名的模塊、類等,找不到就會看到提示信息;而print在Python里是一個保留字,和pass、return同等,而非對象,所以help(print)也會報錯。
第二、dir()函數
dir()函數返回任意對象的屬性和方法列表,包含模塊對象、函數對象、字元串對象、列表對象、字典對象等。儘管查找和導入模塊相對容易,但是記住每個模塊包含什麼卻不是這麼簡單,您並不希望總是必須查看源代碼來找出答案。Python提供了一種方法,可以使用內置的dir()函數來檢查模塊的內容,當你為dir()提供一個模塊名的時候,它返回模塊定義的屬性列表。dir()函數適用於所有對象的類型,包含字元串、整數、列表、元組、字典、函數、定製類、類實例和類方法。
第三、input與raw_input函數
都是用於讀取用戶輸入的,不同的是input()函數期望用戶輸入的是一個有效的表達式,而raw_input()函數是將用戶的輸入包裝成一個字元串。
第四、Print()函數
Print在Python3版本之間是作為Python語句使用的,在Python3里print是作為函數使用的。
第五、type()函數
Type()函數返回任意對象的數據類型。在types模塊中列出了可能的數據類型,這對於處理多種數據類型的函數非常有用,它通過返回類型對象來做到這一點,可以將這個類型對象與types模塊中定義類型相比較。
68 個 Python 內置函數詳解
內置函數就是Python給你提供的,拿來直接用的函數,比如print.,input等。
截止到python版本3.6.2 ,python一共提供了68個內置函數,具體如下
本文將這68個內置函數綜合整理為12大類,正在學習Python基礎的讀者一定不要錯過,建議收藏學習!
(1)列表和元組
(2)相關內置函數
(3)字元串
frozenset 創建一個凍結的集合,凍結的集合不能進行添加和刪除操作。
語法:sorted(Iterable, key=函數(排序規則), reverse=False)
語法:fiter(function. Iterable)
function: 用來篩選的函數. 在filter中會自動的把iterable中的元素傳遞給function. 然後根據function返回的True或者False來判斷是否保留留此項數據 , Iterable: 可迭代對象
搜索公眾號頂級架構師後台回復「面試」,送你一份驚喜禮包。
語法 : map(function, iterable)
可以對可迭代對象中的每一個元素進行映射. 分別去執行 function
hash : 獲取到對象的哈希值(int, str, bool, tuple). hash演算法:(1) 目的是唯一性 (2) dict 查找效率非常高, hash表.用空間換的時間 比較耗費內存
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/197334.html