python追記(4)
2393 ワード
1.匿名関数
匿名関数には、returnを書かずに式が1つしかないことに制限があります.戻り値は式の結果です.匿名関数を使用すると、関数に名前がないため、関数名の競合を心配する必要はありません.また、匿名関数も1つの関数オブジェクトである、匿名関数を1つの変数に付与、変数を再利用してその関数を呼び出すようにしてもよい.
2.バイアス関数
数学の偏関数とは違うことに注意してください.
int()関数は文字列を整数に変換でき、デフォルトでは10進数の整数に捕まえる
int()関数は、N(2<=N<=36)進数の変換を可能にする2番目のbaseパラメータを受信することもできる
バッチでバイナリを変換する場合は、関数を定義できます.
バイアス関数は、関数のいくつかのパラメータを固定することです.これにより、別の関数を定義する必要はありません.たとえば、次のようにします.
ただし、固定パラメータを手動で指定することもできます(コードを接続):
3.反復器
forサイクルに直接作用できるデータ型には、list、tuple、dict、set、strなどの集合データ型があることが知られています.1つのクラスはgeneratorであり、ジェネレータとyield付きgenerator functionを含む.これらのforループに直接作用するオブジェクトは、反復可能なオブジェクト:Iterableと総称されます.isinstance()を使用して、オブジェクトがIterableオブジェクトであるかどうかを判断できます.
next()関数によって呼び出され、次の値を繰り返し返すオブジェクトを反復器:Iteratorと呼びます.isinstance()を使用して、オブジェクトがIteratorオブジェクトであるかどうかを判断できます.
ジェネレータはすべてIteratorオブジェクトですが、list、dict、strはIterableですが、Iteratorではありません.リスト、dict、strなどのIterableをIteratorにするにはiter()関数を使用します.
Iteratorがnext()関数として機能する
forループに作用するオブジェクトはすべてIterableタイプです.
next()関数に作用するオブジェクトはIteratorタイプであり、不活性計算のシーケンスを表す.
反復器はデータのみを前方に取得できます
まとめ:
関数プログラミングの利点:は数学的に1つのプログラムの正確性を検証するので、関数式プログラミングは人工知能の分野で の応用が多い.モジュール化、問題解決策をN個のモジュール に分ける.の組合せと多重化 欠点:少し難しい は、ある適用方向 に比較的傾向がある.
def f(x):
return x*x
c=lambda x: x*x
print (f(2))
>>> 4
print (c(2))
>>> 4
匿名関数には、returnを書かずに式が1つしかないことに制限があります.戻り値は式の結果です.匿名関数を使用すると、関数に名前がないため、関数名の競合を心配する必要はありません.また、匿名関数も1つの関数オブジェクトである、匿名関数を1つの変数に付与、変数を再利用してその関数を呼び出すようにしてもよい.
2.バイアス関数
数学の偏関数とは違うことに注意してください.
int()関数は文字列を整数に変換でき、デフォルトでは10進数の整数に捕まえる
print (int("100")) #123
int()関数は、N(2<=N<=36)進数の変換を可能にする2番目のbaseパラメータを受信することもできる
print (int("100",base=2)) #4
バッチでバイナリを変換する場合は、関数を定義できます.
def int2(x,base=2):
return int(x,base)
バイアス関数は、関数のいくつかのパラメータを固定することです.これにより、別の関数を定義する必要はありません.たとえば、次のようにします.
import functools
int2 = functools.partial(int, base=2) # int
int2("1000") #8
ただし、固定パラメータを手動で指定することもできます(コードを接続):
int2("1000",base=10) #1000
3.反復器
forサイクルに直接作用できるデータ型には、list、tuple、dict、set、strなどの集合データ型があることが知られています.1つのクラスはgeneratorであり、ジェネレータとyield付きgenerator functionを含む.これらのforループに直接作用するオブジェクトは、反復可能なオブジェクト:Iterableと総称されます.isinstance()を使用して、オブジェクトがIterableオブジェクトであるかどうかを判断できます.
from collections import Iterable
from collections import Iterator
isinstance([],Iterable) #True
isinstance({},Iterable) #True
isinstance("abc",Iterable) #True
isinstance((1,2,3),Iterable) #True
next()関数によって呼び出され、次の値を繰り返し返すオブジェクトを反復器:Iteratorと呼びます.isinstance()を使用して、オブジェクトがIteratorオブジェクトであるかどうかを判断できます.
from collections import Iterable
from collections import Iterator
isinstance([],Iterator) #False
isinstance({},Iterator) #False
ジェネレータはすべてIteratorオブジェクトですが、list、dict、strはIterableですが、Iteratorではありません.リスト、dict、strなどのIterableをIteratorにするにはiter()関数を使用します.
from collections import Iterable
from collections import Iterator
>>> isinstance(iter([]), Iterator)
True
>>> isinstance(iter('abc'), Iterator)
True
Iteratorがnext()関数として機能する
list=[1,2,3]
a=iter(list)
a.next() #1
a.next() #2
forループに作用するオブジェクトはすべてIterableタイプです.
next()関数に作用するオブジェクトはIteratorタイプであり、不活性計算のシーケンスを表す.
反復器はデータのみを前方に取得できます
まとめ:
関数プログラミングの利点: