fun函数python_Python函数
Python函數
一般函數定義方式
def sum(a, b): return a+b
##返回a與b的和1
2
3
一些概念與特性
嵌套
Python的函數是可以嵌套定義的
def Fun1(): print("Runing Fun1...") def Fun2(): print("Runing Fun2...") Fun2()1
2
3
4
5
但是要注意在內部定義就只能在內部使用,超出函數范圍不能再調用Fun2,只能通過Fun1來調用Fun2
當嘗試在外部調用Fun2時會報錯
例如
def Fun1(): print("Runing Fun1...") def Fun2(): print("Runing Fun2...")
Fun2()1
2
3
4
5
此時Python解釋器會報錯
閉包
閉包的定義:閉包就是能夠讀取其他函數內部變量的函數。
由這個定義我們可以知道上例中Fun2算得上是一個閉包,不過一般不稱之為閉包,因為它并未讀取Fun1的內部變量。
閉包示例:
def Fun1(x): def Fun2(y): return x*y return Fun2();
##調用
Fun1(2)(3)1
2
3
4
5
6
以上可以稱為閉包
解釋:Fun1會返回一個函數,其實就是返回的Fun2,它需要傳遞一個參數,來進行后續操作,所以Fun(2)(3)>相當于是把兩個參數同時傳入經行乘積。
但是Fun2是不能改變Fun1里面的值
例如:
def Fun1(): x = 5 def Fun2(): x *= x return x return Fun2()1
2
3
4
5
6
上述代碼會報錯。
在早期,程序員們對于這種問題的解決方案是用容器類型來處理,因為容器類型不會存放在棧里,不會被屏蔽,例如上述問題可以用列表來解決。
def Fun1(): x = [5] def Fun2(): x[0] *= x[0] return x[0] return Fun2()1
2
3
4
5
6
后來在一次Python更新中解決了這個問題,使用nonlocal修飾即可
def Fun1(): nonlocal x = 5 def Fun2(): x *= x return x return Fun2()1
2
3
4
5
6
lambda表達式
概念
沒什么具體定義,就相當于是一個沒有名字的匿名函數,用Python實現比Java簡單一點
格式
一般這樣定義
lambda x, y : x + y1
最基本的使用
fun = lambda x, y : x + y
fun(2, 3)1
2
與兩個過濾器一起使用
Filter
Filter的用法大概是這樣
filter(fun, 可迭代序列)1
然后它就會迭代第二個參數的每一個元素,將它們放入第一個參數里面計算,得到的值是真就保留該元素,是假就將其過濾。
示例
filter(lambda x : x % 2, range(20))1
就可以立刻過濾出由0到19的所有奇數。
Map
Map的用法
map(lambda x : x % 2, range(20))1
map會把列表(可迭代序列)里面所有的值拿出來進行前面所給的函數操作,返回一個容器。
list(map(lambda x : x%2, range(20)))1
就會把所有的偶數變為0,奇數變為1。
上述的兩個過濾器都不改變原來可迭代序列,而是返回一個新的容器
遞歸
概念
程序調用自身的編程技巧稱為遞歸
基本的求和
def mysum(x): if x != 0: return x + mysum(x-1) else: return x
##求前x項的和1
2
3
4
5
6
斐波拉契數列
def Feb(x-1): if x== 1 or x == 0: return x else: return feb(x-1)+feb(x-2)
#求斐波拉契數列的第x項(從第一項開始!)1
2
3
4
5
6
寫函數文檔
當你在不知道python里面某一個函數的作用時,比如說你不知道max函數的作用,可以輸入help(max)來獲取相關信息,這些信息就是max函數的函數文檔內容,它的編寫方式如下。
def FunDoc(): '''這是FunDoc函數的函數文檔''' print(FunDoc Run...)
help(FunDoc)1
2
3
4
5
運行結果如下
FunDoc()
這是FunDoc函數的函數文檔1
2
函數文檔相當于是屬于一個函數的專有注釋。
文章來源: blog.csdn.net,作者:Sout xza,版權歸原作者所有,如需轉載,請聯系作者。
原文鏈接:blog.csdn.net/ooblack/article/details/112439693
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的fun函数python_Python函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: qt坐标系统与布局的简单入门
- 下一篇: sr650服务器cpu型号,至强Gold