python初學者(六)----函式
阿新 • • 發佈:2019-01-24
我們都知道,每一種語言,都會有函式這個玩意,因為有函式在,就可以簡化程式碼了,不至於讓程式碼太過於臃腫了
先了解一下幾種函式的型別,面向物件型的和麵向過程型的函式
#面向物件函式的類寫法是前面寫的是class,即表示的是類
#面向過程的函式和函數語言程式設計,函式的前面寫的是def
so,我們來說一下python的用法吧
def func1():
print('in the func1')
return 0
這個就是最簡單的python的函式的用法,def宣告一下,這就表明是函式,函式都要有返回值的,返回值表示返回的函式執行的結果
x = func1()
這就是返回了函式的返回值,不信,你列印看看?
最簡單的函式實現了,下面看一個比較複雜一點的吧,先上程式碼
#!/user/bin/env python # -*- coding:utf-8 -*- # Author:yongzheng import time #倒入模組 def logger(): time_format = '%Y-%M-%d %X'#x代表小時分鐘秒 time_current = time.strftime(time_format)#引用上面的時間格式 with open('a.txt','a+') as f:###就是開啟一個檔案,準備往這個檔案中寫資訊的一種格式 f.write('%s end action\n'%time_current) def test1(): print('in the test1') logger() def test2(): print('in the test2') logger() def test3(): print('in the test3') logger() test1() test2() test3()
這段程式碼有幾點需要說明一下,第一,import,這就是匯入包,匯入時間包這裡,第二,函式之間可以巢狀呼叫,第三,with。。。as。。。其實就是表示開啟檔案的意思,其他的,還有什麼不明白的麼?有的話留言啦,一定會解答的
下面說一下,函式可以沒有返回值的,如果沒有返回值,那返回的資訊就是none,當然,返回值隨便啦,就比如數字,字串,列表啦。。。。等等都是可以的,比如:
def test3():
return 0,'hello',['a','b','c'],{'name':'wyz'}
上面說的都是無參型別的函式,函式既然有無參的,那就肯定會有有參的函式,但凡有點程式碼基礎的,我就不多說基礎有參函數了,無非就是形參和實參兩種型別需要注意一下,算了,我不放心,還是貼上一段程式碼吧,如下
形參的幾種形式,上面都一覽無餘了,引數不管順序,但是有幾點需要注意def test(x,y,z): print(x) print(y) print(z) # test(y=2,x=1) #與形參順序無關 # test(1,2) #與形參一一對應 #test(x=2,3) test(3,z=2,y=6)
#######關鍵引數不能寫在位置引數前面的!!!!!
###預設引數的特點:呼叫引數時,預設引數可有可無
上面說的,都是有參無參的簡單用法,下面說一下比較複雜一點的用法,我的程式碼中都有註釋,你們看看
#!/user/bin/env python
# -*- coding:utf-8 -*-
# Author:yongzheng
def test(*dsa):
print(dsa)
test(1,2,3,4,5,5,5)#整體輸出所有的引數
test(*[1,2,3,4,5,6,7])#第二種形式而已
def test1(x,*args):
print(x)
print(args)
test1(1,2,3,4,5,6,7)#x取第一個,剩下的交給指標,接受剩下的引數
def test2(**kwargs):## **kwargs 接受N個關鍵字引數,轉換成字典的方式(鍵值對方式如{'name': 'wyz', 'age': 8, 'sex': 'f'})
print(kwargs)
print(kwargs['name'])#取鍵得value,如此處得到wyz
print(kwargs['age'])#此處得到8
test2(name = 'wyz',age = 8,sex = 'f')#{'name': 'wyz', 'age': 8, 'sex': 'f'}
test2(**{'name':'wyz','age':9})##第二種寫法
def test3(name ,**kwargs):
print(name)
print(kwargs)
test3('alex',age = 18,sex = 'f')
def test4(name,age = 18,**kwargs):
print(name)
print(age)
print(kwargs)
test4('way',age=34,sex = 'm',hobby = 'tesss')
其實吧,你們把他們放到工具中泡一下就明白到底什麼意思了,很簡單啦!
好啦,寫了一天部落格了,就這麼著吧,明天繼續哈,不懂得,就給我留言,我會盡快回復的!