Maison > Article > développement back-end > Exemple de tutoriel sur les expressions Lambda
Syntaxe :
La fonction Lambda est une fonction anonyme, syntaxe de création :
lambda settings:express
parameters : facultatif, s'il est fourni, généralement sous la forme d'expressions de variables séparées par des virgules, c'est-à-dire des paramètres de position.
expression : ne peut pas contenir de branches ou de boucles (mais les expressions conditionnelles sont autorisées), ni contenir de fonctions de retour (ou de rendement). S'il s'agit d'un tuple, il doit être entouré de parenthèses.
appelle la fonction lambda, et le résultat renvoyé est le résultat produit en calculant l'expression .
1. Question : Utilisez l'imbrication d'opérateurs conditionnels pour répondre à cette question : Les étudiants ayant des résultats académiques >= 90 points sont représentés par A, entre 60 et 89 points. un score de 60 ou moins est représenté par B, et ceux avec un score inférieur à 60 sont représentés par C.
print( str(score) + 'appartient à ' +
(lambda x:(x>=90 et 'A' ou x>= 60 et 'B' ou 'C'))(score))
2. Sujet : Appel récursif de lambda. Divisez un entier n et imprimez-le. Par exemple, 234 doit être imprimé sur trois lignes : 2, 3 et 4.
n = int(input ()) f=m,f:( (m / 10) !=0 f( int(m/10),f) ( m!=0 print(%(m%10) ))) f(n,f)
3. Question : Décomposer un entier positif en facteurs premiers. Par exemple : saisissez 90, imprimez 90=2*3*3*5.
Analyse du programme : Pour décomposer n en facteurs premiers, vous devez d'abord trouver un nombre premier minimum k, puis suivre les étapes suivantes :
(1) Si ce nombre premier est exactement égal à n , cela signifie que le processus de décomposition des facteurs premiers est terminé, il suffit de l'imprimer.
(2) Si n<>k, mais n est divisible par k, la valeur de k doit être imprimée et le quotient de k divisé par n doit être utilisé comme nouvel entier positif n,
Répétez la première étape.
(3) Si n n'est pas divisible par k, utilisez k+1 comme valeur de k et répétez la première étape.
importer os
importer sys
depuis l'importation de functools
réduire
from math import sqrt
n = int(input ("S'il vous plaît
saisissez un int:n"))
ans =[]
nn=n
f=lambda m,i,c,f:(m%i ==0
et f(m//i,i,c+1,f) ou (m,c))
def func(x,y):
ret,count=f(x,y,0,f )
si compte
>0 :
ans.append(count * [y] )
return ret
reduce(func,[nn]+list(range(2,nn)))
print(ans)
4. Question : Trouvez la valeur de s=a+aa+aaa+aaaa+aa...a, où a est un nombre. Par exemple, 2+22+222+2222+22222 (un total de 5 nombres sont ajoutés à ce moment), et l'ajout de plusieurs nombres est contrôlé par l'entrée.
n= int(input("n=:n"))
aa =a= int(input('a=: n'))
f=lambda n,a,ans,la,f : n==0 et ans ou f(n-1,a,ans+[la*10+ a],la*10+a,f )
imprimer(réduire(lambda x,y:x+y,f(n,aa,[],0,f)) )
5. Question : Si un nombre est exactement égal à la somme de ses facteurs, on l'appelle un « nombre parfait » . Par exemple, 6=1+2+3.
Programmation : trouvez tous les nombres parfaits inférieurs à 1 000.
factors = lambda x:filter( lambda i: x%i==0 et 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)))])
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!