方案如下:將另一個(gè)py做成一個(gè)包,或者直接和調(diào)用文件放在同一個(gè)目錄下;在調(diào)用者文件頭引入:from py名字 import *;這樣就可以使用另一個(gè)py文件的所有函數(shù)了。
專注于為中小企業(yè)提供成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)靈璧免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了成百上千企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
這里來給大家演示一下,函數(shù)的定義或構(gòu)造,并調(diào)用函數(shù)來實(shí)現(xiàn)封裝后的效果。
首先我們來看看想實(shí)現(xiàn)下面的這個(gè)效果,如果不使用函數(shù)應(yīng)該怎么實(shí)現(xiàn)。
以上兩種返回結(jié)果都是1-9這幾個(gè)數(shù)字。
以上兩種方法,第一種代碼重復(fù)率太高,代碼美觀效果太差,雖然能實(shí)現(xiàn)效果,但是因?yàn)閿?shù)量比較少,還能手工打出來這幾行代碼,如果是打印1-100000就很難實(shí)現(xiàn)了。這時(shí)候for循環(huán)還是可以實(shí)現(xiàn)的,但是for循環(huán)只能實(shí)現(xiàn)類似的數(shù)字和變量循環(huán),無法進(jìn)行復(fù)雜的功能開發(fā)。鑒于此,函數(shù)這個(gè)概念就被python引入了,下面先來看看函數(shù)是怎么實(shí)現(xiàn)上面的效果的,還是兩種方法。
這時(shí)候如果想實(shí)現(xiàn)上面的打印結(jié)果就直接使用函數(shù)名+小括號(hào)調(diào)用函數(shù)就可以了,這種類型的語法,不僅可以反復(fù)使用,而且封裝后的代碼更美觀。
使用關(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
當(dāng)前文章:python轉(zhuǎn)至函數(shù)定義 python 類型轉(zhuǎn)換函數(shù)
文章鏈接:http://muchs.cn/article12/doegigc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動(dòng)態(tài)網(wǎng)站、域名注冊、網(wǎng)站改版、搜索引擎優(yōu)化、虛擬主機(jī)、網(wǎng)站內(nèi)鏈
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)