Heim > Artikel > Backend-Entwicklung > Beispiel-Tutorial zu Lambda-Ausdrücken
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!