ホームページ >バックエンド開発 >Python チュートリアル >ラムダ式のチュートリアルの例
構文:
ラムダ関数は匿名関数です、作成構文:
ラムダパラメータ:express
パラメータ: オプション (指定されている場合)、通常はカンマ区切りの変数 式形式、つまり、位置パラメータです。
式: 分岐やループを含めることはできません (ただし、条件式は許可されます)。また、return (または yield) 関数を含めることもできません。 タプルの場合は、括弧で囲む必要があります。
ラムダ関数を呼び出すと、返される結果は 式の計算の結果 です。
1. 質問: 条件演算子のネストを使用してこの質問を完成させます: 学業成績が 90 点以上の生徒は A で表され、60 ~ 89 点の生徒は B で表され、それ以下の生徒は B で表されます。 60はC平均で表されます。
print( str(スコア) + ' は ' +
(ラムダ x:(x>=90 および 'A' または x>=60 および 'B' または 'C'))(スコア) に属します)
2. トピック: ラムダの再帰呼び出し。整数 n を分割して出力します。たとえば、234 は 2、3、4 の 3 行で印刷する必要があります。
n = int(input ()) f=m,f:( (m / 10) !=0 f( int(m/10),f) ( m!=0 print(%(m%10) ))) f(n,f)
3. 質問: 正の整数を素因数に分解します。例: 90 を入力し、90=2*3*3*5 を出力します。
プログラム分析: n の素因数を分解するには、まず最小の素数 k を見つけて、次の手順に従ってそれを完了する必要があります:
(1) この素数が n と正確に等しい場合、それは意味します。素因数分解のプロセスが終了したので、それを印刷するだけです。
(2) n を繰り返します。最初の一歩 。 (3) n が k で割り切れない場合は、k+1 を k の値として使用し、最初の手順を繰り返します。 import os 4. s=a+aa+aaa+aaaa+aa...a の値を見つけます。ここで、a は数値です。たとえば、2+22+222+2222+22222 (この時点で合計 5 つの数字が加算されます) と入力によって複数の数字の加算が制御されます。 n= int(input("n=:n")) print(reduce(lambda x,y: x+y,f(n,aa,[],0,f)))
プログラミング: 1000 以内の完全な数をすべて見つけます。 ... i,list(factors(i))) for i in list(filter( f, range(2,1001)))]) 以上がラムダ式のチュートリアルの例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。
import sys
from functools import
reduce
from math import sqrt
n = int(input ("お願いします
int:n"))
ans =[]
nn=n
f=lambda m,i,c,f:(m%i ==0 を入力してください
そして f(m//i,i,c+1,f) or (m,c))
def func(x,y):
ret,count=f(x,y,0,f)
if count
& gt; 0: n ANS.APPEND (Count * [y])
Return RET
Reduce (func, [nn]+list (Range (2, nn)))
Print (ANS)
aa =a= int(input('a=:n'))
f=lambda n,a,ans ,la,f: n==0 および ans または f(n-1,a,ans+[la*10+a],la*10+a,f )5. 質問: 数値が因数の合計と正確に等しい場合、その数値は " と呼ばれます。完全数「」。例: 6=1+2+3.