Python 有很多有用的內(nèi)置函數(shù), 但還是不能滿足程序員的需求, 所以需要 自定義函數(shù) 。
創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供懷化網(wǎng)站建設(shè)、懷化做網(wǎng)站、懷化網(wǎng)站設(shè)計(jì)、懷化網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)與制作、懷化企業(yè)網(wǎng)站模板建站服務(wù),十余年懷化做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
如何編寫 自定義函數(shù) , 需要用到 def語句, 函數(shù)名, 括號(hào)及參數(shù), 冒號(hào), 函數(shù)說明,內(nèi)置縮進(jìn)編碼模塊,return 語句 , 其中有一些也可省略不寫,后面會(huì)慢慢介紹。
編寫函數(shù)不可或缺的元素, 一定都要寫。函數(shù)名盡量寫得簡單易懂。
一般是對(duì)函數(shù)的描述說明。
這是編寫具體的 操作命令 的地方, 如果還未想好如何編寫, 可以使用 pass 來占位,讓程序可以運(yùn)行起來,防止調(diào)試出錯(cuò)。
參數(shù)放在最后講, 是因?yàn)檫@里面的東西還是很多的。首先看個(gè)例子。
如上的案例都是限制了參數(shù)個(gè)數(shù)的, 最多傳三個(gè)參數(shù) name/age/city , 但是如果有一些特例,需要傳多個(gè)參數(shù)怎么辦呢。 參數(shù)前面加個(gè) * , 變成 可變參數(shù) 。
那如果想要傳多個(gè)包含名稱的參數(shù),例如a=1,b=2,c=3......,那該怎么寫呢。參數(shù)前面加個(gè) ** , 變成 關(guān)鍵字參數(shù) 。
使用關(guān)鍵詞 def 聲明這是一個(gè)函數(shù)
1def 函數(shù)名 (參數(shù)):
2 語句塊
參數(shù)可以沒有,也可以有多個(gè),用逗號(hào)隔開,第一行稱為函數(shù)頭,結(jié)尾一定要加冒號(hào),代表開始進(jìn)入函數(shù)體的執(zhí)行。
語句塊也就是函數(shù)體,是關(guān)于這個(gè)函數(shù)要實(shí)現(xiàn)的功能的語句,語句要有返回值即return語句,如果沒有return語句,就代表return none.
定義函數(shù)需要注意的幾個(gè)事項(xiàng):
1、def開頭,代表定義函數(shù)
2、def和函數(shù)名中間要敲一個(gè)空格
3、之后是函數(shù)名,這個(gè)名字用戶自己起的,方便自己使用就好
4、函數(shù)名后跟圓括號(hào)(),代表定義的是函數(shù),里邊可加參數(shù)
5、圓括號(hào)()后一定要加冒號(hào): 這個(gè)很重要,不要忘記了
6、代碼塊部分,是由語句組成,要有縮進(jìn)
7、函數(shù)要有返回值return
下面是幾個(gè)例子:
1 #python中的函數(shù)定義,使用和傳參
2 def_str = '''\
3 python中的函數(shù)以如下形式聲明:
4
5 def 函數(shù)名稱([參數(shù)1,參數(shù)2,參數(shù)3......]):
6 執(zhí)行語句
7
8 如:
9
10 def helloWorld():
11 print('hello')
12
13 if __name__ == '_main__':
14 helloWorld()
15
16 輸出:hello
17 '''
18 print(def_str)
19
20 #下面進(jìn)行舉例說明
21
22 def helloWorld():
23 print('輸出:hello')
24
25 if __name__ == '__main__':
26 helloWorld()
27
28 print('''\
29 ################################################
30
31 函數(shù)可以帶參數(shù)和返回值,參數(shù)將按從左到右的匹配,
32 參數(shù)可設(shè)置默認(rèn)值,當(dāng)使用函數(shù)時(shí)沒給相應(yīng)的參數(shù)時(shí),
33 會(huì)按照默認(rèn)值進(jìn)行賦值
34
35 ################################################
36 ''')
37
38 #定義一個(gè)方法:x的y次方
39 def myMethod(x,y):
40 return x**y
41
42 def fib(n):
43 a , b = 0 , 1
44 while a n:
45 print(a, end=' ')
46 a , b = b , a + b
47 print()
48
49 #獲取一個(gè)新的數(shù)組
50 #@param oldList 原數(shù)組
51 #@param length 要添加的長度
52 def getList(oldList,length):
53 if length 0:
54 for i in range(0,length):
55 oldList.append(i)
56 return oldList
57 else:
58 return '你輸入的長度小于0'
59
60 def ask_ok(prompt, retries=4, complaint='Yes or no, please!'):
61 while True:
62 ok = input(prompt)
63 if ok in ('y', 'ye', 'yes'):
64 return True
65 if ok in ('n', 'no', 'nop', 'nope'):
66 return False
67 retries = retries - 1
68 if retries 0:
69 raise IOError('refusenik user')
70 print(complaint)
71
72 if __name__ == '__main__':
73 x = 3
74 y = 4
75 n = 2000
76 print(x , '的' , y , '次方(' ,x ,'**' , y ,') = ' , myMethod(x,y))
77 print('函數(shù)fib(n),當(dāng)n =' ,n)
78 fib(n)
79 print(getList(['begin'],-10))
80 ask_ok('y')
運(yùn)行效果:
Python 3.3.2 (v3.3.2:d047928ae3f6, May 16 2013, 00:03:43) [MSC v.1600 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
================================ RESTART ================================
python中的函數(shù)以如下形式聲明:
def 函數(shù)名稱([參數(shù)1,參數(shù)2,參數(shù)3......]):
執(zhí)行語句
如:
def helloWorld():
print('hello')
if __name__ == '_main__':
helloWorld()
輸出:hello
輸出:hello
################################################
函數(shù)可以帶參數(shù)和返回值,參數(shù)將按從左到右的匹配,
參數(shù)可設(shè)置默認(rèn)值,當(dāng)使用函數(shù)時(shí)沒給相應(yīng)的參數(shù)時(shí),
會(huì)按照默認(rèn)值進(jìn)行賦值
################################################
3 的 4 次方( 3 ** 4 ) = 81
函數(shù)fib(n),當(dāng)n = 2000
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597
你輸入的長度小于0
y輸出:hello
Yes or no, please!
y
Yes or no, please!
y
Yes or no, please!
y
Yes or no, please!
y
Traceback (most recent call last):
File "E:/Python33/python_workspace/test_function.py", line 80, in module
ask_ok('y')
File "E:/Python33/python_workspace/test_function.py", line 69, in ask_ok
raise IOError('refusenik user')
OSError: refusenik user
Python的自定義函數(shù)格式中規(guī)中矩,用def引導(dǎo)自定義函數(shù)名,用括號(hào)給出該函數(shù)的參數(shù),在冒號(hào)后換行通過縮進(jìn)確定函數(shù)體。在格式上和條件判斷語句有些相似。
如果函數(shù)名和變量名沖突了,相當(dāng)于重新賦值。而python解釋是從上到下的,也就是說此時(shí)誰在下面誰占用這個(gè)變量名。剩下的那個(gè)就只能在內(nèi)存中等待垃圾回收了。
自定義函數(shù)的參數(shù):
按道理來說,即使Python不嚴(yán)格要求定義函數(shù)參數(shù),但這方面的知識(shí)有助于理解自定義函數(shù)中參數(shù)操作的情況,還是應(yīng)該說明一下的。
可以簡單地理解為在定義函數(shù)時(shí)括號(hào)中聲明的參數(shù)是我們?cè)诤瘮?shù)使用中會(huì)用到的參數(shù),在調(diào)用函數(shù)時(shí)括號(hào)中的變量就是參加函數(shù)運(yùn)算用到的變量,換個(gè)名字參數(shù)(用于定義)和變量(用于調(diào)用)就足以理解了。
python系統(tǒng)提供了下面常用的函數(shù):
1. 數(shù)學(xué)庫模塊(math)提供了很多數(shù)學(xué)運(yùn)算函數(shù);
2.復(fù)數(shù)模塊(cmath)提供了用于復(fù)數(shù)運(yùn)算的函數(shù);
3.隨機(jī)數(shù)模塊(random)提供了用來生成隨機(jī)數(shù)的函數(shù);
4.時(shí)間(time)和日歷(calendar)模塊提供了能處理日期和時(shí)間的函數(shù)。
注意:在調(diào)用系統(tǒng)函數(shù)之前,先要使用import 語句導(dǎo)入 相應(yīng)的模塊
該語句將模塊中定義的函數(shù)代碼復(fù)制到自己的程 序中,然后就可以訪問模塊中的任何函數(shù),其方 法是在函數(shù)名前面加上“模塊名.”。
希望能幫到你。
網(wǎng)站題目:python加函數(shù)名 python @函數(shù)名
網(wǎng)站URL:http://www.muchs.cn/article28/hphhcp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營銷型網(wǎng)站建設(shè)、用戶體驗(yàn)、定制開發(fā)、手機(jī)網(wǎng)站建設(shè)、建站公司、響應(yīng)式網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
移動(dòng)網(wǎng)站建設(shè)知識(shí)