Python DAY 6-2を練習する
15899 ワード
関数#カンスウ#
1.lambda(匿名関数)は関数を構築します.前は関数のパラメータです.後ろは戻り式です. lambdaを使用すると、関数を定義するプロセスを節約し、コードをより簡潔にすることができます. lambdaを使用するには、関数に名前を付ける問題を考慮する必要はありません. 簡略化コードの可読性
2.filterフィルタ関心のある情報をフィルタしてtrueの部分をフィルタする
Lambda式を使用する場合は、
3.mapマッピング
4.再帰:関数がそれ自体を呼び出し、深さを設定する必要がある
5.フィボナッチ数列:
6.ハノータゲーム(再帰アルゴリズム)
1.lambda(匿名関数)は関数を構築します.前は関数のパラメータです.後ろは戻り式です.
>>> g=lambda x:2*x+1
>>> g(5)
11
>>> g=lambda x,y:x+y
>>> g(5,4)
9
2.filterフィルタ関心のある情報をフィルタしてtrueの部分をフィルタする
>>> filter (None,[1,0,True,False])
<filter object at 0x000001B96FA8D128>
>>> list(filter (None,[1,0,True,False]))
[1, True]
>>> def o(x):
return x%2
>>> temp=range(10)
>>> show=filter (o,temp)
>>> list(show )
[1, 3, 5, 7, 9]
Lambda式を使用する場合は、
>>> list(filter(lambda x:x%2,range(10)))
[1, 3, 5, 7, 9]
3.mapマッピング
>>> list (map(lambda x:x*2,range(10)))
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
4.再帰:関数がそれ自体を呼び出し、深さを設定する必要がある
def digui(n):
if n==1:
return 1
else:
return n*digui(n-1)
number =int (input(' :'))
result=digui(number)
print('%d :%d'%(number,result))
:5
5 :120
5.フィボナッチ数列:
def fab(n):
if n<1:
print (' !')
return -1
if n==1 or n==2:
return 1
else:
return fab(n-1)+fab(n-2)
result = fab(20)
if result !=-1:
print (' %d !'% result)
6.ハノータゲーム(再帰アルゴリズム)
def han(n,x,y,z):
if n==1:
print (x,'-->',z)
else:
han(n-1,x,z,y)# n-1 x y
print (x,'-->',z)# x z
han(n-1,y,x,z)# y n-1 z
n=int (input (' :'))
han(n,'X','Y','Z')
:4
X --> Y
X --> Z
Y --> Z
X --> Y
Z --> X
Z --> Y
X --> Y
X --> Z
Y --> Z
Y --> X
Z --> X
Y --> Z
X --> Y
X --> Z
Y --> Z