Maison développement back-end Tutoriel Python Tutoriel d'exemple de programmation fonctionnelle Python

Tutoriel d'exemple de programmation fonctionnelle Python

Jun 30, 2017 pm 04:08 PM
编程

La programmation fonctionnelle utilise une série de fonctions pour résoudre des problèmes. Selon la pensée générale de la programmation, face à un problème, notre façon de penser est « comment le faire », tandis que la façon de penser de la programmation fonctionnelle est « qu'est-ce que je veux faire ». faire". Quant aux caractéristiques de la programmation fonctionnelle, nous ne les résumerons pas pour l'instant. Utilisons directement des exemples pour comprendre ce qu'est la programmation fonctionnelle.

Expression lambda (fonction anonyme) :

Comment définir les fonctions ordinaires et les fonctions anonymes :


#Fonction ordinaire def add( a ,b):

   return a + bprint add(2,3) 
#匿名函数add = lambda a,b : a + bprint add(2,3)#========输出===========5
5
Copier après la connexion


Les règles de dénomination des fonctions anonymes sont identifiées par le mot-clé lamdba Le côté gauche des deux points (:) indique les paramètres. reçu par la fonction ( a, b), le côté droit des deux points (:) représente la valeur de retour de la fonction (a+b).

Puisque lamdba n'a pas besoin d'être nommé lors de sa création, on l'appelle une fonction anonyme ^_^

Fonction Map :

Calculer la longueur de la chaîne


abc = ['com','fnng','cnblogs']for i in range(len(abc)):    print len(abc[i])#========输出===========347
Copier après la connexion

Définissez un tableau de chaînes abc, calculez la longueur de abc, puis bouclez pour afficher la longueur de chaque chaîne du tableau.

Voyons comment la fonction map() implémente ce processus.


abc_len = map(len,['hao','fnng','cnblogs'])print abc_len#========输出===========[3, 4, 7]
Copier après la connexion

Bien que les résultats de sortie soient les mêmes, leurs formes sont différentes. La première est une valeur numérique pure et la sortie de la fonction map() est. still Le format du tableau est conservé.

Conversion de casse ;

Python fournit upper() et lower() pour convertir la casse.


#Case conversion ss='bonjour LE MONDE !'
print ss.upper() #Convertir en majuscule print ss.lower() #Convertir en minuscule# = =======Sortie===========BONJOUR LE MONDE ! bonjour tout le monde !


Converti via la fonction map() :


def to_lower(item):    return item.lower()name = map(to_lower,['cOm','FNng','cnBLoGs'])print name#========输出===========['com', 'fnng', 'cnblogs']
Copier après la connexion

Ceci Dans l'exemple, nous pouvons voir que nous avons écrit une fonction toUpper. Cette fonction ne modifie pas la valeur transmise. Elle effectue simplement une opération simple sur la valeur transmise et la renvoie. Ensuite, nous l’utilisons dans la fonction map pour décrire clairement ce que nous voulons faire.

Voyons comment implémenter la conversion de casse de chaîne de manière courante :


abc = ['cOm','FNng','cnBLoGs']lowname = []for i in range(len(abc)):    lowname.append(abc[i].lower())print lowname#========输出===========['hao', 'fnng', 'cnblogs']
Copier après la connexion

fonction map() plus expressions lambda (fonctions anonymes) peuvent réaliser des fonctions plus puissantes.

#Trouver des carrés#0*0,1*1,2*2,3*3,....8*8squares = map(lambda x : x*x ,range(9))imprimer des carrés #========Sortie===========[0, 1, 4, 9, 16, 25, 36, 49, 64]

Fonction de réduction :

def add(a,b):    return a+b

add = reduce(add,[2,3,4])print add#========输出===========9  对于Reduce函数每次是需要对两个数据进行处理的,首选取2 和3 ,通过add函数相加之后得到5,接着拿5和4 ,再由add函数处理,最终得到9 。
Copier après la connexion

Dans l'exemple de fonction map précédent, nous pouvons voir que la fonction map ne traite qu'une seule donnée à la fois.

Ensuite, nous avons découvert à quel point il est simple d'implémenter la factorielle via la fonction Réduire et l'expression lambda :

#5 Factorielle #5 ! =1*2*3*4*5imprimer réduire(lambda x,y: x*y, range(1,6))#========Sortie===========120

En plus de mapper et de réduire, Python dispose également d'autres fonctions auxiliaires telles que filter, find, all et any (également disponibles dans d'autres langages fonctionnels), qui peuvent rendre votre code plus concis et plus facile à utiliser. lire. Regardons un exemple plus complexe :

# Calculez la valeur de l'entier positif dans le tableau number =[2, -5, 9, -7, 2, 5, 4, -1, 0, - 3, 8 ] compte = 0 sum = 0for i in range(len(number)):

if number[i]>0:
        count += 1
        sum += number[i]print sum,countif count>0:
    average = sum/countprint average
Copier après la connexion

#========Output===========30 6 5

Si vous utilisez la programmation fonctionnelle, cet exemple peut s'écrire comme ceci :

number =[2, -5, 9, -7, 2, 5, 4, -1, 0, -3, 8]

sum = filter(lambda x: x>0, number)

average = reduce(lambda x,y: x+y, sum)/len(sum)print average
Copier après la connexion

#========Output========== =5

Finalement on peut voir que la programmation fonctionnelle présente les avantages suivants :

1) Le code est plus simple.
2) Les ensembles de données, les opérations et les valeurs de retour sont tous rassemblés.
3) Lorsque vous lisez le code, il n'y a pas de corps de boucle, vous pouvez donc enregistrer certaines variables temporaires et la logique des variables qui vont et viennent.
4) Votre code décrit ce que vous voulez faire, plutôt que comment le faire.


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 de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Où trouver la courte de la grue à atomide atomique
1 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Supprimez les valeurs en double du tableau PHP à l'aide d'expressions régulières Supprimez les valeurs en double du tableau PHP à l'aide d'expressions régulières Apr 26, 2024 pm 04:33 PM

Comment supprimer les valeurs en double du tableau PHP à l'aide d'expressions régulières : utilisez l'expression régulière /(.*)(.+)/i pour faire correspondre et remplacer les doublons. Parcourez les éléments du tableau et vérifiez les correspondances à l'aide de preg_match. S'il y a une correspondance, ignorez la valeur ; sinon, ajoutez-la à un nouveau tableau sans valeurs en double.

A quoi sert la programmation et à quoi sert de l'apprendre ? A quoi sert la programmation et à quoi sert de l'apprendre ? Apr 28, 2024 pm 01:34 PM

1. La programmation peut être utilisée pour développer divers logiciels et applications, notamment des sites Web, des applications mobiles, des jeux et des outils d'analyse de données. Ses domaines d'application sont très larges, couvrant presque tous les secteurs, notamment la recherche scientifique, la santé, la finance, l'éducation, le divertissement, etc. 2. L'apprentissage de la programmation peut nous aider à améliorer nos compétences en résolution de problèmes et nos capacités de réflexion logique. Lors de la programmation, nous devons analyser et comprendre les problèmes, trouver des solutions et les traduire en code. Cette façon de penser peut cultiver nos capacités analytiques et abstraites et améliorer notre capacité à résoudre des problèmes pratiques.

Créez des applications basées sur un navigateur avec Golang Créez des applications basées sur un navigateur avec Golang Apr 08, 2024 am 09:24 AM

Créez des applications basées sur un navigateur avec Golang Golang se combine avec JavaScript pour créer des expériences frontales dynamiques. Installez Golang : visitez https://golang.org/doc/install. Configurez un projet Golang : créez un fichier appelé main.go. Utilisation de GorillaWebToolkit : ajoutez le code GorillaWebToolkit pour gérer les requêtes HTTP. Créer un modèle HTML : créez index.html dans le sous-répertoire des modèles, qui est le modèle principal.

La clé du codage : libérer la puissance de Python pour les débutants La clé du codage : libérer la puissance de Python pour les débutants Oct 11, 2024 pm 12:17 PM

Python est un langage d'introduction à la programmation idéal pour les débutants grâce à sa facilité d'apprentissage et ses fonctionnalités puissantes. Ses bases incluent : Variables : utilisées pour stocker des données (nombres, chaînes, listes, etc.). Type de données : Définit le type de données dans la variable (entier, virgule flottante, etc.). Opérateurs : utilisés pour les opérations mathématiques et les comparaisons. Flux de contrôle : contrôlez le flux d'exécution du code (instructions conditionnelles, boucles).

Résolution de problèmes avec Python : débloquez des solutions puissantes en tant que codeur débutant Résolution de problèmes avec Python : débloquez des solutions puissantes en tant que codeur débutant Oct 11, 2024 pm 08:58 PM

Python permet aux débutants de résoudre des problèmes. Sa syntaxe conviviale, sa bibliothèque complète et ses fonctionnalités telles que les variables, les instructions conditionnelles et les boucles permettent un développement de code efficace. De la gestion des données au contrôle du flux du programme et à l'exécution de tâches répétitives, Python fournit

Collection d'énigmes de programmation C++ : stimule la réflexion et améliore les compétences en programmation Collection d'énigmes de programmation C++ : stimule la réflexion et améliore les compétences en programmation Jun 01, 2024 pm 10:26 PM

Les énigmes de programmation C++ couvrent les concepts d'algorithme et de structure de données tels que la séquence de Fibonacci, la factorielle, la distance de Hamming, les valeurs maximales et minimales des tableaux, etc. En résolvant ces énigmes, vous pouvez consolider vos connaissances en C++ et améliorer la compréhension des algorithmes et vos compétences en programmation.

Démystifier C : un chemin clair et simple pour les nouveaux programmeurs Démystifier C : un chemin clair et simple pour les nouveaux programmeurs Oct 11, 2024 pm 10:47 PM

C est un choix idéal pour les débutants qui souhaitent apprendre la programmation système. Il contient les composants suivants : fichiers d'en-tête, fonctions et fonctions principales. Un simple programme C capable d'imprimer "HelloWorld" a besoin d'un fichier d'en-tête contenant la déclaration de fonction d'entrée/sortie standard et utilise la fonction printf dans la fonction principale pour imprimer. Les programmes C peuvent être compilés et exécutés à l'aide du compilateur GCC. Après avoir maîtrisé les bases, vous pouvez passer à des sujets tels que les types de données, les fonctions, les tableaux et la gestion des fichiers pour devenir un programmeur C compétent.

Utilisez le mécanisme d'emballage et de déroulement des erreurs de Golang pour la gestion des erreurs Utilisez le mécanisme d'emballage et de déroulement des erreurs de Golang pour la gestion des erreurs Apr 25, 2024 am 08:15 AM

La gestion des erreurs dans Go inclut les erreurs d’encapsulage et les erreurs de déballage. L'encapsulation des erreurs permet d'encapsuler un type d'erreur avec un autre, fournissant ainsi un contexte plus riche pour l'erreur. Développez les erreurs et parcourez la chaîne d'erreurs imbriquée pour trouver l'erreur de niveau le plus bas pour un débogage facile. En combinant ces deux technologies, les conditions d'erreur peuvent être gérées efficacement, offrant un contexte d'erreur plus riche et de meilleures capacités de débogage.

See all articles