Fonctions Les fonctions permettent de reproduire la même tâche sur des donnée
Fonctions Les fonctions permettent de reproduire la même tâche sur des données différentes sans avoir à recopier le code. Elles acceptent des paramètres et retournent des résultats avec le mot-clé return. En Python, il n’y a pas de distinction entre procédure et fonction : les procédures sont des fonctions qui retournent la valeur None. 2 Fonctions Les fonctions sont des constructions pour structurer les programmes. Elles permettent d’utiliser le code à plusieurs endroits d’un programme. 3 def <nom_fonctions>(<liste_paramètres>): … # instructions (lignes indentées) Le corps d’une fonction peut contenir l’instruction return. Cette instruction termine l'exécution de l'appel de fonction et "renvoie" le résultat à l'appelant. S'il n'y a pas return, la fonction se termine quand le flux de contrôle atteint la fin de son corps. Elle renvoie l’objet None Fonctions Un paramètre est une entité nommée dans la définition d’une fonction (ou méthode), décrivant un argument (ou dans certains cas des arguments) que la fonction accepte. Il n'y a que deux façons de placer des arguments en python: soit grâce à la position des paramètres soit grâce à leur nom 4 Paramètres d’une fonction Il y a 5 types de paramètres en Python. Les plus utilisés sont : Paramètre positionnel ou nommé (positional or keyword) : Il peut recevoir une valeur soit en utilisant sa position, soit en utilisant son nom Paramètre nommé uniquement (keyword-only) : Il faut obligatoirement nommer le paramètre pour lui donner une valeur Paramètre positionnel à nombre variable (var-positional): Il récupère toutes les valeurs supplémentaires des argument positionnels (dans un tuple) lorsque tous les précédents ont reçu une valeur 5 Paramètres d’une fonction #1ère façon de définir un key_only def fct(pos_key, *var_pos, key_only, **var_key): … # corps de la fonction 6 #2ème façon de définir un key_only def fct(pos_key, *, key_only, **var_key): … # corps de la function Paramètre nommé à nombre variable (var-keyword) : Il récupère (dans un dictionnaire) toutes les valeurs supplémentaires des arguments nommés n'existant pas dans la signature. Paramètres d’une fonction Il est possible de définir une valeur par défaut pour les paramètres positionnels ou nommés et pour ceux nommés uniquement : Il faut placer les paramètres ayant des valeurs par défaut après ceux qui n'ont pas de valeurs par défaut. 7 def fct(pk1, pk2="default", *var_p, k_only1, k_only2="default", **var_k) … # corps de la fonction def fct(p_k1, p_k2, p_k3): pass fct(23, p_k2=55, 78) # Erreur fct(23, p_k2=55, p_k3=78) # OK Paramètres d’une fonction 8 Exemples : def fct(p_k1, p_k2, *args): pass fct(p_k1=5, p_k2=10, 3, 4, 5, 6) # Erreur fct(5, 10, 3, 4, 5, 6) # Ok Fonctions 9 def afficher(jour, *numeros, ciel="bleu", **gagnants): print("positionel ou nommé : ", jour) print("var positionel : ", numeros) print(“nommé uniquement : ", ciel) print("var-nommé : ", gagnants) afficher("Lundi", 1, 3, 32, 7, ciel="gris", Asma=344, Ahmed=475) # L’affichage est alors: positionel ou nommé : Lundi var positionel : (1, 3, 32, 7) nommé uniquement : gris var-nommé : {'Asma': 344, 'Ahmed': 475} Les fonctions lambda Python propose un autre moyen de créer des fonctions courtes limitées à une seule instruction : les fonctions lambda Elles sont utilisées dans certains contextes, pour lesquels définir une fonction avec def serait plus long et moins pratique. Exemples : 10 lambda par1, par2, …: instruction de retour lambda x : x*x lambda x : 10 if x >0 else -10 Les fonctions lambda 11 f=lambda x : 10 if x >0 else -10 a = f(5) # a vaut 10 b = (lambda x,y : sum([v for v in range(x,y)]))(2,6) # b vaut 14 Gestion des fichiers Pour ouvrir un fichier on utilise la fonction : open(nomFichier, mode) mode est une chaîne optionnelle qui spécifie le mode (par défaut, mode = 'r') : 12 'r' Lecture (read). Pointeur placé en début de fichier 'w' Ecriture (write). Ancien contenu perdu. Fichier créé s’il n’existe pas. 'a' Ajout à la fin (append). Pointeur placé en fin de fichier. Fichier créé s’il n’existe pas. 'r+' Lecture et écriture. Pointeur placé en début de fichier 'w+' Lecture et écriture (write). Ancien contenu perdu. Fichier créé s’il n’existe pas. 'a+' Ajout et lecture. Pointeur placé en fin de fichier. Fichier créé s’il n’existe pas. Ouverture et fermeture d’un fichier open( ) renvoie un objet utilisé pour manipuler le fichier. La fonction open( ) lance une erreur d’exécution de type FileNotFoundError quand le fichier spécifié n’est pas trouvé. Il est possible de capturer cette erreur dans un bloc try…except (voir chapitre suivant) 13 f = open('topics.txt') # équivalent à f = open('topics.txt', 'r') f = open('topics.txt', 'w') # ouvrir le fichier en écriture Ouverture et fermeture d’un fichier Après utilisation (lecture/écriture) il faut fermer le fichier avec f.close() L’instruction with garantit la fermeture du fichier automatiquement après son utilisation. 14 with open("data.txt", "r") as fichier : print (fichier.read()) Gestion des fichiers Méthodes en mode lecture : f.read() : renvoie une chaîne avec le contenu du fichier f.readline() : chaque appel renvoie une ligne du fichier f.readlines() : renvoie une liste avec les lignes du fichier Les « lignes » ont toujours '\n' à la fin Exemple : Itérer sur les lignes d'un fichier 15 f = open('data.txt') for ligne in f : print(ligne, end='') f.close() Gestion des fichiers Méthodes en mode écriture ('w'/'a') : f.write(s) : écrit la chaîne s dans le fichier et renvoie le nombre de caractères écrits. f.writelines(liste) où liste est une liste de chaînes : écrit les chaînes dans le fichier (le '\n' n'est pas ajouté automatiquement) En modalité 'w', ces méthodes écrasent le contenu du fichier ! f.seek(position) change la position de lecture/écriture dans le fichier. 16 Chemins de fichier Il existe plusieurs méthodes pour manipuler le chemin (path) d’un fichier Exemples : 17 import os p = "D:\\Nahla\\Travail\\Python\\tests\\voit.py" s= os.path.dirname(p) # s vaut 'D:\\Nahla\\Travail\\Python\\tests' s= os.path.basename(p) # s vaut 'voit.py‘ p= 'D:\\Nahla' s= os.path.join(p, "func.py") # s vaut 'D:\\Nahla\\func.py' tup= os.path.split(p) # tup vaut #('D:\\Nahla\\Travail\\Python\\tests', 'voit.py') s= os.path.abspath(".") PROGRAMMATION OBJET 18 Classe et objet Une classe est la description d'une famille d'objets qui ont la même structure et les mêmes comportements. Une classe est une sorte de moule à partir duquel sont générés les objets. Une classe est constituée : d'un ensemble de variables (attributs) qui décrivent la structure des objets ; d'un ensemble de fonctions (méthodes) qui sont applicables aux objets, et qui décrivent leur comportement. 19 Objet L‘état d'un objet : regroupe les valeurs instantanées de tous ses attributs évolue au cours du temps est la conséquence de ses comportements passés Une classe est une abstraction, elle définit une infinité d'objets. Un objet est caractérisé par un état, des comportements et une identité En Python, les attributs d’un objet d’une classe sont par défaut dynamiques. On peut initializer une partie (ou tous) les attributes dans la méthode __init__() de la definition de la classe 20 21 # Définition d'une classe class Voiture : def __init__ ( self , marque="aucune" , couleur="aucune" , reserves=0): self.marque = marque self.couleur = couleur self.reserveEssence = resreves # Objet ma_voiture = Voiture() #Etat ma_voiture.marque = "punto" ma_voiture.couleur = "grise" ma_voiture.reserveEssence = 30 Exemple : Le comportement d’un objet regroupe toutes ses compétences, il décrit les actions et les réactions d'un objet. Il se représente sous la forme de méthodes Exemple : 22 class Voiture : def __init__ ( … ) : … def demarrer (self) : print("je démarre") def arreter(self) : print("Je m'arrête") ma_voiture = Voiture() # Comportement ma_voiture.demarrer() ma_voiture.arreter() uploads/Philosophie/ seancedu-6-11-2020.pdf
Documents similaires










-
69
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Nov 30, 2021
- Catégorie Philosophy / Philo...
- Langue French
- Taille du fichier 0.7967MB