python中def意思是聲明函數(shù)。
成都創(chuàng)新互聯(lián)10多年成都企業(yè)網(wǎng)站建設(shè)服務(wù);為您提供網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)頁設(shè)計及高端網(wǎng)站定制服務(wù),成都企業(yè)網(wǎng)站建設(shè)及推廣,對火鍋店設(shè)計等多個行業(yè)擁有多年的網(wǎng)站營銷經(jīng)驗的網(wǎng)站建設(shè)公司。
Python 使用def 開始函數(shù)定義,緊接著是函數(shù)名,括號內(nèi)部為函數(shù)的參數(shù),內(nèi)部為函數(shù)的 具體功能實現(xiàn)代碼,如果想要函數(shù)有返回值, 在?expressions 中的邏輯代碼中用 return 返回。
expressions
實例def function():
print('This is a function')
a = 1+2
print(a)
function 的函數(shù),函數(shù)沒有不接受參數(shù),所以括號內(nèi)部為空,緊接著就是 函數(shù)的功能代碼。如果執(zhí)行該腳本,發(fā)現(xiàn)并沒有輸出任何輸出,因為我們只定義了函數(shù),而并沒有執(zhí)行函數(shù)。 這時我們在 Python 命令提示符中輸入函數(shù)調(diào)用 function(), 注意這里調(diào)用函數(shù)的括號不能省略。
那么函數(shù)內(nèi)部的功能代碼將會執(zhí)行,輸出結(jié)果:This is a function。
1、函數(shù)定義
①使用def關(guān)鍵字定義函數(shù)
②
def 函數(shù)名(參數(shù)1.參數(shù)2.參數(shù)3...):
"""文檔字符串,docstring,用來說明函數(shù)的作用"""
#函數(shù)體
return 表達式
注釋的作用:說明函數(shù)是做什么的,函數(shù)有什么功能。
③遇到冒號要縮進,冒號后面所有的縮進的代碼塊構(gòu)成了函數(shù)體,描述了函數(shù)是做什么的,即函數(shù)的功能是什么。Python函數(shù)的本質(zhì)與數(shù)學中的函數(shù)的本質(zhì)是一致的。
2、函數(shù)調(diào)用
①函數(shù)必須先定義,才能調(diào)用,否則會報錯。
②無參數(shù)時函數(shù)的調(diào)用:函數(shù)名(),有參數(shù)時函數(shù)的調(diào)用:函數(shù)名(參數(shù)1.參數(shù)2.……)
③不要在定義函數(shù)的時候在函數(shù)體里面調(diào)用本身,否則會出不來,陷入循環(huán)調(diào)用。
④函數(shù)需要調(diào)用函數(shù)體才會被執(zhí)行,單純的只是定義函數(shù)是不會被執(zhí)行的。
⑤Debug工具中Step into進入到調(diào)用的函數(shù)里,Step Into My Code進入到調(diào)用的模塊里函數(shù)。
1、定義函數(shù)
函數(shù)是可重用的程序。本書中已經(jīng)使用了許多內(nèi)建函數(shù),如len()函數(shù)和range()函數(shù),但是還沒自定義過函數(shù)。定義函數(shù)的語法格式如下:
def 函數(shù)名(參數(shù)):
函數(shù)體
定義函數(shù)的規(guī)則如下:
①關(guān)鍵字def用來定義一個函數(shù),它是define的縮寫。
②函數(shù)名是函數(shù)的唯一標識,函數(shù)名的命名規(guī)則遵循標識符的命名規(guī)則。
③函數(shù)名后面一定要緊跟著一個括號,括號內(nèi)的參數(shù)是可選的,括號后面要有冒號。
④函數(shù)體(statement)為一個或一組Python語句,注意要有縮進。
⑤函數(shù)體的第一行可以有文檔字符串,用于描述函數(shù)的功能,用三引號括起來。
按照定義規(guī)則,可以定義第一個函數(shù)了:
def?hello_world():
...?????print('Hello,world!')???#?注意函數(shù)體要有縮進
...
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?"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定義在函數(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ù),變量僅供局部代碼塊使用。
當前名稱:關(guān)于python提示函數(shù)名的信息
文章地址:http://aaarwkj.com/article18/hsdcdp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導航、標簽優(yōu)化、動態(tài)網(wǎng)站、服務(wù)器托管、小程序開發(fā)、移動網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)