python def函数报错详解_python所有内置函数的定义详解
>>>?def?hello_world():
...?????print('Hello,world!')???#?注意函數(shù)體要有縮進(jìn)
...
>>>?hello_world()
Hello,world!
這個函數(shù)不帶任何參數(shù),它的功能是打印出“Hello,world!”。最后一行代碼hello_world()是調(diào)用函數(shù),即讓Python執(zhí)行函數(shù)的代碼。
2、全局變量和局部變量
全局變量是定義在所有函數(shù)外的變量。例如,定義一個全局變量a,分別在函數(shù)test1()和test2()使用變量a:
>>>?a?=?100???#?全局變量
>>>?def?test1():
...?????print(a)
...
>>>?def?test2():
...?????print(a)
...
>>>?test1()
100
>>>?test2()
100
定義了全局變量a之后,在函數(shù)test1()和test2()內(nèi)都可以使用變量a,由此可知,全局變量的作用范圍是全局。
局部變量是在函數(shù)內(nèi)定義的變量,除了用關(guān)鍵字global修飾的變量以外。例如,在函數(shù)test1()內(nèi)定義一個局部變量a,分別在函數(shù)外和另一個函數(shù)test2()內(nèi)使用變量a:
>>>?def?test1():
...?????a?=?100???#?局部變量
...?????print(a)
...
>>>?def?test2():
...?????print(a)
...
>>>?test1()
100
>>>?print(a)
Traceback?(most?recent?call?last):
File?"",?line?1,?in?
NameError:?name?'a'?is?not?defined
>>>?test2()
Traceback?(most?recent?call?last):
File?"",?line?1,?in?
File?"",?line?2,?in?test2
NameError:?name?'a'?is?not?defined
Python解釋器提示出錯了。由于局部變量a定義在函數(shù)test1()內(nèi),因此,在函數(shù)test1()內(nèi)可以使用變量a,但是在函數(shù)外或者另一個函數(shù)test2()內(nèi)使用變量a,都會報錯,由此可見,局部變量的作用范圍是定義它的函數(shù)內(nèi)部。
一般情況下,在函數(shù)內(nèi)聲明的變量都是局部變量,但是采用關(guān)鍵字global修飾的變量卻是全局變量:
>>>?def?test1():
...?????global?a???#?全局變量
...?????a?=?100
...?????print(a)
...
>>>?def?test2():
...?????print(a)
...
>>>?test1()
100
>>>?print(a)
100
>>>?test2()
100
這個程序與上個程序相比,只是在函數(shù)test1()中多了一行代碼“global a”,程序便可以正確運行了。在函數(shù)test1()中,采用關(guān)鍵字global修飾了變量a之后,變量a就變成了全局變量,不僅可以在該函數(shù)內(nèi)使用,還可以在函數(shù)外或者其他函數(shù)內(nèi)使用。
如果在某個函數(shù)內(nèi)局部變量與全局變量同名,那么在該函數(shù)中局部變量會覆蓋全局變量:
>>>?a?=?100???#?全局變量
>>>?def?test1():
...?????a?=?200???#?同名局部變量
...?????print(a)
...
>>>?def?test2():
...?????print(a)
...
>>>?test1()
200
>>>?test2()
100
由于在函數(shù)test1()中定義了一個與全局變量同名的局部變量a,因此,在函數(shù)test1()中全局變量a的值被局部變量覆蓋了,但是在函數(shù)test2()中全局變量a的值沒有被覆蓋。
綜上所述,在Python中,全局變量保存的數(shù)據(jù)供整個腳本文件使用;而局部變量只用于臨時保存數(shù)據(jù),變量僅供局部代碼塊使用。
總結(jié)
以上是生活随笔為你收集整理的python def函数报错详解_python所有内置函数的定义详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python算两个点的距离公式_计算Py
- 下一篇: ps抠头发插件_「福利」PS抠图神级插件