Annuaire d'articles
fonction récursive
1. Qu'est-ce qu'une fonction récursive
Grâce à l'étude précédente, nous savons qu'une fonction peut appeler d'autres fonctions.
Si une fonction n'appelle pas d'autres fonctions en interne, mais elle-même, cette fonction est une fonction récursive.
2. Le rôle des fonctions récursives
A titre d'exemple, calculons la factorielle n! = 1 * 2 * 3 * ... * n
Solution 1 : Utilisez une boucle pour le faire
def cal(num):
result,i = 1,1
while i <= num:
result *= i
i+= 1
return result
print(cal(3))
Regardez la loi de la factorielle
1! = 1
2! = 2 × 1 = 2 × 1!
3! = 3 × 2 × 1 = 3 × 2!
4! = 4 × 3 × 2 × 1 = 4 × 3!
…
n! = n × (n-1) !
Solution 2 : Utilisez la récursivité pour atteindre
def factorial(num):
result = 1
if num == 1:
return 1
result = num * factorial(num -1)
return result
print(factorial(3))
principe
Exercice : Implémenter la suite de Fibonacci en utilisant la récursivité. 1, 1, 2, 3, 5, 8, 13, 21, 34, ...
fonction anonyme
De petites fonctions anonymes peuvent être créées à l'aide du mot-clé lambda. Ces fonctions tirent leur nom de l'omission de l'étape standard de déclaration des fonctions avec def.
La syntaxe d'une fonction lambda se compose d'une seule instruction, comme suit :
lambda 参数列表: 运算表达式
Les exemples sont les suivants :
sum = lambda arg1, arg2: arg1 + arg2
# 调用sum函数
print("Value of total : %d" % sum( 10, 20 ))
print("Value of total : %d" % sum( 20, 20 ))
La sortie de l'exemple ci-dessus :
Value of total : 30
Value of total : 40
Les fonctions Lambda peuvent accepter n'importe quel nombre de paramètres mais ne peuvent renvoyer que la valeur d'une expression
Les fonctions anonymes peuvent exécuter des expressions arbitraires (même des fonctions d'impression), mais on pense généralement que les expressions doivent avoir un résultat de calcul pour le retour.
Python peut utiliser lambda lors de l'écriture de certains scripts d'exécution, qui peuvent accepter le processus de définition de fonctions, comme l'écriture d'un simple serveur de gestion de scripts.
Applications
fonction passée en paramètre
def fun(a, b, opt):
print("a = " % a)
print("b = " % b)
print("result =" % opt(a, b))
add = lambda x,y:x+y
fun(1, 2, add) # 把 add 作为实参传递
L'exemple de sortie ci-dessus :
a = 1
b = 2
result = 3
pratique
avoir une liste
students = [
{
'name': 'zhangsan', 'age': 18, 'score': 92},
{
'name': 'lisi', 'age': 20, 'score': 90},
{
'name': 'wangwu', 'age': 19, 'score': 95},
{
'name': 'jerry', 'age': 21, 'score': 98},
{
'name': 'chris', 'age': 17, 'score': 100},
]
Il est nécessaire de trier les données de la liste ci-dessus par ordre croissant selon le score.
Fonctions et classes intégrées dans Python qui prennent des fonctions comme arguments :
nom de la fonction ou de la classe | Fonction | Paramètre Description |
---|---|---|
fonction triée | Utilisé pour trier une liste non ordonnée | La valeur de retour du paramètre de fonction spécifie par quel attribut de l'élément trier |
classe de filtre | Utilisé pour filtrer tous les éléments d'une liste qui répondent aux exigences, et le résultat est un itérateur | La valeur de retour du paramètre de fonction spécifie la condition de filtre que l'élément satisfait |
classe de carte | Effectuez la même opération sur chaque élément de la liste, et le résultat est un itérateur | Le paramètre fonction permet de préciser l'opération à effectuer sur les éléments de la liste |
réduire la fonction | Effectue une opération de compression sur une séquence pour obtenir une valeur. Après python3, cette méthode a été déplacée vers le module functools | Le paramètre de fonction est utilisé pour spécifier de quelle manière les éléments sont fusionnés |
Cas avancé
[Python] Python réalise le jeu de devinettes de mots - défiez votre intelligence et votre chance !
[python] Utilisez Selenium pour obtenir des entrées (2023 Blog Star)
[Xiaobai doit voir] Python explore un exemple de données de joueurs NBA
[Xiaobai doit voir] Traitement et visualisation des données du crawler Python
[Incontournable pour Xiaobai] Utilisez Python pour générer un document Word de liste personnalisée
Traitement et visualisation de données géospatiales à l'aide de géopandas et shapely (.shp)
Utiliser le sélénium pour explorer les données de la liste de films Maoyan
Algorithme d'amélioration d'image Principe et mise en œuvre de Retinex Explication détaillée
Débuter avec les reptiles (1) : Apprenez les bases et les compétences des reptiles
Principes de base de la programmation orientée objet Python et exemple de code
Guide d'utilisation des fichiers Python : encodage, lecture, écriture et gestion des exceptions
Selenium Automation Toolset - Guide complet et tutoriels
Les bases du robot d'exploration Python sont avancées jusqu'au didacticiel de combat réel
Tutoriel de traitement et d'analyse des données Pandas : des bases au combat réel
Explication détaillée des types de données couramment utilisés et des opérations associées en Python