Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial programming >> Python

Python - Fonctions

Page PrécédentePage Suivante

Une fonction est un bloc de code organisé et réutilisable qui est utilisé pour effectuer une seule action connexe. Les fonctions offrent une meilleure modularité pour votre application et un degré élevé de réutilisation du code.

Comme vous le savez déjà, Python vous offre de nombreuses fonctions intégrées comme print(), etc. mais vous pouvez également créer vos propres fonctions. Ces fonctions sont appelées fonctions définies par l'utilisateur.

Définir une fonction

Vous pouvez définir des fonctions pour fournir la fonctionnalité requise. Voici des règles simples pour définir une fonction en Python.

Syntaxe

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

Par défaut, les paramètres ont un comportement positionnel et vous devez les renseigner dans le même ordre qu'ils ont été définis.

Exemple

La fonction suivante prend une chaîne comme paramètre d'entrée et l'affiche sur l'écran standard.

def printme( str ):
   "This prints a passed string into this function"
   print str
   return

Appeler une fonction

Définir une fonction ne lui donne qu'un nom, précise les paramètres à inclure dans la fonction et structure les blocs de code.

Une fois la structure de base d'une fonction finalisée, vous pouvez l'exécuter en l'appelant depuis une autre fonction ou directement depuis l'invite Python. Voici l'exemple pour appeler la fonction printme() −

Démo en direct
#!/usr/bin/python

# Function definition is here
def printme( str ):
   "This prints a passed string into this function"
   print str
   return;

# Now you can call printme function
printme("I'm first call to user defined function!")
printme("Again second call to the same function")

Lorsque le code ci-dessus est exécuté, il produit le résultat suivant −

I'm first call to user defined function!
Again second call to the same function

Passer par référence vs valeur

Tous les paramètres (arguments) du langage Python sont passés par référence. Cela signifie que si vous modifiez ce à quoi un paramètre fait référence dans une fonction, le changement se reflète également dans la fonction appelante. Par exemple −

Démo en direct
#!/usr/bin/python

# Function definition is here
def changeme( mylist ):
   "This changes a passed list into this function"
   mylist.append([1,2,3,4]);
   print "Values inside the function: ", mylist
   return

# Now you can call changeme function
mylist = [10,20,30];
changeme( mylist );
print "Values outside the function: ", mylist

Ici, nous maintenons la référence de l'objet passé et ajoutons des valeurs dans le même objet. Donc, cela produirait le résultat suivant −

Values inside the function:  [10, 20, 30, [1, 2, 3, 4]]
Values outside the function:  [10, 20, 30, [1, 2, 3, 4]]

Il existe un autre exemple où l'argument est passé par référence et la référence est écrasée à l'intérieur de la fonction appelée.

Démo en direct
#!/usr/bin/python

# Function definition is here
def changeme( mylist ):
   "This changes a passed list into this function"
   mylist = [1,2,3,4]; # This would assig new reference in mylist
   print "Values inside the function: ", mylist
   return

# Now you can call changeme function
mylist = [10,20,30];
changeme( mylist );
print "Values outside the function: ", mylist

Le paramètre mylist est local à la fonction changeme. La modification de mylist dans la fonction n'affecte pas mylist . La fonction n'accomplit rien et finalement cela produirait le résultat suivant −

Values inside the function:  [1, 2, 3, 4]
Values outside the function:  [10, 20, 30]

Arguments de la fonction

Vous pouvez appeler une fonction en utilisant les types d'arguments formels suivants −

Arguments requis

Les arguments requis sont les arguments passés à une fonction dans l'ordre de position correct. Ici, le nombre d'arguments dans l'appel de la fonction doit correspondre exactement à la définition de la fonction.

Pour appeler la fonction printme() , vous devez absolument passer un argument, sinon cela donne une erreur de syntaxe comme suit −

Démo en direct
#!/usr/bin/python

# Function definition is here
def printme( str ):
   "This prints a passed string into this function"
   print str
   return;

# Now you can call printme function
printme()

Lorsque le code ci-dessus est exécuté, il produit le résultat suivant −

Traceback (most recent call last):
   File "test.py", line 11, in <module>
      printme();
TypeError: printme() takes exactly 1 argument (0 given)

Arguments de mots clés

Les arguments de mot-clé sont liés aux appels de fonction. Lorsque vous utilisez des arguments de mots clés dans un appel de fonction, l'appelant identifie les arguments par le nom du paramètre.

Cela vous permet d'ignorer les arguments ou de les placer dans le désordre car l'interpréteur Python est capable d'utiliser les mots-clés fournis pour faire correspondre les valeurs avec les paramètres. Vous pouvez également faire des appels de mots-clés à printme() fonctionner de la manière suivante −

Démo en direct
#!/usr/bin/python

# Function definition is here
def printme( str ):
   "This prints a passed string into this function"
   print str
   return;

# Now you can call printme function
printme( str = "My string")

Lorsque le code ci-dessus est exécuté, il produit le résultat suivant −

My string

L'exemple suivant donne une image plus claire. Notez que l'ordre des paramètres n'a pas d'importance.

Démo en direct
#!/usr/bin/python

# Function definition is here
def printinfo( name, age ):
   "This prints a passed info into this function"
   print "Name: ", name
   print "Age ", age
   return;

# Now you can call printinfo function
printinfo( age=50, name="miki" )

Lorsque le code ci-dessus est exécuté, il produit le résultat suivant −

Name:  miki
Age  50

Arguments par défaut

Un argument par défaut est un argument qui prend une valeur par défaut si aucune valeur n'est fournie dans l'appel de fonction pour cet argument. L'exemple suivant donne une idée des arguments par défaut, il imprime l'âge par défaut s'il n'est pas passé −

Démo en direct
#!/usr/bin/python

# Function definition is here
def printinfo( name, age = 35 ):
   "This prints a passed info into this function"
   print "Name: ", name
   print "Age ", age
   return;

# Now you can call printinfo function
printinfo( age=50, name="miki" )
printinfo( name="miki" )

Lorsque le code ci-dessus est exécuté, il produit le résultat suivant −

Name:  miki
Age  50
Name:  miki
Age  35

Arguments de longueur variable

Vous devrez peut-être traiter une fonction pour plus d'arguments que vous n'en avez spécifiés lors de la définition de la fonction. Ces arguments sont appelés variable-length arguments et ne sont pas nommés dans la définition de la fonction, contrairement aux arguments obligatoires et par défaut.

La syntaxe d'une fonction avec des arguments variables non-mot-clé est la suivante -

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

Un astérisque (*) est placé avant le nom de la variable qui contient les valeurs de tous les arguments de variables autres que les mots-clés. Ce tuple reste vide si aucun argument supplémentaire n'est spécifié lors de l'appel de la fonction. Voici un exemple simple −

Démo en direct
#!/usr/bin/python

# Function definition is here
def printinfo( arg1, *vartuple ):
   "This prints a variable passed arguments"
   print "Output is: "
   print arg1
   for var in vartuple:
      print var
   return;

# Now you can call printinfo function
printinfo( 10 )
printinfo( 70, 60, 50 )

Lorsque le code ci-dessus est exécuté, il produit le résultat suivant −

Output is:
10
Output is:
70
60
50

Le Anonyme Fonctions

Ces fonctions sont dites anonymes car elles ne sont pas déclarées de manière standard en utilisant le def mot-clé. Vous pouvez utiliser le lambda mot-clé pour créer de petites fonctions anonymes.

Syntaxe

La syntaxe de lambda functions ne contient qu'une seule instruction, qui est la suivante −

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

Voici l'exemple pour montrer comment lambda forme de fonction fonctionne −

Démo en direct
#!/usr/bin/python

# Function definition is here
sum = lambda arg1, arg2: arg1 + arg2;

# Now you can call sum as a function
print "Value of total : ", sum( 10, 20 )
print "Value of total : ", sum( 20, 20 )

Lorsque le code ci-dessus est exécuté, il produit le résultat suivant −

Value of total :  30
Value of total :  40

Le retour Déclaration

L'instruction return [expression] quitte une fonction, en renvoyant éventuellement une expression à l'appelant. Une instruction return sans arguments est identique à return None.

Tous les exemples ci-dessus ne renvoient aucune valeur. Vous pouvez renvoyer une valeur à partir d'une fonction comme suit −

Démo en direct
#!/usr/bin/python

# Function definition is here
def sum( arg1, arg2 ):
   # Add both the parameters and return them."
   total = arg1 + arg2
   print "Inside the function : ", total
   return total;

# Now you can call sum function
total = sum( 10, 20 );
print "Outside the function : ", total 

Lorsque le code ci-dessus est exécuté, il produit le résultat suivant −

Inside the function :  30
Outside the function :  30

Portée des variables

Toutes les variables d'un programme peuvent ne pas être accessibles à tous les emplacements de ce programme. Cela dépend de l'endroit où vous avez déclaré une variable.

La portée d'une variable détermine la partie du programme où vous pouvez accéder à un identificateur particulier. Il existe deux portées de base des variables en Python −

Variables globales et variables locales

Les variables définies à l'intérieur d'un corps de fonction ont une portée locale, et celles définies à l'extérieur ont une portée globale.

Cela signifie que les variables locales ne sont accessibles qu'à l'intérieur de la fonction dans laquelle elles sont déclarées, tandis que les variables globales sont accessibles dans tout le corps du programme par toutes les fonctions. Lorsque vous appelez une fonction, les variables déclarées à l'intérieur de celle-ci sont mises en portée. Voici un exemple simple −

Démo en direct
#!/usr/bin/python

total = 0; # This is global variable.
# Function definition is here
def sum( arg1, arg2 ):
   # Add both the parameters and return them."
   total = arg1 + arg2; # Here total is local variable.
   print "Inside the function local total : ", total
   return total;

# Now you can call sum function
sum( 10, 20 );
print "Outside the function global total : ", total 

Lorsque le code ci-dessus est exécuté, il produit le résultat suivant −

Inside the function local total :  30
Outside the function global total :  0

Python

  1. Fonction Python Anonyme/Lambda
  2. Générateurs Python
  3. Fermetures Python
  4. Décorateurs Python
  5. 10 fonctions populaires dans Stratasys Insight
  6. Fonctions C++ avec exemples de programmes
  7. Python String strip() Fonction avec EXAMPLE
  8. Fonctions Python Lambda avec EXEMPLES
  9. Fonction Python abs() :Exemples de valeurs absolues