python函数应用_Python 函数及其应用
Python函數:
一個具有獨立功能的代碼塊,重復使用時,那么往往就需要使用函數把這塊代碼封裝成一個整體。
一、定義函數:
def 函數名():
函數代碼
定義一個函數,函數不會執行,要執行需要調用函數
二、調用函數:
函數名()
函數定義一次,可以多次被調用
demo:
def printHelp():
print('='*30)
print(' 學生管理系統')
print('1.添加學生信息')
print('2.刪除學生信息')
print('3.修改學生信息')
print('4.查詢學生信息')
print('5.顯示學生信息')
print('0.退出系統')
print('='*30)
printHelp()
三、返回值:
一個函數執行完成以后,把一個結果拿給調用者 ,只能返回一個值
return : 1.可以把一個結果返回給調用者
2.結束一個函數
注意:如果一個函數中編寫了多個return,程序不會出現語法錯誤,
只要第一個return執行了,這個函數就結束了
四、全局變量與局部變量
全局變量:
在函數外面定義的變量就是全局變量
全局變量一般不能直接在函數內部被更改
如果要更改,可以用:global + 變量名
局部變量:
在函數里面定義的變量就是局部變量
形參是局部變量
五、不定長參數
demo:
#不帶名字的參數將作為一個元素傳給*args,形成一個元組
#帶名字的參數將作為一個元素傳給**kwargs,形成一個字典
def test(a,b,*args,**kwargs):
print(a)
print(b)
print(args)
print(kwargs)
test(11,22,33,44,55,66,77,88,mm = 11,nn =33)
print('-' * 50)
#當列表/元組在當做實參傳遞的時候,如果前面有一個*,表示對其進行解包
#意思是:[111,222,333] ---> 111,222,333
#當字典當做一個實參進行傳遞的時候,如果前面有兩個*,表示對其進行解包
#意思是:{’aa':100,'bb':200} ---> a = 100,b = 200
A = [11,22,33]
B = {'aa':100,'bb':200}
test (11,22,*A,**B)#等價于(11,22,11,22,33,aa = 100,bb = 200)
print('-' * 50)
test(11,22,A,new = B)
六、遞歸:
#demo 1 階乘遞歸
def test(num):
if num > 1:
return num * test(num-1)
else:
return 1
i = int(input('請輸入一個數字:'))
print(test(i))
#demo 2 漢諾塔
#有三根相鄰的柱子,標號為A,B,C,A柱子上從下到上按金字塔狀疊放著n個不同大小的圓盤,
要把所有盤子一個一個移動到柱子B上,并且每次移動同一根柱子上都不能出現大盤子在小盤子
上方,請問至少需要多少次移動?
def move(n,a,b,c):
if n == 1:
print(a,'----->',c)
else:
move(n-1,a,c,b)
move(1,a,b,c)
move(n-1,b,a,c)
move(4,'A','B','C')
七、匿名函數
def sum(a,b):
return a + b
#等價于
sum = lambda a,b: a + b
八、內建函數
1.map(函數,可迭代對象)#進行對應操作
例如:map(lambda x : x * x,[1,2,3])
2.filter(函數,可迭代對象)#過濾,函數返回布爾值
例如:filter(lambda x: x%2,[1,2,3,4])
3.reduce(函數,可迭代對象)#累計值
例如:reduce(lambda x,y: x+y,[1,2,3,4])
reduce(lambda x,y:x+y,['aa','bb','cc'],'dd')
#結果為’ddaabbcc'
4.sorted(可迭代對象)#排序,倒序加reverse = True
總結
以上是生活随笔為你收集整理的python函数应用_Python 函数及其应用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql支持UUID做外键_Mysql
- 下一篇: mysql5.7.11解压版_Mysql