Maison  >  Article  >  développement back-end  >  Exemple de tutoriel sur les expressions Lambda

Exemple de tutoriel sur les expressions Lambda

PHP中文网
PHP中文网original
2017-06-20 15:01:141804parcourir

Cinq exercices pour 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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn