Heim  >  Artikel  >  Backend-Entwicklung  >  Beispiel-Tutorial zu Lambda-Ausdrücken

Beispiel-Tutorial zu Lambda-Ausdrücken

PHP中文网
PHP中文网Original
2017-06-20 15:01:141804Durchsuche

Fünf Übungen für Lambda-Ausdrücke

Syntax:

Lambda-Funktion ist eine anonyme Funktion, Erstellungssyntax:

Lambda-Parameter:express

Parameter: Optional, sofern angegeben, normalerweise in Form von durch Kommas getrennten Variablenausdrücken, also Positionsparametern.

Ausdruck: darf keine Verzweigungen oder Schleifen enthalten (aber Bedingungsausdrücke sind zulässig), noch darf er Rückgabe- (oder Ertrags-)Funktionen enthalten. Wenn es sich um ein Tupel handelt, sollte es in Klammern eingeschlossen werden.

ruft die Lambda-Funktion auf und das zurückgegebene Ergebnis ist das Ergebnis , das durch die Berechnung des -Ausdrucks erzeugt wird.

  • 1. Frage: Verwenden Sie die Verschachtelung von Bedingungsoperatoren, um diese Frage zu vervollständigen: Schüler mit akademischen Ergebnissen >= 90 Punkten werden durch A dargestellt, zwischen 60 und 89 Punkten Eine Punktzahl von 60 oder weniger wird durch B dargestellt, und diejenigen mit einer Punktzahl von weniger als 60 werden durch C dargestellt.

print( str(score) + ' gehört zu ' +

(Lambda x:(x>=90 und 'A' oder x>= 60 und 'B' oder 'C'))(Score))

2. Thema: Rekursiver Aufruf von Lambda. Teilen Sie eine ganze Zahl n und geben Sie sie aus. Beispielsweise sollte 234 in drei Zeilen gedruckt werden: 2, 3 und 4.

n = int(input ())
f=m,f:( (m / 10) !=0 f( int(m/10),f) ( m!=0  print(%(m%10) )))
f(n,f)

3. Frage: Zerlegen Sie eine positive ganze Zahl in Primfaktoren. Zum Beispiel: 90 eingeben, 90=2*3*3*5 ausdrucken.

Programmanalyse: Um n in Primfaktoren zu zerlegen, sollten Sie zunächst eine minimale Primzahl k finden und dann die folgenden Schritte ausführen:

(1) Wenn diese Primzahl ist genau gleich n , bedeutet dies, dass der Prozess der Zerlegung von Primfaktoren beendet ist. Drucken Sie ihn einfach aus.

(2) Wenn n<>k, aber n durch k teilbar ist, sollte der Wert von k ausgedruckt werden und der Quotient von k dividiert durch n sollte als neue positive ganze Zahl n verwendet werden.

Wiederholen Sie Schritt eins.

(3) Wenn n nicht durch k teilbar ist, verwenden Sie k+1 als Wert von k und wiederholen Sie den ersten Schritt.

Betriebssystem importieren
System importieren
aus Functools importieren Reduce
from math import sqrt

n = int(input ("Bitte input a int:n"))
ans =[]
nn=n
f=lambda m,i,c,f:(m%i ==0 und f(m//i,i,c+1,f) oder (m,c))
def func(x,y):
ret,count=f(x,y,0,f )
wenn zählen >0:
ans.append(count * [y] )
return ret
reduce(func,[nn]+list(range(2,nn)))
print(ans)

4. Frage: Finden Sie den Wert von s=a+aa+aaa+aaaa+aa...a, wobei a eine Zahl ist. Zum Beispiel 2+22+222+2222+22222 (zu diesem Zeitpunkt werden insgesamt 5 Zahlen hinzugefügt), und die Addition mehrerer Zahlen wird durch die Eingabe gesteuert.


n= int(input("n=:n"))
aa =a= int(input('a=: n'))

f=lambda n,a,ans,la,f: n==0 und ans oder 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. Frage: Wenn eine Zahl genau gleich der Summe ihrer Faktoren ist, nennt man sie eine „perfekte Zahl“ . Zum Beispiel 6=1+2+3.

Programmierung: Finden Sie alle perfekten Zahlen innerhalb von 1000.


factors = lambda x:filter( lambda i: x%i==0 and i,range(1,x))
f = lambda x: sum(factors(x)) == x
print( [(i,list(factors(i))) for i in list(filter( f, range(2,1001)))])

Das obige ist der detaillierte Inhalt vonBeispiel-Tutorial zu Lambda-Ausdrücken. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn