在乙個函式體內部,呼叫函式本身,被稱為遞迴函式。
def
f(n)
:if n ==1:
return
1if n ==2:
return
1else
:return f(n-1)
+ f(n-2)
print
(f(10))
55
def
func
(n):
print
(n)if
int(n/2)
==0:return n
return func(
int(n/2)
)print
(func(10)
)1052
11
格式:
lambda para1,para2,..
..,paran : expression using paras
f =
lambda x,y,z: x+y+z
print
(type
(f))
print
(f(1,2
,3))
6
高階函式:把乙個函式名,以實參的形式,傳遞給這個函式的形參,這個函式就是高階函式。
def
add(a,b,c)
:return c(a)
+ c(b)
a_value = add(-9
,1,abs
)print
(a_value)
10
def
pow(x)
:return x**
2def
add(a,b,c)
:return c(a)
+ c(b)
a_value = add(1,
2,pow)
print
(a_value)
5
li =
['zhejiang'
,'un'
,'city'
,'college'
]def
s(sr)
:return sr.startswith(
'c')
defe
(sr)
:return sr.endswith(
'ty'
)def
f(func,para)
: ret =
for i in para:
ifnot func(i)
:return ret
print
(f(s,li)
)print
(f(e,li))[
'zhejiang'
,'un'][
'zhejiang'
,'un'
,'college'
]
li =
['zhejiang'
,'un'
,'city'
,'college'
]def
f(para)
: ret =
for i in para:
ifnot i.startswith(
'c')
:return ret
print
(f(li)
)
li =
['zhejiang'
,'un'
,'city'
,'college'
]def
f(func,para)
: ret =
for i in para:
ifnot func(i)
:return ret
fl =
filter
(lambda sr:
not sr.endswith(
'ty'
),li)
print
(list
(fl)
)f2 =
filter
(lambda sr:
not sr.startswith(
'c')
,li)
print
(list
(f2)
)
功能: 功能
格式
li =[1
,2,3
,4,5
]res =
map(
lambda x:x+
1,li)
print
(list
(res)
)
x =[1
,2,3
,4,5
]y =[2
,3,4
,5,6
]res =
map(
lambda x,y:x*y+
2,x,y)
print
(list
(res))[
4,8,
14,22,
32]
格式
from functools import
reduce
y =[2,
3,4,
5,6]
z =reduce
(lambda x,y: x + y,y)
print
(z)20
from functools import
reduce
y =[2,
3,4,
5,6]
z =reduce
(lambda x,y: x + y,y,
100)
print
(z)120
from functools import
reduce
y =[2,
3,4,
5,6]
z =reduce
(lambda x,y: x*
10+ y,y)
print
(z)23456
from functools import
reduce
y =[2,
3,4,
5,6]
z =reduce
(lambda x,y: x*
10+ y,y,10)
print
(z)1023456
功能功能
注:利用 * 號操作符,與zip相反,進行解壓
格式:zip(iterable1, iterable2, …)
a =[1
,2,3
]b =[4
,5,6
]c =[4
,5,6
,7,8
]ziptest1 =
zip(a, b)
print
(list
(ziptest1))[
(1,4
),(2
,5),
(3,6
)]
a =[1
,2,3
]b =[4
,5,6
]c =[4
,5,6
,7,8
]ziptest1 =
zip(a, b)
for i in ziptest1:
print
(i,end=
" ")(1
,4)(
2,5)
(3,6
)
a =[1
,2,3
]b =[4
,5,6
]c =[4
,5,6
,7,8
]ziptest1 =
zip(b,c)
for i in ziptest1:
print
(i,end=
" ")(4
,4)(
5,5)
(6,6
)
a =[1
,2,3
]b =[4
,5,6
]c =[4
,5,6
,7,8
]ziptest1 =
zip(b,c)
# print(list(ziptest1))
star_zip =
zip(
*ziptest1)
print
(list
(star_zip))[
(4,5
,6),
(4,5
,6)]
回文數練習
def
num(x):if
str(x)
==str
(x)[::
-1]:
return x
print
(list
(filter
(num,
range(1
,1000))
))
Python基礎07 函式
函式最重要的目的是方便我們重複使用相同的一段程式。將一些操作隸屬於乙個函式,以後你想實現相同的操作的時候,只用呼叫函式名就可以,而不需要重複敲所有的語句。函式的定義 首先,我們要定義乙個函式,以說明這個函式的功能。def square sum a,b c a 2 b 2 return c 這個函式的...
Python基礎07 函式
函式最重要的目的是方便我們重複使用相同的一段程式。將一些操作隸屬於乙個函式,以後你想實現相同的操作的時候,只用呼叫函式名就可以,而不需要重複敲所有的語句。首先,我們要定義乙個函式,以說明這個函式的功能。def square sum a,b c a 2 b 2 return c 這個函式的功能是求兩個...
Python基礎07 函式
python基礎07 函式 函式最重要的目的是方便我們重複使用相同的一段程式。將一些操作隸屬於乙個函式,以後你想實現相同的操作的時候,只用呼叫函式名就可以,而不需要重複敲所有的語句。首先,我們要定義乙個函式,以說明這個函式的功能。defsquare sum a,b c a 2 b 2 return ...