ラムダ式のチュートリアルの例

PHP中文网
リリース: 2017-06-20 15:01:14
オリジナル
1814 人が閲覧しました

ラムダ式の 5 つの演習

構文:

ラムダ関数は匿名関数です、作成構文:

ラムダパラメータ: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
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)

4. s=a+aa+aaa+aaaa+aa...a の値を見つけます。ここで、a は数値です。たとえば、2+22+222+2222+22222 (この時点で合計 5 つの数字が加算されます) と入力によって複数の数字の加算が制御されます。

n= int(input("n=:n"))


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 )

print(reduce(lambda x,y: x+y,f(n,aa,[],0,f)))

    5. 質問: 数値が因数の合計と正確に等しい場合、その数値は " と呼ばれます。完全数「」。例: 6=1+2+3.
  • プログラミング: 1000 以内の完全な数をすべて見つけます。 ... i,list(factors(i))) for i in list(filter( f, range(2,1001)))])

以上がラムダ式のチュートリアルの例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート