21.1.24
<コードスタンプを復習して新しい知識をまとめる:Unit:32-33> Ramda式:
「通常、関数を他の関数として使用する引数」
->JavaScriptでは、関数はオブジェクトであるため、他の関数のパラメータとして使用できると聞いたことがあるようです.その原理を利用したオブジェクト指向の概念だろう.
したがって,ラムダ式全体を括ると,(因子)を加えてすぐに実行できる.しかし、既に確立されたラムダ式に別のパラメータを加えることはできない.(単独で宣言する必要があります.)
ただし、コードの長さが長すぎると思う場合は、関数を直接宣言したほうがいいです.
パラメータとしてリストのようにシーケンスオブジェクトを受信する必要がある場合、リスト(map...)何らかのフィルタが必要な場合は、フィルタを方法として使用します.
reduce関数:重複可能なオブジェクト(シーケンスオブジェクト)の累積値を返す関数ですが、組み込み関数ではないので、読み込む必要があります.使用法と結果は次のとおりです.
文字列の位置決めと方法練習問題32
次の単純文字列フォーマットを使用する場合、jpg、pngのアルゴリズムはすべての人が使用します.したがって,文字列法におけるfindの性質を用いる.特定の値が表示された場合は、いくつかのインデックスが検索されます.ない場合は、-1の出力プロパティが使用されます.思い出せない,長いこと考えてやっと解けた.もうしばらく解けたかもしれませんが、また方法を忘れました.エンクロージャ 変数の使用範囲: スクリプト全体で使用可能な変数:グローバル変数
範囲はんい:グローバル範囲グローバルはんい
グローバル宣言は、地域変数の場所でグローバル変数を宣言することによってグローバルに使用されます.関数内に関数を作成します.
20を出したいなら?->nonlocal x
これらにかかわらずglobalを使用すると、グローバル変数を無条件に使用できます.公式キャビネット について
モジュールは、上記のcのような変数にプログラムフロー(関数形式など)を格納して、必要に応じて使用することができる.エンクロージャでは,領域変数を直接外部から法根することは困難であり,データを非表示にしたい場合に主に使用する.
ここで2番目のdefの関数もramda式で表すことができる.
(return lambda x:a*x+b):関数の形式
≪モジュール|Module|emdw≫:変数という環境が保持されていることを示す関数.
ランダ:名前はありません.(変数などを指定しないことを示す)
地域変数を変更したい場合(たとえば、累積式を作成します).非ローカルを使用します.
6~7回見て少し分かったようですまず、地域変数とグローバル変数の違い、地域範囲とグローバル範囲の違いを熟知します.概念応用練習問題32
「通常、関数を他の関数として使用する引数」
->JavaScriptでは、関数はオブジェクトであるため、他の関数のパラメータとして使用できると聞いたことがあるようです.その原理を利用したオブジェクト指向の概念だろう.
def plus_ten(x):
return x+10
これをramda式として以下に示すplus_ten = lambda x : x + 10
すなわち「関数名=lambdaパラメータ:式」したがって,ラムダ式全体を括ると,(因子)を加えてすぐに実行できる.しかし、既に確立されたラムダ式に別のパラメータを加えることはできない.(単独で宣言する必要があります.)
ただし、コードの長さが長すぎると思う場合は、関数を直接宣言したほうがいいです.
パラメータとしてリストのようにシーケンスオブジェクトを受信する必要がある場合、リスト(map...)何らかのフィルタが必要な場合は、フィルタを方法として使用します.
reduce関数:重複可能なオブジェクト(シーケンスオブジェクト)の累積値を返す関数ですが、組み込み関数ではないので、読み込む必要があります.使用法と結果は次のとおりです.
>>> def f(x, y):
... return x + y
...
>>> a = [1, 2, 3, 4, 5]
>>> from functools import reduce
>>> reduce(f, a)
15
(람다)
>>> a = [1, 2, 3, 4, 5]
>>> from functools import reduce
>>> reduce(lambda x, y: x + y, a)
15
files = ['font', '1.png', '10.jpg', '11.gif', '2.jpg', '3.png', 'table.xslx', 'spec.docx']
print(list(filter(lambda x : x.find('.jpg') != -1 or x.find('.png')!= -1, files)))
解答:地図を最初に使用すると、リストとして作成されますが、分類は行われません.そのため、フィルタを使用します.次の単純文字列フォーマットを使用する場合、jpg、pngのアルゴリズムはすべての人が使用します.したがって,文字列法におけるfindの性質を用いる.特定の値が表示された場合は、いくつかのインデックスが検索されます.ない場合は、-1の出力プロパティが使用されます.思い出せない,長いこと考えてやっと解けた.もうしばらく解けたかもしれませんが、また方法を忘れました.
範囲はんい:グローバル範囲グローバルはんい
x = 10 # 전역 변수
def foo():
print(x) # 전역 변수 출력
foo()
print(x) # 전역 변수 출력
逆に、特定の関数または特定の領域でのみ使用される変数は、領域変数です.その範囲を領域範囲と呼ぶ. x = 10 # foo의 지역 변수
print(x) # foo의 지역 변수 출력
foo()
print(x) # 에러. foo의 지역 변수는 출력할 수 없음
グローバル変数がある場合は、「領域変数としてのみ」として使用しますか?グローバル宣言は、地域変数の場所でグローバル変数を宣言することによってグローバルに使用されます.
x = 10 # 전역 변수
def foo():
global x # 전역 변수 x를 사용하겠다고 설정
x = 20 # x는 전역 변수
print(x) # 전역 변수 출력
foo()
print(x) # 전역 변수 출력
def print_hello():
hello = 'Hello, world!' # 함수 정의
def print_message():
print(hello) # 함수 정의
print_message() # 함수 호출
-----(지역변수 hello접근 범위)------
print_hello() # 함수 호출
その他の例def A():
x = 10 # A의 지역 변수 x
def B():
x = 20 # x에 20 할당
B()
print(x) # A의 지역 변수 x 출력
-------(지역변수 x = 10 접근 범위)-------
A()
10
A関数の領域変数の作用の範囲は10である.20を出したいなら?->nonlocal x
def A():
x = 10 # A의 지역 변수 x
def B():
nonlocal x # 현재 함수의 바깥쪽에 있는 지역 변수 사용
x = 20 # A의 지역 변수 x에 20 할당
B()
print(x) # A의 지역 변수 x 출력
A()
20 (바깥쪽 쓰는 것으로 변경)
しかし、実際の仕事ではそう書くことはめったにありません.異なる名前の変数を使用することを推奨します.これらにかかわらずglobalを使用すると、グローバル変数を無条件に使用できます.
x = 1
def A():
x = 10
def B():
x = 20
def C():
global x
x = x + 30
print(x)
C()
B()
A()
31
def calc():
a = 3
b = 5
def mul_add(x):
return a * x + b # 함수 바깥쪽에 있는 지역 변수 a, b를 사용하여 계산
return mul_add # mul_add 함수를 반환
c = calc()
print(c(1), c(2), c(3), c(4), c(5))
calc()は呼び出しであり,実は関数は終了し,c(1),c(2)である.このように、領域変数、コードを保持し、呼び出し時に内部関数を再使用する概念を「モジュール」と呼ぶ.モジュールは、上記のcのような変数にプログラムフロー(関数形式など)を格納して、必要に応じて使用することができる.エンクロージャでは,領域変数を直接外部から法根することは困難であり,データを非表示にしたい場合に主に使用する.
ここで2番目のdefの関数もramda式で表すことができる.
(return lambda x:a*x+b):関数の形式
≪モジュール|Module|emdw≫:変数という環境が保持されていることを示す関数.
ランダ:名前はありません.(変数などを指定しないことを示す)
地域変数を変更したい場合(たとえば、累積式を作成します).非ローカルを使用します.
def calc():
a = 3
b = 5
total = 0
def mul_add(x):
nonlocal total
total = total + a * x + b
print(total)
return mul_add
c = calc()
c(1)
c(2)
c(3)
コンセプトを整理したアイデア:6~7回見て少し分かったようですまず、地域変数とグローバル変数の違い、地域範囲とグローバル範囲の違いを熟知します.
def counter():
i = 0
def count():
nonlocal i
i += 1
return i
return count
c = counter()
for i in range(10):
print(c(), end=' ')
counterの変数iを非ローカルに持ち込むと、counterが呼び出されるたびに1が増加するため、+=1処理が行われる.あとはこれをそのまま回してください△印刷処理の際、counterのnonetype値も一緒に出てきたので、かなり苦労しました.Reference
この問題について(21.1.24), 我々は、より多くの情報をここで見つけました https://velog.io/@sinichy7/21.1.24テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol