Comment définir une fonction en Python?

Contenu

Une fonction est un bloc de code réutilisable qui peut effectuer une tâche de base. La définition de la fonction en Python peut être un peu différente de la syntaxe utilisée dans des langages comme C, C ++ à propos de Java. Le but de cet article est de fournir la syntaxe pour définir des fonctions en Python.

La définition de la fonction commence par un déf mot-clé suivi du nom de la fonction et des arguments que la fonction peut prendre. Ces arguments sont entre parenthèses et il peut y avoir n'importe quel nombre d'arguments, y compris zéro. Quand il y a plus d'un argument, sont séparés par une virgule. Puisque Python est un langage de type imprécis (ce qui signifie que nous n'attribuons pas de type de données à une variable lorsqu'elle est déclarée), nous ne devrions pas inclure les types de données pour les arguments. La déclaration de définition de fonction se termine par un deux-points. Et Python, on définit une fonction comme suit:

def nom_fonction(arg1, arg2, arg3,...):
    """
    la logique de fonction va ici.
    """
    valeur de retour1, valeur2, valeur3,...

Ci-dessous une fonction simple,

salut def():
    imprimer("Bonjour le monde")

Il s'agit d'une fonction de base qui imprime “Salut monde" A la console.

Saignement

Si nous regardons de près la définition de la fonction, on voit qu'il n'y a pas d'accolades autour du corps de la fonction. Et Python, le corps de la fonction est identifié par le niveau d'indentation. Puisque nous n'utilisons pas d'accolades pour indiquer le corps de la fonction, l'indentation est utile pour l'interpréteur Python pour savoir quelle partie du code définit la logique de la fonction. Si nous n'avons pas d'indentation de la logique de fonction par rapport à la déclaration de fonction, ongle Erreur d'indentation sera généré et la fonction ne sera pas interprétée.

def amusement(Nom):
imprimer("Bonjour" + Nom)

La fonction ci-dessus ne compilera pas et renverra un Erreur d'indentation.

Valeurs de retour

Une fonction peut renvoyer une valeur, auquel cas elle est signalée à l'interpréteur au moyen de la Revenir déclaration. Contrairement à C, C ++ à propos de Java, une fonction python peut renvoyer plusieurs valeurs. Si nous n'incluons pas de déclaration de retour, le contrôle sera automatiquement transféré au code appelant sans retourner aucune valeur. Une valeur par défaut de Rien sera remboursé s'il n'y a pas de déclaration de retour. De la même manière qu'avec les autres langues, une fonction peut avoir au plus une déclaration de retour.

def ajouter(une, b):
    retourner un + b
def bonjour():
    imprimer("Bonjour le monde")
res = ajouter(5,7) #res aura une valeur de 12.
res = bonjour() #res aura la valeur Aucun.

Arguments par défaut

Nous pouvons déterminer des valeurs par défaut pour les arguments dans la définition de la fonction. Pour cela, nous utilisons la syntaxe suivante. Notez que les arguments par défaut doivent être sur le côté droit de la liste des arguments. En d'autres termes, un argument par défaut ne devrait venir qu'après tous les arguments autres que ceux par défaut.

def areaOfCircle(rayon, pi=3.14):
    retour pi * rayon * rayon

Ici, la fonction prend un argument pi par défaut qui est défini sur le côté droit de la liste des arguments. Si nous définissons l'argument par défaut à gauche d'un argument autre que celui par défaut, nous obtenons un Erreur de syntaxe.

Fonctions d'appel

Maintenant que nous avons défini les fonctions, nous voyons comment nous pouvons les appeler dans notre code. Pour appeler une fonction, nous utilisons le nom de la fonction avec les arguments qui ont été utilisés pour définir la fonction. Le nombre d'arguments doit correspondre exactement au nombre d'arguments présents dans la définition de la fonction. Toute différence dans le nombre d'arguments augmentera la Faute de frappe.

def areaOfCircle(rayon, pi=3.14):
    retour pi * rayon * rayon
#appel de fonction
imprimer(zoneDeCercle(5))
#notez que l'argument par défaut n'est pas passé une valeur.
#impressions 78.5 sur l'écran.

Surcharge de fonctionnalités

Programmeurs C expérimentés ++ ou Java aurait souvent surchargé les fonctions. La surcharge de fonction ne fonctionne pas en Python car si on définit une fonction deux fois ou plus en faisant varier le nombre d'arguments, la dernière fonction définie écrasera les définitions précédentes. Si la fonction avec le nombre d'arguments spécifié dans l'appel de fonction n'existe même pas, nous obtenons un Faute de frappe. Par exemple,

def ajouter(une, b):
    retourner un + b
def ajouter(une, b, c):
    retourner un + b + c
imprimer(ajouter(1,2)) #lève une TypeError demandant un argument supplémentaire.
imprimer(ajouter(1,2,3)) #impressions 6 sur la console.

Passer des fonctions en arguments

Nous pouvons passer une fonction elle-même comme argument à une fonction différente. Supposons que nous voulions appliquer une fonction spécifique à un tableau de nombres. Au lieu de définir une fonction et de l'appeler en utilisant une boucle for, nous pourrions simplement utiliser la fonction map. La fonction map est une fonction intégrée puissante qui prend une fonction et une collection d'éléments comme arguments et applique la fonction d'entrée à l'ensemble de la collection d'éléments et renvoie les éléments traités..

carré def(je):
    je reviens * i 
res = list(carte(carré, [1,2,3])) 
#res contient maintenant [1,4,9]. Nous avons obtenu les résultats sans même parcourir la liste

* arguments et ** kwargs

Parler d'arguments, il existe des types particuliers d'arguments. Les programmeurs expérimentés peuvent avoir utilisé cet argument en C et C ++. Python offre également ces capacités. Si nous ne savons pas combien d'arguments une fonction recevra pendant le temps d'exécution, on peut utiliser * args pour recevoir ces arguments dans la définition de la fonction. De plus, nous pouvons obtenir une surcharge de fonction en utilisant * args même si techniquement ce n'est pas une surcharge de fonction puisque nous ne définissons pas plusieurs fonctions avec le même nom de fonction.

def ajouter(*arguments):
    somme = 0
    pour arg dans args:
        somme += argument
    somme de retour
ajouter(1,2,3) #Retour 6
ajouter(1,2,3,4) #Retour 10

Si nous voulons recevoir des arguments nommés, on peut utiliser ** kwargs.

def amusement(**kwargs):
    pour clé en kwargs:
        imprimer(clé, kwargs[clé])
amusant(a=1,b=2,c=3)
#prints 
#a 1
#b 2
#c 3

Arguments de ligne de commande

Tout code de niveau de production utiliserait un type spécial d'argument. Ce sont des arguments de ligne de commande utilisés par la fonction principale. Et Python, ces arguments seront passés à la fonction __main__. Nous pouvons facilement les obtenir en analysant la variable sys.argv. Puisque l'analyse d'une chaîne de ligne de commande est une tâche courante, nous avons des bibliothèques pour le faire pour nous, comment argumenter.

Comment définir des « fonctions anonymes »’

Les fonctions anonymes sont des fonctions sans nom. Ils sont également connus sous le nom lambda les fonctions. Mais attendez! Si une fonction n'a pas de nom, Comment vas-tu l'appeler? Ceux-ci sont nommés là où ils sont définis. Ils ne sont pas utilisés plus tard dans le code la plupart du temps. Ces fonctions sont des fonctions spéciales qui sont utilisées lorsque nous devons passer une fonction elle-même en argument. Ce cas se produit le plus souvent lorsque nous voulons faire un traitement de données avec des pandas ou toute autre bibliothèque. La fonction peut être si petite qu'elle ne mérite pas un nom propre. Ces fonctions sont définies avec le mot-clé lambda.

liste(carte(lambda x: x*x, [1,2,3]))
#imprime les valeurs [1,4,9]

Nous avons calculé les carrés de la liste d'entrée sans même définir une fonction. Que faisons-nous avec la déclaration lambda x: X * X est que nous définissons une fonction anonyme, En d'autres termes, sans nom, et nous l'appelons immédiatement. Supposons que nous souhaitions utiliser la fonction lambda ultérieurement, nous pouvons le stocker dans une variable de fonction et l'utiliser.

carré = lambda x: x*x
liste(carte(carré, [1,2,3]))
#imprime les valeurs [1,4,9]

La variable square stocke la fonction en nombres carrés et nous l'utiliserons ultérieurement lorsque nous souhaitons calculer les carrés des nombres d'une liste. Lors de l'établissement des fonctions lambda, nous devons faire attention aux points suivants:

  1. Aucune déclaration de retour.
  2. Les arguments ne sont pas entre parenthèses.
  3. Pas d'indentation.
  4. Plusieurs arguments sont séparés par une virgule
  5. Ces fonctions sont définies sur une seule ligne.

conclusion

Cet article concis mentionnait les étapes pour définir une fonction et expliquait les composants d'une fonction. La définition de fonction en Python peut sembler très différente de celle du C, C ++ ou Java sans clés, types de retour, etc. Mais une fois que nous comprenons la structure de la fonction, il devient plus facile d'écrire des fonctions plus compliquées.

A propos de l'auteur

Je suis un développeur Python travaillant dans une multinationale informatique depuis plus de trois ans. Vous pouvez me contacter via Gmail.

Les médias présentés dans cet article ne sont pas la propriété d'Analytics Vidhya et sont utilisés à la discrétion de l'auteur..

Abonnez-vous à notre newsletter

Nous ne vous enverrons pas de courrier SPAM. Nous le détestons autant que vous.