Initiation à la programmation impérative et algorithmique

Slides:



Advertisements
Présentations similaires
H. Richard – Initiation à la programmation impérative et algorithmique Cours 4 – Entrées/Sorties et Fonctions Largement inspiré des cours :
Advertisements

Le débogage Semaine 12 Version A15. Plan de leçon - Débogage  Commentaire javadoc  Définition  Fonctionnement  Point d’arrêt  Exécution  Contrôler.
A la fin de ton année de 4 ème, tu dois être capable d’utiliser parfaitement un Mais d’abord qu’est-ce qu’un TABLEUR ? ???? TABLEUR- GRAPHEUR Page suivante.
C++ Les fonctions. Présentation Utilité : Dès qu'un programme dépasse la centaine de lignes de code, il est pratique de pouvoir le décomposer en plusieurs.
CINI – Li115 1 Semaine 9 Algorithmes de tri ● Introduction ● Tri à bulle ● - principe ● - algorithme ● - efficacité ● Tri par sélection ● - principe, algorithme,
CINI – Li115 1 Semaine 6 Les fonctions ● Pourquoi écrire des fonctions ? ● Définition de fonctions ● Fonction main ● Appels de fonctions ● Portée des variables.
1 Programmation en C++ C++ de base ● Programme C++ ● Variables, objets, types ● Fonctions ● Namespace ● Tests ● Boucles ● Pointeurs, références.
1 Programmation en C++ C++ de base ● Programme C++ ● Variables, objets, types ● Types et opérations fondamentales ● Tests ● Boucles ● Pointeurs, références.
Tableaux en C Mardi 2/05.
Le Langage JavaScript pour le web
>>> Amphi Python
Ajouter le code dans une page html
Suites ordonnées ou mettre de l’ordre
Les Instructions Itératives (Les Boucles)
Introduction au Langage Pascal
Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne
Représentation des nombres réels
Quelques Termes INFORMATIQUE ? ORDINATEUR ( Système Informatique)?
Chapitre 1 nombres, chaînes de caractères, booléens, et VARIABLES
« Un langage de programmation est une convention pour donner des ordres à un ordinateur. Ce n’est pas censé être obscur, bizarre et plein de pièges subtils.
Introduction à l’algorithmique. Introduction Algorithme: Procédure décrivant, étape par étape, une méthode permettant de résoudre un problème. Mot provenant.
Semaine #1 INF130 par Frédérick Henri.
Javadoc et débogueur Semaine 03 Version A17.
Algorithmique demander jeu du pendu.
Principes de programmation (suite)
1°) Un nombre y est-il associé à 3, et si oui lequel ?
Master Réseaux et Systèmes Distribués (RSD)
11ième Classe (Mardi, 18 novembre) CSI2572
Les fonctions.
Les fonctions.
Algorithmiques Abdelbasset KABOU
Initiation à la programmation impérative et algorithmique
Programmation Numération Compétences visées Période
SIF-1053 Architecture de ordinateurs
Un Algorithme , c'est Quoi ?
Bases de programmation en Python
Initiation à la programmation impérative et algorithmique
Introduction à l’algorithmique. Introduction Algorithme: Procédure décrivant, étape par étape, une méthode permettant de résoudre un problème. Mot provenant.
Langages de programmation TP3
Excel (et toute l’informatique) :
Cours N°6: Algorithmiques Structures Conditionnelles
L E C ORPS D ’ UN A LGORITHME / P ROGRAMME – L A PARTIE I NSTRUCTION Réalisé par : OUZEGGANE Redouane Département de Technologie Faculté de Technologie.
L’I NSTRUCTION DE T EST A LTERNATIF Réalisé par : OUZEGGANE Redouane Département de Technologie Faculté de Technologie – Université A.Mira, Bejaia Année.
L ES I NSTRUCTIONS I TÉRATIVES (L ES B OUCLES ) Réalisé par : OUZEGGANE Redouane Département de Technologie Faculté de Technologie – Université A.Mira,
Science du traitement rationnel de l'information
Introduction à l’algorithmique. Introduction Algorithme: Procédure décrivant, étape par étape, une méthode permettant de résoudre un problème. Mot provenant.
Cours N°9: Algorithmiques Les Tableaux 1
Les tableaux.
Programmation en C++ C++ de base
Structure D’une Base De Données Relationnelle
1 RECURSIVITE PRESENTATION Ch. PAUL ALGORITHMIQUE Présentation de la récursivité.
Type Concret – Type Abstrait
Exercice PHP DEUST TMIC
Calcul Scientifique Initiation à SCILB
1 Copyright © 2004, Oracle. Tous droits réservés. Extraire des données à l'aide de l'instruction SQL SELECT.
Chapitre 1: introduction à Matlab
Semaine #3 INF130 par Frédérick Henri.
Position, dispersion, forme
PROGRAMMATION ET ENSEIGNEMENT
Compléments sur Python (EduPython)
RABAH M ed Ali 2018/2019
Recherche de zero d'une fonction MARMAD ANAS MPSI -2.
Opérateurs et fonctions arithmétiques Opérateurs de relation Opérateurs logiques Cours 02.
Flowchart Itération Cours 04.
Principes de programmation (suite)
Analyse et programmation langage ADA
Fonctions Abstractions procédurales.
PROGRAMMATION SOUS R. PRESENTE PAR : ACHETTOU ISMAIL LAARICH TARIQ ENCADRE PAR : Pr. EXPOSÉ SUR LA PROGRAMMATION SUR R 2.
DONNÉE DE BASE QM Manuel de formation. Agenda 2  Introduction  Objectif de la formation  Données de base QM: Caractéristique de contrôle Catalogue.
Les Commandes de base Linux. 1 L’aide sur les commandes Linux ◦ help : obtenir de l’aide pour une commande interne du shell. Elle permet aussi d'afficher.
Transcription de la présentation:

Initiation à la programmation impérative et algorithmique Cours 5 – Entrées/Sorties et Fonctions Largement inspiré des cours : Vercouter, Del Mondo & Delestre, Hérault, Mainguenaud (INSA de Rouen) Elodie Laine – 05.10.2017

Blocs d’instructions séquentielles De la programmation impérative… instruction 1 instruction 2 instruction 3 si condition a vérifiée: instruction conditionnelle a1 instruction conditionnelle a2 instruction 4 . Blocs d’instructions séquentielles variables sélections boucles types de données … à la programmation fonctionnelle Fonction f(paramètres d’entrée): instruction f1 instruction f2 retourne valeur de sortie Programme principal: instruction 1 si condition a vérifiée: appel de la fonction f(paramètres d’entrée) fonctions entrées/sorties fichiers récursivité Elodie Laine – 05.10.2017

Exemple de pseudo-code Declaration : effectif, taux, gain : Reel ; an, anMax : Entier effectif ← 100 anMax ← 20 taux ← 0.05 an ← 0 gain ← 0 tant que an < anMax faire gain ← gain + effectif * taux effectif ← effectif * (1+taux) an ← an + 1 fintantque afficher ‘La population a gagne’, gain, ‘individus.’ Données à entrer Données à sortir Une population a un effectif initial de 100 individus et croit de 5% tous les ans. On veut connaître le gain de population au bout de 20 ans. Pour écrire un algorithme générique visant à résoudre un problème, il est nécessaire de considérer plusieurs sources et destinations de données. Elodie Laine – 05.10.2017

Entrées et sorties Informatique = Traitement de l’information Les traitements sont réalisés par les instructions du programme Les données fournies en entrée de l’instruction subissent un traitement Un traitement produit des informations qui sont les sorties de l’instruction Indépendance vis-à-vis de l’IHM L’instruction lire est associée à un périphérique d’entrée spécifique : le clavier L’instruction ecrire est associée à un périphérique de sortie spécifique : l’écran En python, on lit au clavier avec la fonction raw_input() >> a=raw_input() 10 >> print a Ou bien la fonction input en python 3 >> user_input = input(‘Give me a number: ‘) Give me a number: 10 >> user_input ‘10’ >> type(user_input) <class ‘str’> Elodie Laine – 05.10.2017

Exemple de pseudo-code Pourquoi concevoir des algorithmes les plus génériques possibles ? => Pour optimiser leur transférabilité & modularité, et ainsi pouvoir les réutiliser d’un problème à l’autre Declaration : an : Entier Entree : effectif, taux : Reel ; anMax : Entier Sortie : gain : Reel an ← 0 gain ← 0 tant que an < anMax faire gain ← gain + effectif * taux effectif ← effectif * (1+taux) an ← an + 1 fintantque Formulation d’un algorithme général où on identifie les entrées et les sorties. Insister sur l’intérêt de ne pas codé en dur les valeurs des paramètres d’entrée : on peut maintenant faire varier l’effectif initial, le taux de croissance et la durée d’observation selon le problème posé Elodie Laine – 05.10.2017

Programmation structurée B A Définition de la fonction C code répété C B Appel de la fonction B D Étape supplémentaire : on s’est affranchi des paramètres, maintenant on introduit de la modularité dans le code. On evite de répéter les instructions D Elodie Laine – 05.10.2017

Programmation structurée Structure d’un programme Un programme est composé de sous-programmes L’exécution débute par le sous-programme principal L’exécution se déroule par des appels successifs de sous- programmes Les sous-programmes interagissent par le passage de données en entrée et en sortie Faire un petit schema au tableau illustrant les différents sous-programmes par des blocs rectangulaires avec des liens entre eux Elodie Laine – 05.10.2017

Les fonctions Les fonctions sont des sous-programmes admettant des paramètres d’entrée et retournant un seul résultat (comme les fonctions mathématiques y = f(x,…)). - les paramètres d’entrée sont en nombre fixe - le type de valeur retournée par une fonction est unique - la valeur de retour est spécifiée par l’instruction retourner Les fonctions peuvent aussi modifier l’état du programme sans retourner de valeur. La modification peut concerner plusieurs variables. Généralement, le nom d’une fonction est soit un substantif (par ex. minimum), soit une question (par ex. isEmpty) , soit un verbe (ex. move). Elodie Laine – 05.10.2017

Déclaration de fonction Fonction renvoyant une valeur fonction nom_fonction (parametres_entree) : type_valeur_retournee Declaration variables_locales debut instructions_de_la_fonction retourner valeur fin Fonction ne renvoyant pas de valeur fonction nom_fonction (parametres_entree) : None Declaration variables_locales debut instructions_de_la_fonction fin Elodie Laine – 05.10.2017

Exemple de fonction (1) fonction minimum2 (a, b : Entier) : Entier Declaration res : Entier debut si a ≥ b alors res ← b sinon res ← a finsi retourner res fin On cherche le minimum entre deux entiers (d’où le nom minimum2) Elodie Laine – 05.10.2017

Exemple de fonction (2) Declaration : an : Entier Entree : effectif, taux : Reel anMax : Entier Sortie : gain : Reel an ← 0 gain ← 0 tant que an < anMax faire gain ← gain + effectif * taux effectif ← effectif * (1+taux) an ← an + 1 fintantque fonction gainDePopulation (effectif, taux: Reel ; anMax: Entier) : Reel Declaration an : Entier ; gain : Reel debut an ← 0 gain ← 0 tant que an < anMax faire gain ← gain + effectif * taux effectif ← effectif * (1+taux) an ← an + 1 fintantque retourner gain fin On reprend l’algorithme général et on le transforme en une fonction : bien identifier où se trouvent maintenant les entrées et les sorties Elodie Laine – 05.10.2017

Appel de fonction L’exécution d’une fonction A se fait par un appel dans un sous-programme B. L’appel s’effectue par une instruction en utilisant le nom de la fonction A Lors de l’appel, une valeur est affectée à chaque paramètre d’entrée de A A la fin de A, l’exécution reprend après l’appel de A dans le sous-programme B La valeur retournée peut être utilisée dans B pour une affectation, un calcul… Elodie Laine – 05.10.2017

Exemple d’appel Dans un programme principal : Declaration : unEntier, min : Entier debut unEntier ← lire("Donnez un entier") min ← minimum2(unEntier, 0) ecrire(‘Le minimum avec 0 est :’, min) fin Dans une fonction : fonction minimum3 (a,b,c : Entier) : Entier debut retourner minimum2(a,minimum2(b,c)) fin Elodie Laine – 05.10.2017

Paramètres et signature Les paramètres Pour qu’un sous programme B appelle un sous-programme A, il faut : Que les informations données à A, lors de la définition de son algorithme, soient identifiées/nommées pour pouvoir être utilisées : paramètres formels (paramètres) Que B donne des instructions à A lors de l’appel : paramètres effectifs (arguments) La signature Une fonction est désignée de manière unique dans un programme par sa signature, composée de : Son nom Ses paramètres formels d’entrée Son type de retour Les paramètres formels sont ceux définis au niveau de la déclaration de A, les paramètres effectifs sont ceux donnés à A par B lors de son appel Insister sur l’intérêt de la signature en tant qu’identifiant unique d’une fonction Elodie Laine – 05.10.2017

Exercice 1/4 Cycle cellulaire Ecrire : Une fonction qui renvoie l’étape du cycle dans laquelle est une cellule à un âge donné, exprimé en heures Une fonction qui détermine si un âge est valide pour une cellule Un programme principal qui demande la saisie d’un âge pour une cellule et affiche le stade cellulaire dans lequel elle se trouve (12h) (18h) (0h) (22h) 1 2 3 4 Le cycle cellulaire est l’ensemble des modifications qu’une cellule subit entre sa formation par division à partir d’une cellule mère et le moment où cette cellule a fini de se diviser en deux cellules filles. La durée du cycle cellulaire varie d’une espèce à l’autre et d’un type cellulaire à l’autre. Des cellules humaines en culture se divisent environ toutes les 24 heures tandis qu’une levure bourgeonnante mettra seulement 90 minutes à faire le tour de son cycle. On distingue au microscope deux stades à ce cycle cellulaire : La mitose qui est la division de la cellule en deux cellules filles L’interphase qui est la période entre deux mitoses. Pendant l’interphase les chromosomes sont décondensés et distribués dans tout le noyau. Au niveau moléculaire, l’interphase est la période pendant laquelle croissance cellulaire et réplication de l’ADN s’effectuent de manière coordonnée en vue de la division cellulaire. La cellule grossit progressivement pendant toute l’interphase, la plupart doublant de taille entre leur naissance et leur division en deux cellules filles. Trois phases se succèdent pendant l’interphase : une phase de croissance de la cellule (G1), une phase de réplication de l’ADN (S) et une phase de croissance et de préparation à la mitose (G2). A la fin de la phase G1 et de la phase G2, il existe ce qu’on appelle des points de contrôle, ou "checkpoint", où la cellule contrôle que tout est parfaitement mis en place pour que respectivement la réplication de l’ADN et la mitose se déroulent normalement. Elodie Laine – 05.10.2017

Exercice 2/4 Fonction qui renvoie l’étape du cycle dans laquelle est une cellule à un âge donné fonction stadeCellulaire(age : Entier) : Chaîne de caractères Declaration etape : Chaîne de caractères debut si (age ≤ 12) alors etape ← “G1” sinon si (age ≤ 18) alors etape ← “S” si (age ≤ 22) alors etape ← “G2” etape ← “M” finsi retourner etape fin Etant donné un cycle cellulaire de 24 heures, on cherche à déterminer à quel stade de développement est une cellule au bout de x heures après la dernière division cellulaire. Elodie Laine – 05.10.2017

Exercice 3/4 Fonction qui détermine si un âge est valide pour une cellule fonction estUnAgeValide(age : Entier) : Booleen debut retourner (age > 0 ) et (age ≤ 24) fin Etant donné un cycle cellulaire de 24 heures, on cherche à déterminer à quel stade de développement est une cellule au bout de x heures après la dernière division cellulaire. Elodie Laine – 05.10.2017

Exercice 4/4 Programme principal Declaration: age : Entier debut age ← lire("Quel est votre age ?") si estUnAgeValide(age) alors ecrire(‘Cette cellule est dans le stade cellulaire ’, stadeCellulaire(age)) finsi fin Comment faire pour généraliser l’algorithme à différents types cellulaires ? Généralisation : il faut rentrer en paramètre la durée totale d’un cycle et déterminer les étapes à partir d’une fraction de la durée totale, provided that cette fraction est la même pour tous les types cellulaires. Elodie Laine – 05.10.2017

Les fonctions en Python En python, une fonction est définie à l’aide du mot clé def, suivi du nom de la fonction, puis de la liste de ses paramètres formels. Le corps de la fonction doit être indenté. def nom_fonction (paramètres_d_entree): instructions_de_la_fonction_reperees_par_l_indentation Généralement, les premières lignes de la fonction sont dédiées à des commentaires de documentation de la fonction, appelés ‘Docstring’. Déclaration et définition..? Elodie Laine – 05.10.2017

Les fonctions en Python En Python, les fonctions retournent toujours unevaleur, soit explicite, soit implicite. Pour retourner une valeur explicite, la dernière instruction qui est exécutée dans le corps de la fonction doit être return valeur. Si aucune valeur de retour n’est spécifiée, la valeur prédéfinie None lui sera substituée. Déclaration et définition..? Elodie Laine – 05.10.2017

Exemple de fonction en Python def prem (x): n = 2 while n < x: d = 2 while d < n: if n % d == 0: print n, “=”, d, “*”, n/d break else: d = d + 1 if d == n: print(n, “est premier”) n = n + 1 Déclaration de la fonction 1er niveau d’indentation: corps de la fonction 2ème niveau d’indentation: boucle 3ème niveau d’indentation: boucle 4ème niveau d’indentation: sélection simple 3ème niveau d’indentation: sortie du bloc if 4ème niveau d’indentation: sélection alternative prem(20) n=2 ; d=void n=3 ; d=2 ; 3%2=1 ; 3 est premier n=4 ; d=2 ; 4%2=0 ; 4=2*2 et on s’arrete puisqu’il suffit de trouver un diviseur (d’où le break) n=5 ; d=2 ; 5%2=1 ; d=3 ; 5%3=2 ; d=4 ; 5%4=1 ; 5 est premier 2ème niveau d’indentation: sortie de la boucle 3ème niveau d’indentation: sélection simple 2ème niveau d’indentation: sortie du bloc if Elodie Laine – 05.10.2017

Portée des variables en Python (1) def carre(x): y = x * x a = 15 carre(a) print(“Le carré de ”, a, “ est égal à ”, y, “ .”) def carre(x): y = x * x return(y) a = 15 b=carre(a) Print(“Le carré de ”, a, “ est égal à ”, b, “ .”) => Erreur : y n’est pas défini ! => Le carré de 15 est égal à 225. Elodie Laine – 05.10.2017

Portée des variables en Python (2) Lors de son exécution, une fonction génère une table de symboles qui sera utilisée pour ses variables locales. A chaque fois qu’un nom de variable apparaît à gauche d’un signe d’affectation, une variable locale est créée. Une variable déclarée dans une fonction n’est pas visible depuis les autres sous-programmes. Toute référence à une variable apparaissant à droite d’un signe d’affectation déclenche une recherche de la variable selon l’ordre de priorité Local- Global-Integrated (LGI), soit (1) dans la table locale, (2) dans la table globale, (3) dans la table des noms intégrés. Ainsi, on peut faire référence à une variable globale dans une fonction, mais on ne peut pas lui affecter une valeur. Pour outrepasser cette interdiction, on utilise le mot clé global dans le corps de la fonction. Elodie Laine – 05.10.2017

Portée des variables en Python (3) def carre(x): global y y = x * x a = 15 carre(a) Print(“Le carré de ”, a, “ est égal à ”, y, “ .”) def carre(x): y = x * x return(y) a = 15 b=carre(a) Print(“Le carré de ”, a, “ est égal à ”, b, “ .”) => Le carré de 15 est égal à 225. => Le carré de 15 est égal à 225. Elodie Laine – 05.10.2017

Portée des variables en Python (4) def hello(prenom): print("Bonjour", prenom) hello("Patricia") print(x) x = 10 def hello(prenom): print("Bonjour", prenom) hello("Patricia") print(x) Bonjour Patricia Erreur : x n’est pas défini ! Bonjour Patricia 10 x = 10 def hello(prenom): print("Bonjour", prenom) print(x) hello("Patricia") x = 10 def hello(prenom): x = 42 print("Bonjour", prenom) print(x) hello("Patricia") A vérifier ! Bonjour Patricia 10 Bonjour Patricia 42 10 Elodie Laine – 05.10.2017

Paramètres par défaut La liste d’appel d’une fonction peut contenir un nombre variable d’arguments. Il est possible d’affecter une valeur par défaut à certains paramètres d’entrée, de sorte de le nombre de paramètres effectifs (arguments) donnés lors de l’appel de la fonction sera inférieur au nombre de paramètres formels (paramètres) qui apparaissent dans sa définition. def afficheAB(a=‘10’,b=“salut”): print(“a : ”, a, “ ; b : ”, b) afficheAB() afficheAB(“bonjour”,“monsieur”) afficheAB(“je te dis”) => a : 10 ; b : salut => a : bonjour ; b : monsieur => a : je te dis ; b : salut Elodie Laine – 05.10.2017

Paramètres par défaut ! La valeur par défaut est évaluée une fois et une seule lors de la définition de la fonction val = ‘10’ def afficheAB(a=val,b=“salut”): print(“a : ”, a, “ ; b : ”, b) afficheAB() val = ‘20’ => a : 10 ; b : salut => a : 10 ; b : salut Elodie Laine – 05.10.2017

Paramètres par défaut ! La valeur par défaut est évaluée une fois et une seule lors de la définition de la fonction Dans le cas d’un objet modifiable, les changements qui lui ont été faits sont conservés. val = ‘10’ def afficheAB(a=val,b=[]): print(“a : ”, a, “ ; b : ”, b) a = “Maintenant a vaut 20” b.append(“salut”) afficheAB() => a : 10 ; b : [] => a : 10 ; b : salut Elodie Laine – 05.10.2017

Dans ce type d’appel, l’ordre des arguments est sans importance. Appel par mot clé Il est aussi possible de faire référence à une liste d’appel de fonction par mot clé, c’est-à-dire en utilisant le nom des paramètres formels de la fonction val = ‘10’ def afficheABC(c,a=val,b=[]): print(“a : ”, a, “ ; b : ”, b, “ ; c : ”, c) afficheABC(a=“hello you”,1974) afficheAB(“bouh”) => a : hello you ; b : [] ; c : 1974 => a : 10 ; b : [] ; c : bouh Dans ce type d’appel, l’ordre des arguments est sans importance. Elodie Laine – 05.10.2017

Appel par mot clé ! Il est cependant impératif que, dans la définition de la fonction, les paramètres qui reçoivent une valeur par défaut apparaissent après ceux qui n’en reçoivent pas. val = ‘10’ def afficheABC(a=val,c,b=[]): print(“a : ”, a, “ ; b : ”, b, “ ; c : ”, c) afficheABC(a=“hello you”,1974) => Erreur : un argument sans valeur par défaut suit un argument avec valeur par défaut Elodie Laine – 05.10.2017

Quelques fonctions standards Importer un module de fonctions Importer le contenu d’un module import math b = math.sqrt(a) Importer une partie d’un module from math import sqrt Importer tout un module fom math import * (tous les identifiants du module sont chargés) Lister le contenu d’un module La fonction standard dir() permet de lister le contenu d’un module. dir(math) ['__doc__', '__file__', '__name__', 'acos', 'asin', 'atan‘, 'atan2', 'ceil', 'cos', 'cosh', 'degrees', 'e', 'exp', 'fabs‘, 'floor', 'fmod', 'frexp', 'hypot', 'ldexp', 'log', 'log10‘, 'modf', 'pi', 'pow', 'radians', 'sin', 'sinh', 'sqrt', 'tan‘, 'tanh'] La fonction help() est la fonction d’aide en ligne de python help(math) Elodie Laine – 05.10.2017

Quelques fonctions standards Fonctions mathématiques abs(x) renvoie la valeur ABSolue d’un entier ou d’un réel math.cos(x) renvoie le COSinus de l’argument exprimé en radians math.exp(x) renvoie la valeur de e élevée à la puissance de l’argument math.log(x[,base]) renvoie le LOGarithme népérien de l’argument avec deux arguments, on peut préciser la base souhaitée math.pow(x,y) renvoie l’argument x à la puissance y round(x[,ndigits]) arRONDit l’argument x à ndigits chiffre après la virgule Si ndigits est omis, l’arrondi se fait à l’entier le plus proche sin(x) renvoie le SINus de l’argument exprimé en radians sqrt(x) renvoie la racine carrée de l’argument math.trunc(x) renvoie la partie entière d’un nombre réel x Elodie Laine – 05.10.2017

Quelques fonctions standards Fonctions pour les caractères chr(i) renvoie un caractère à partir de son code ASCII ord(c) renvoie un entier représentant le code ASCII d’un caractère Fonctions pour les caractères et chaînes de caractères len(S) renvoie la longueur de la chaîne de caractères S str.lower(S) renvoie une copie de S, avec les majuscules en minuscules str.upper(S) renvoie une copie de S, avec les minuscules en majuscules Fonctions pour les entrées/sorties input([prompt]) affiche l’argument à l’écran, renvoie ce qui est au clavier print([object, ...]… ) affiche object(s) à l’écran, avec retour à la ligne open(file[, mode='r‘…) ouvre le fichier file en mode lecture (‘r’), écriture (‘w’)… Qu’est-ce qu’un itérateur en python, est-ce qu’on peut rapprocher ce concept d’un énuméré ? What about les méthodes du module string qui sont deprecated et disparaaisent avec python 3.0 ? he print statement has been replaced with a print() function in Python 3 print([object, ...][, sep=' '][, end='\n'][, file=sys.stdout] ) open(file[, mode='r'[, buffering=None[, encoding=None[, errors=None[, newline=None[, closefd=True]]]]]]) Elodie Laine – 05.10.2017

Fonctions anonyme et fermeture Au moyen du mot clé lambda, il est possible de définir des fonctions anonymes. x = lambda a,b : a+b z = x(3,5) print(z) => 8 Une fonction s’exécute toujours dans le contexte dans lequel elle a été définie. def ferm (val): def fonc(nb): return val + nb return fonc x = ferm(100) y = ferm(200) print(“appel de x :”, x(50)) print(“appel de y :”, y(50)) => appel de x : 150 => appel de y : 250 Elodie Laine – 05.10.2017

Fonction callback Une fonction callback est une fonction particulière qui, une fois définie, sera utilisée en argument d’une autre fonction. def mettre_au_carre(x):     return x ** 2    def appliquer_fonction(fonc, valeur):     return fonc(valeur) print appliquer_fonction(mettre_au_carre, 3) => 9 Comment traduire callbask et faire passer le concept ? Une bonne transition vers la récursivité…? En pratique, rien ne permet de différencier les fonctions callback des autres en Python. Elodie Laine – 05.10.2017

Conclusion La prise en compte de différentes sources et destinations de données permet de généraliser un algorithme visant à résoudre un problème. Un programme est conposé de sous programmes, autrement dit des fonctions. Les fonctions admettent des paramètres d’entrée (arguments) et retournent une seule valeur ou bien modifient l’état du programme (sans retour de valeur). La bibliothèque python comporte de nombreux modules, où sont définies un certain nombre de fonctions. Elodie Laine – 05.10.2017