免責事項:この記事はブロガーオリジナル記事です、続くBY-SAのCC 4.0を著作権契約、複製、元のソースのリンクと、この文を添付してください。
ベースの学習記録(5/17) - 関数とラムダ
まず、機能
1.関数の定義
- フォーマットで、DEF文で関数を作成します:def fun_name(PAR1、PAR2、...):defキーワード、関数名とパラメータテーブル
def 函数名(参数列表)
函数体
-
すべての着信パラメータまたは引数は括弧の中央に配置する必要があります
-
定義された関数は、コロンの内容で始まる問題のインデントに注意を払います
-
returnステートメントの後ろに指定された機能と端を返す関数の実行に戻りステートメントの値は実行されない場合にreturnステートメントは、オブジェクトの結果を返すために使用され
-
Pythonは、戻り値が複数存在することができる、戻り値があってもよい、値を返さないことがあり、戻り値のデータ型は、限定されるものではありません
def funXY(x, y):
x = 2*x+y
y = y*y
return x, y
x = 4
y = 6
print(funXY(x,y )) # 14,36
2.引数
Pythonの関数のパラメータは、次の3種類の形式で主に
- 位置パラメータまたはキーワード
位置またはキーワードパラメータは、パラメータは、そのようなパラメータの関数として定義されるデフォルトパラメータパイソン型で、パラメータは、位置パラメータ、キーワードまたはパラメータの形式で渡すことができ
def fun2(a,b,c):
print(a,b,c)
fun2(1,2,3) # 可使用位置参数输出1,2,3
fun2(a=1,b=2,c=3) #可使用关键字参数,关键字参数之间位置没有关系输出1,2,3
fun2(1,b=2,c=3) #混合参数,位置参数必须在关键字参数之前输出1,2,3
fun2(a=1,b,c) #报错
関数の引数リストを定義できることに注意してくださいデフォルトパラメータを前に、しかし、デフォルト値で定義されたパラメータにはデフォルトパラメータpythonで許可されていません
def fun3(a=1,b):
print(a,b)
fun3(2) #报错
def fun3(a,b=3):
print(a,b)
fun3(1) #输出1,3
- 位置パラメータの任意の数の
位置パラメータの任意の数の送信パラメータは、ゼロまたはそれ以上は、元の位置パラメータのパラメータの後に添加することができる場合、これらのパラメータが配置され、発現された場合に定義されたアスタリスクプレフィックスを必要とタプル内および関数に渡されました。
def fun4(str1,*numbers):
print(str,numbers)
fun4("numbers:",1,2,3,4)
#<class 'str'> (1, 2, 3, 4)
位置後の任意の位置パラメータ(アスタリスク接頭辞a)またはキーワードのパラメータを定義しなければならないことに注意してください、そして任意のキーワード引数(2つのアスタリスクプレフィックス)の前に
- 主要パラメータの任意の数の
パラメータ名は2つのアスタリスクを前に付けする必要が前に、そのように定義されたパラメータを定義する重要なパラメータの任意の数は、元のパラメータの後ろにゼロ個以上のキーワード引数の任意の数を追加することができます
二、lambad声明
Pythonの文はlambad文が使用して作成できるように無名関数を、その関数は、具体的な名前ではありません。lambad文で、コロンはパラメータの関数である前に、複数の関数を使用している場合、戻り値は、コンマで区切って、右のコロン
g = lambda x:x+1
print(g)
print(g(1)) #2
次の関数は、lambad午前4時00分を使用していることに注意してください
- lambad定義された関数を使用すると、複雑な機能が必要な場合、あなたはDEFステートメントを使用する必要があり、一方通行であります
- lambadパラメータリストは、複数のパラメータを含んでいてもよいです
- lambad文は、唯一の戻り値を持っています
- 式lambad文はコマンドを含めることはできませんが、表現の制限があります