Tutoriel d'intr...login
Tutoriel d'introduction de base à Python
auteur:php.cn  temps de mise à jour:2022-04-18 16:14:50

Fonctions Python


Une fonction est un segment de code organisé et réutilisable utilisé pour implémenter une fonction unique ou associée. Les fonctions

peuvent améliorer la modularité des applications et la réutilisation du code. Vous savez déjà que Python fournit de nombreuses fonctions intégrées, telles que print(). Mais vous pouvez également créer vos propres fonctions, appelées fonctions définies par l'utilisateur.


Définir une fonction

Vous pouvez définir une fonction avec la fonction que vous souhaitez, voici des règles simples :

  • Code de fonction A Le bloc commence par le mot-clé def, suivi du nom de l'identifiant de la fonction et des parenthèses ().

  • Tous les paramètres et arguments entrants doivent être placés entre parenthèses. Les paramètres peuvent être définis entre parenthèses.

  • La première ligne d'une fonction peut éventuellement utiliser une docstring - utilisée pour stocker les descriptions de fonctions.

  • Le contenu de la fonction commence par deux points et est en retrait.

  • return [expression] Termine la fonction, renvoyant éventuellement une valeur à l'appelant. Renvoyer sans expression équivaut à renvoyer Aucun.


Syntaxe

def functionname(parameters):
"Function_docstring"
function_suite
return [ expression]

Par défaut, les valeurs des paramètres et les noms des paramètres correspondent dans l'ordre défini dans la déclaration de la fonction.

Exemple

Ce qui suit est une simple fonction Python qui prend une chaîne comme paramètre d'entrée et l'imprime sur un périphérique d'affichage standard.

def printme(str):
"Imprimer la chaîne entrante sur le périphérique d'affichage standard"
print str
return

Appel de fonction

Définir une fonction donne uniquement un nom à la fonction, spécifie les paramètres contenus dans la fonction et la structure du bloc de code.

Une fois la structure de base de cette fonction terminée, vous pouvez l'exécuter via un autre appel de fonction ou directement à partir de l'invite Python.

L'exemple suivant appelle la fonction printme() :

#!/usr/bin/python
# -*- codage : UTF-8 -*-

# Définir la fonction
def printme(str):
"Imprimer toute chaîne entrante"
print str;
return;

# Appeler la fonction
printme( "Je veux appeler une fonction définie par l'utilisateur !");
printme("Appeler à nouveau la même fonction");

Le résultat de sortie de l'exemple ci-dessus :

Je souhaite appeler une fonction définie par l'utilisateur !
Appeler à nouveau la même fonction

Passer des paramètres par valeur et passer des paramètres par référence

Tous les paramètres (variables indépendantes) sont passés par référence en Python. Si vous modifiez les paramètres dans la fonction, les paramètres d'origine seront également modifiés dans la fonction qui appelle cette fonction. Par exemple :

#!/usr/bin/python
# -*- codage : UTF-8 -*-

# Description de la fonction inscriptible
def changeme (mylist):
"Modifier la liste entrante"
mylist.append([1,2,3,4]);
print "Valeur dans la fonction : ", mylist
return

# Appeler la fonction changeme
mylist = [10,20,30];
changeme( mylist );
print "Valeur en dehors de la fonction : ", mylist

L'objet passé dans la fonction et l'objet pour ajouter du nouveau contenu à la fin utilisent la même référence. Par conséquent, le résultat de sortie est le suivant :

Valeurs au sein de la fonction : [10, 20, 30, [1, 2, 3, 4]]
Valeurs en dehors de la fonction : [10, 20, 30, [1, 2, 3, 4]]

Paramètres

Voici les types de paramètres formels qui peuvent être utilisés lorsque fonctions d'appel :

  • Paramètres requis

  • Paramètres de mots clés

  • Paramètres par défaut

  • Paramètres de longueur variable

Paramètres requis

Les paramètres requis doivent être transmis à la fonction dans le bon ordre. La quantité au moment de l'appel doit être la même que lors de la déclaration.

Lors de l'appel de la fonction printme(), vous devez passer un paramètre, sinon une erreur de syntaxe se produira :

#!/usr/bin/python
# - *- codage : UTF-8 -*-

#Description de la fonction inscriptible
def printme(str):
"Imprimer toute chaîne entrante"
print str;
return

#Call printme function
printme();

Résultat de sortie de l'exemple ci-dessus :

Traceback (dernier appel le plus récent) :
Fichier "test.py", ligne 11, dans <module>
printme();
TypeError : printme() prend exactement 1 argument (0 donné)

Paramètres de mots-clés

Les paramètres de mots-clés sont étroitement liés aux appels de fonction. Les appels de fonction utilisent des paramètres de mots-clés pour déterminer les valeurs des paramètres transmises.

L'utilisation d'arguments de mots-clés permet à une fonction d'être appelée dans un ordre différent de celui lors de sa déclaration, car l'interpréteur Python est capable de faire correspondre les noms de paramètres avec les valeurs des paramètres.

Les exemples suivants utilisent des noms de paramètres lors de l'appel de la fonction printme() :

#!/usr/bin/python
# -*- codage : UTF-8 -* -

#Description de la fonction inscriptible
def printme(str):
"Imprimer n'importe quelle chaîne entrante"
print str;
return;

#Appelez le printme function
printme(str = "Ma chaîne");

L'exemple de résultat de sortie ci-dessus :

Ma chaîne

Le L'exemple suivant peut montrer plus clairement que l'ordre des paramètres des mots-clés n'est pas important :

#!/usr/bin/python
# -*- codage : UTF-8 -*-

#Description de la fonction inscriptible
def printinfo(name, age):
"Imprimer toute chaîne entrante"
print "Name: ", name;
print "Age " , age;
return;

#Appelez la fonction printinfo
printinfo(age=50, name="miki");

Le résultat de sortie de l'exemple ci-dessus :

Nom : miki
Âge 50

Paramètres par défaut

Lors de l'appel d'une fonction, si la valeur du paramètre par défaut n'est pas transmise, elle est considérée comme la valeur par défaut. L'exemple suivant affichera l'âge par défaut si l'âge n'est pas transmis :

#!/usr/bin/python
# -*- codage : UTF-8 -*-

#Description de la fonction inscriptible
def printinfo(name, age = 35):
"Imprimer toute chaîne entrante"
print "Name: ", name;
print "Age " , age;
return;

#Appeler la fonction printinfo
printinfo(age=50, name="miki");
printinfo(name="miki");

Résultat de sortie de l'exemple ci-dessus :

Nom : miki
Âge 50
Nom : miki
Âge 35

Paramètres de longueur indéfinie

Vous aurez peut-être besoin d'une fonction capable de gérer plus de paramètres que ceux initialement déclarés. Ces paramètres sont appelés paramètres de longueur variable. Contrairement aux deux paramètres ci-dessus, ils ne seront pas nommés lors de leur déclaration. La syntaxe de base est la suivante :

def functionname([formal_args,] *var_args_tuple):
"Function_docstring"
function_suite
return [expression]

Les noms de variables avec un astérisque (*) stockeront tous les paramètres de variables sans nom. Vous pouvez également choisir de ne pas transmettre davantage de paramètres. L'exemple suivant :

#!/usr/bin/python
# -*- codage : UTF-8 -*-

# Description de la fonction inscriptible
def printinfo(arg1, *vartuple):
"Imprimer tous les arguments passés"
print "Sortie : "
print arg1
for var in vartuple:
print var
return

# Appelez la fonction printinfo
printinfo( 10 );
printinfo( 70, 60, 50 );

Le résultat de sortie de l'exemple ci-dessus :

Sortie :
10
Sortie :
70
60
50

Fonction anonyme

python utilise lambda pour créer des fonctions anonymes.

  • lambda n'est qu'une expression, et la fonction body est beaucoup plus simple que def.

  • Le corps de lambda est une expression, pas un bloc de code. Seule une logique limitée peut être encapsulée dans des expressions lambda.

  • La fonction lambda a son propre espace de noms et ne peut pas accéder aux paramètres en dehors de sa propre liste de paramètres ou dans l'espace de noms global.

  • Bien que la fonction lambda semble pouvoir écrire une seule ligne, elle n'est pas équivalente à la fonction inline du C ou du C++. Le but de cette dernière est d'appeler une petite fonction. sans occuper la mémoire de la pile et augmenter ainsi l'efficacité du temps d'exécution.

Syntaxe

La syntaxe de la fonction lambda ne contient qu'une seule instruction, comme suit :

lambda [arg1 [,arg2,. ... .argn]]:expression

L'exemple suivant :

#!/usr/bin/python
# -*- codage : UTF- 8 -*-

# Description de la fonction inscriptible
sum = lambda arg1, arg2 : arg1 + arg2;

# Appeler la fonction somme
print "La valeur ajoutée est : " , sum ( 10, 20 )
print "La valeur ajoutée est : ", sum( 20, 20 )

L'exemple de résultat de sortie ci-dessus :

Ajouter La valeur après ajout est : 30
La valeur après ajout est : 40

instruction return

instruction return [expression] quitte la fonction et renvoie éventuellement une expression à l'appelant. Une instruction return sans valeurs de paramètres renvoie None. Les exemples précédents n'ont pas montré comment renvoyer une valeur. L'exemple suivant vous expliquera comment procéder :

#!/usr/bin/python
# -*- codage : UTF. -8 -*-

# Description de la fonction inscriptible
def sum(arg1, arg2):
#Renvoie la somme de 2 paramètres "
total = arg1 + arg2
" print dans la fonction : ", total
return total;

# Call sum function
total = sum(10, 20);
print "En dehors de la fonction : ", total

Résultats de sortie de l'exemple ci-dessus :

À l'intérieur de la fonction : 30
En dehors de la fonction : 30

Portée variable

d'un programme Toutes les variables ne sont pas accessibles à tous les emplacements. Les autorisations d'accès dépendent de l'endroit où la variable est attribuée.