在乙個函式體的內部,呼叫函式本身,就被稱為遞迴函式
def
func
(n):
print
(n)if
int(n/2)
==0:return n
return func(
int(n/2)
)print
(func(10)
)1052
1
用遞迴函式寫1,1,2,3,5,8
def
fibonacci
(n):
if n ==1:
return
1if n ==2:
return
1else
:return fibonacci(n-1)
+ fibonacci(n-2)
print
(fibonacci(6)
)
lambda para1, para2,..
., paran : expression using paras
高階函式:把乙個函式名,以實參的形式,傳遞給這個函式的形參,這個函式就成為高階函式
def
add(a, b, c)
:return c(a)
+ c(b)
a_value = add(9,
1,abs)
print
(a_value)
# 10
defpow
(x):
return x**
2def
add(a, b, func)
:return func(a)
+ func(b)
a_value = add(-9
,1,pow
)print
(a_value)
# 82
f1 =
filter
(lambda sr:
not sr.endswith(
'ty'
),li)
功能:-
呼叫格式:
li =
['zhejiang'
,'university'
,'city'
,'college'
]ret =
for i in li:
ifnot i.startswith(
'c')
:print
(ret)
# ['zhejiang', 'university']
li =
['zhejiang'
,'university'
,'city'
,'college'
]def
filter_test
(para)
: ret =
for i in li:
ifnot i.startswith(
'c')
:return ret
print
(filter_test(li)
)# ['zhejiang', 'university']
li =
['zhejiang'
,'university'
,'city'
,'college'
]def
start_sr
(sr)
:return sr.startswith(
'c')
defend_sr
(sr)
:return sr.endswith(
'ty'
)def
filter_test
(func, para)
: ret =
for i in para:
ifnot func(i)
:return ret
print
(filter_test(start_sr, li)
)print
(filter_test(end_sr, li)
)# ['zhejiang', 'university']
# ['zhejiang', 'college']
功能:
map
(function,iterable1,iterable2)
li=[1
,2,3
,4,5
]res=
map(
lambda x:x+
1,li)
print
(list
(res)
)# [2, 3, 4, 5, 6]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]x=[
1,2,
3,4,
5]y=[
2,3,
4,5,
6]deff
(x,y)
:return x*y+
2res=
map(f,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 (2+3+4+5+6)
from functools import
reduce
y =[2,
3,4,
5,6]
z =reduce
(lambda x, y: x*y, y)
print
(z)# 720 階乘
from functools import
reduce
y =[2,
3,4,
5,6]
z =reduce
(lambda x, y:
10*x+y, y)
print
(z)# 23456
import numpy as np
import pandas as pd
a = np.random.randint(low=
0, high=
4, size=(2
,4))
print
(a)data = pd.dataframe(a)
print
(data)[[
1000
][01
30]]
0123
0100
0101
30
功能 注:
利用*號操作符,與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(b,a)
print
(list
(ziptest1)
)#[(4, 1), (5, 2), (6, 3)]
輸出1000內回文數
print
(list
(filter
(lambda x:
str(x)
==str
(x)[::
1],range(1
,1000))
))
test1=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(b,a)
print(list(ziptest1))
#[(4, 1), (5, 2), (6, 3)]
```python
輸出1000內回文數
print(list(filter(lambda x: str(x) == str(x)[::1], range(1, 1000))))
蘇嵌 楊帥 0724
蘇嵌 專案實戰 學習日誌 姓名 楊帥 日期 0724 今日學習任務 數理掌握鍊錶的所有操作 單鏈表 單向迴圈,雙向迴圈鍊錶 今日任務完成情況 詳細說明本日任務是否按計畫完成,開發的 量 1 鍊錶 解決陣列帶來空間利用的問題 鍊錶分為單鏈表,單向迴圈鍊錶,雙向鍊錶,雙向迴圈鍊錶,鍊錶還分帶表頭和不帶表...
蘇嵌 楊曼曼 0724
今日學習任務 掌握鍊錶的分類 掌握單向鍊錶 帶表頭,不帶表頭 今日任務完成情況 今日學習任務基本完成 1.掌握鍊錶的分類 單鏈表 雙鏈表 單向迴圈鍊錶 雙向迴圈鍊錶 2.掌握單向鍊錶 帶表頭,不帶表頭 3.寫乙個鍊錶的步驟 定義節點型別 定義頭指標 初始化指標 插入新節點 今日開發中出現的問題彙總 ...
0724迴圈巢狀和while語句
一.for的迴圈巢狀 for迴圈的巢狀 列印矩陣 for int k 1 k 5 k console.writeline 請輸入乙個正整數 根據這個數列印這個數的行列的在右下角的三角形 請輸入乙個正整數 int b int.parse console.readline for int i 1 i b...