Informatique pour tous FONCTIONS, BOUCLES

Documents pareils
STAGE IREM 0- Premiers pas en Python

Présentation du langage et premières fonctions

1 Définition et Appel d une fonction. V. Phan Luong. Cours 4 : Fonctions

TP 1. Prise en main du langage Python

Découverte de Python

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Initiation à la programmation en Python

Algorithmique et Programmation, IMA

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2


L informatique en BCPST

Cours Informatique Master STEP

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Licence Sciences et Technologies Examen janvier 2010

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

Présentation du PL/SQL

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Java Licence Professionnelle CISII,

Chapitre 2 Devine mon nombre!

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

Probabilités. Rappel : trois exemples. Exemple 2 : On dispose d un dé truqué. On sait que : p(1) = p(2) =1/6 ; p(3) = 1/3 p(4) = p(5) =1/12

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

Cours 7 : Utilisation de modules sous python

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

1. Structure d'un programme FORTRAN 95

Conventions d écriture et outils de mise au point

Cours d algorithmique pour la classe de 2nde

Le langage C. Séance n 4

Utilisation d objets : String et ArrayList

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Notions fondamentales du langage C# Version 1.0

Chap III : Les tableaux

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

Licence Bio Informatique Année Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

1 Recherche en table par balayage

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

I. Introduction aux fonctions : les fonctions standards

Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes

SHERLOCK 7. Version du 01/09/09 JAVASCRIPT 1.5

Langage Java. Classe de première SI

Introduction à MATLAB R

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre Enrica.Duchi@liafa.jussieu.fr

ALGORITHMIQUE ET PROGRAMMATION En C

Introduction au langage C

Cours d Algorithmique et de Langage C v 3.0

Algorithmique et programmation : les bases (VBA) Corrigé

Corrigé des TD 1 à 5

Cours 1 : La compilation

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

MIS 102 Initiation à l Informatique

Programmation C++ (débutant)/instructions for, while et do...while

Premiers Pas en Programmation Objet : les Classes et les Objets

Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1

INF 321 : mémento de la syntaxe de Java

HMI target Visu / PLC HMI. Pour réaliser une interface homme machine avec PLC control

LES TYPES DE DONNÉES DU LANGAGE PASCAL

Introduction à l algorithmique et à la programmation M1102 CM n 3

Initiation à l algorithmique

R, Bonnes pratiques. Christophe Genolini

Algorithmique, Structures de données et langage C

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

Programmation en Java IUT GEII (MC-II1) 1

1 Lecture de fichiers

TP1 : Initiation à Java et Eclipse

Cours d initiation à la programmation en C++ Johann Cuenin

Le prototype de la fonction main()

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Programmation avec Xcas ou Python

Plan du cours. Historique du langage Nouveautés de Java 7

Tp 1 correction. Structures de données (IF2)

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml

2 Comment fonctionne un ordinateur, dans les grandes lignes

Initiation à la Programmation en Logique avec SISCtus Prolog

Initiation à LabView : Les exemples d applications :

Correction TD algorithmique

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Principes des langages de programmation INF 321. Eric Goubault

Programmation C. Apprendre à développer des programmes simples dans le langage C

Le langage SQL Rappels

Chapitre 10. Les interfaces Comparable et Comparator 1

Organigramme / Algorigramme Dossier élève 1 SI

Algorithme. Table des matières

# let rec concat l1 l2 = match l1 with [] -> l2 x::l 1 -> x::(concat l 1 l2);; val concat : a list -> a list -> a list = <fun>

Bases de programmation. Cours 5. Structurer les données

Vérification de programmes et de preuves Première partie. décrire des algorithmes

Introduction à l algorithmique et à la programmation avec Python. Laurent Signac

1. Qu'est-ce que SQL? La maintenance des bases de données Les manipulations des bases de données... 5

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

Programmation VBA/Excel. Programmation VBA. Pierre BONNET. Masters SMaRT & GSI - Supervision Industrielle P. Bonnet

PROGRAMMER EN MQL4. Apprenez à automatiser vos stratégies sur MetaTrader 4

Chapitre I Notions de base et outils de travail

CHAPITRE 9. Codes source. 9.1 Insertion brute

Transcription:

FONCTIONS, BOUCLES

FONCTIONS, BOUCLES

FONCTIONS, BOUCLES

Python est un langage procédural. C est-à-dire que chaque ligne d un programme est lue et exécutée après la ligne précédente.

Python est un langage procédural. C est-à-dire que chaque ligne d un programme est lue et exécutée après la ligne précédente. Mais il est possible de créer des parties de programme qui ne seront exécutées que si la partie principale du programme y fait appel : ce sont les fonctions et les objets.

Python est un langage procédural. C est-à-dire que chaque ligne d un programme est lue et exécutée après la ligne précédente. Mais il est possible de créer des parties de programme qui ne seront exécutées que si la partie principale du programme y fait appel : ce sont les fonctions et les objets. Cela permet d écrire une seule fois un ensemble d instructions qui pourront être exécutées plusieurs fois à des moments différents de l exécution du programme principal.

Mais il est possible de créer des parties de programme qui ne seront exécutées que si la partie principale du programme y fait appel : ce sont les fonctions et les objets. Cela permet d écrire une seule fois un ensemble d instructions qui pourront être exécutées plusieurs fois à des moments différents de l exécution du programme principal. Dans la suite, on n étudiera que les fonctions.

Définition : une fonction est un ensemble d instructions qui est étiquetée sous un nom et qui s exécute lorsque ce nom est utilisé dans le programme principal.

Les fonctions offrent différents avantages : elles permettent de décomposer une tâche complexe en tâches plus simples ;

Les fonctions offrent différents avantages : elles permettent de décomposer une tâche complexe en tâches plus simples ; elles évitent la duplication des lignes de code ;

Les fonctions offrent différents avantages : elles permettent de décomposer une tâche complexe en tâches plus simples ; elles évitent la duplication des lignes de code ; elles permettent de mettre en évidence les données qu elles utilisent (les entrées) et celles qu elles fournissent (les sorties) ;

Les fonctions offrent différents avantages : elles permettent de décomposer une tâche complexe en tâches plus simples ; elles évitent la duplication des lignes de code ; elles permettent de mettre en évidence les données qu elles utilisent (les entrées) et celles qu elles fournissent (les sorties) ; elles peuvent être réutilisées dans un autre programme par le mécanisme de l import ;

Syntaxe : Dans un programme Python, une fonction est définie par : une en tête commençant par le mot clé def suivi du nom identificateur de la fonction, d une paire de parenthèses (vide ou pas) et se terminant par le caractère : ;

Syntaxe : Dans un programme Python, une fonction est définie par : une en tête commençant par le mot clé def suivi du nom identificateur de la fonction, d une paire de parenthèses (vide ou pas) et se terminant par le caractère : ; un bloc indenté comportant : * une chaîne de caractères documentant l effet attendu de la fonction ;

Syntaxe : Dans un programme Python, une fonction est définie par : une en tête commençant par le mot clé def suivi du nom identificateur de la fonction, d une paire de parenthèses (vide ou pas) et se terminant par le caractère : ; un bloc indenté comportant : * une chaîne de caractères documentant l effet attendu de la fonction ; * un bloc d instructions qui constitue le corps de la fonction et modifie l état de la mémoire en créant (ou non) une valeur renvoyée au programme principal par le mot clé return.

Syntaxe : Dans un programme Python, une fonction est définie par : une en tête commençant par le mot clé def suivi du nom identificateur de la fonction, d une paire de parenthèses (vide ou pas) et se terminant par le caractère : ; un bloc indenté comportant : * une chaîne de caractères documentant l effet attendu de la fonction ; * un bloc d instructions qui constitue le corps de la fonction et modifie l état de la mémoire en créant (ou non) une valeur renvoyée au programme principal par le mot clé return. Le bloc d instructions est obligatoire. Si provisoirement il ne contient pas d instruction, on emploie l instructionpass à sa place. La documentation est facultative mais fortement conseillée.

Dans le programme principal, une fonction est utilisée en écrivant son nom (avec les parenthèses).

Dans le programme principal, une fonction est utilisée en écrivant son nom (avec les parenthèses). Mais une ligne utilisant la fonction ne peut apparaître qu après la définition de la fonction

Dans le programme principal, une fonction est utilisée en écrivant son nom (avec les parenthèses). Mais une ligne utilisant la fonction ne peut apparaître qu après la définition de la fonction Exemple : taper le programme suivant a = 1 b = 3 def cube_de_deux() : return 2**3 c = cube_de_deux() * a + b print(c) Voir le résultat puis placer la ligne c = cube_... après la ligne 2, lancer le programme dans une nouvelle console et voir le résultat;

Exemple : Un programme doit déterminer plusieurs fois si l année en cours est bissextile. On peut créer une fonction pour cela afin d éviter décrire plusieurs fois les mêmes lignes.

Exemple : Un programme doit déterminer plusieurs fois si l année en cours est bissextile. On peut créer une fonction pour cela afin d éviter décrire plusieurs fois les mêmes lignes. from datetime import datetime # importer l'objet datetime du module datetime def bissext() : # en tête de la fonction maintenant = datetime.now() # variable contenant l instant actuel n = maintenant.year # récupération de l année en cours if int(n/400) == n/400 or int(n/4) == n/4 and int(n/100)!= n/100 : bis = True else: bis = False return bis # valeur (ici booléenne) renvoyée par la fonction if bissext() : # programme principal qui utilise la fonction blablabla

On peut évidemment affecter des variables dans le bloc d instructions d une fonction. Mais les variables ainsi crées n ont de sens que dans la fonction. from datetime import datetime # importer l'objet datetime du module datetime def bissext() : # en tête de la fonction maintenant = datetime.now() # variable contenant l instant actuel n = maintenant.year # récupération de l année en cours if int(n/400) == n/400 or int(n/4) == n/4 and int(n/100)!= n/100 : bis = True else: bis = False return bis # valeur (ici booléenne) renvoyée par la fonction if bissext() : # programme principal qui utilise la fonction blablabla

On peut évidemment affecter des variables dans le bloc d instructions d une fonction. Mais les variables ainsi crées n ont de sens que dans la fonction. from datetime import datetime # importer l'objet datetime du module datetime def bissext() : # en tête de la fonction maintenant = datetime.now() # variable contenant l instant actuel n = maintenant.year # récupération de l année en cours if int(n/400) == n/400 or int(n/4) == n/4 and int(n/100)!= n/100 : bis = True else: bis = False return bis # valeur (ici booléenne) renvoyée par la fonction bissext() if bis == True : blablabla cela provoque une erreur parce que la variable bis n est pas définie dans le programme principal

On peut évidemment affecter des variables dans le bloc d instructions d une fonction. Mais les variables ainsi crées n ont de sens que dans la fonction. On dit que leur portée est locale.

On peut évidemment affecter des variables dans le bloc d instructions d une fonction. Mais les variables ainsi crées n ont de sens que dans la fonction. On dit que leur portée est locale. Remarque 1 : on peut donc utiliser le même nom pour une variable définie dans une fonction et une autre variable définie dans une autre fonction ou dans le programme principal car ces étiquettes pointent vers des objets différents dans la mémoire.

On peut évidemment affecter des variables dans le bloc d instructions d une fonction. Mais les variables ainsi crées n ont de sens que dans la fonction. On dit que leur portée est locale. Remarque 1 : on peut donc utiliser le même nom pour une variable définie dans une fonction et une autre variable définie dans une autre fonction ou dans le programme principal car ces étiquettes pointent vers des objets différents dans la mémoire. Exemple : le programme : mémoire : variable globale affiche : 4 ; 8 variable locale

Remarque 2 : on peut utiliser plusieurs return dans une fonction s ils correspondent à des valeurs retournées différentes. Mais le passage par un return entraîne la fin de la fonction (le reste n est pas exécuté). from datetime import datetime # importer l'objet datetime du module datetime def bissext() : # en tête de la fonction maintenant = datetime.now() # variable contenant l instant actuel n = maintenant.year # récupération de l année en cours if int(n/400) == n/400 or int(n/4) == n/4 and int(n/100)!= n/100 : return True # valeur renvoyée si la condition est vérifiée else: return False # valeur renvoyée sinon

Remarque 2 : on peut utiliser plusieurs return dans une fonction s ils correspondent à des valeurs retournées différentes. Mais le passage par un return entraîne la fin de la fonction (le reste n est pas exécuté). from datetime import datetime # importer l'objet datetime du module datetime def bissext() : # en tête de la fonction maintenant = datetime.now() # variable contenant l instant actuel n = maintenant.year # récupération de l année en cours if int(n/400) == n/400 or int(n/4) == n/4 and int(n/100)!= n/100 : return True # valeur renvoyée si la condition est vérifiée else: return False # valeur renvoyée sinon

Remarque 3 : une fonction peut retourner plusieurs valeurs mais toujours avec un seul return. Il s agit en fait d un seul tuple contenant toutes ces valeurs (les parenthèses peuvent être omises. from datetime import datetime # importer l'objet datetime du module datetime def bissext() : # en tête de la fonction maintenant = datetime.now() # variable contenant l instant actuel n = maintenant.year # récupération de l année en cours if int(n/400) == n/400 or int(n/4) == n/4 and int(n/100)!= n/100 : bis = True else: bis = False return (bis, maintenant, n)

Remarque 3 : une fonction peut retourner plusieurs valeurs mais toujours avec un seul return. Il s agit en fait d un seul tuple contenant toutes ces valeurs (les parenthèses peuvent être omises). from datetime import datetime # importer l'objet datetime du module datetime def bissext() : # en tête de la fonction maintenant = datetime.now() # variable contenant l instant actuel n = maintenant.year # récupération de l année en cours if int(n/400) == n/400 or int(n/4) == n/4 and int(n/100)!= n/100 : bis = True else: bis = False return (bis, maintenant, n)

2) Arguments 2) Arguments FONCTIONS, BOUCLES

2) Arguments Le plus souvent, une fonction a une action différente suivant la valeur d une variable du programme principal qui lui est indiquée comme argument ou paramètre.

2) Arguments Le plus souvent, une fonction a une action différente suivant la valeur d une variable du programme principal qui lui est indiquée comme argument ou paramètre. Exemple : soit une fonction indiquant si un nombre est pair ou non : def est_pair(n) : if n % 2 == 0 : return True else : return False argument de la fonction print(est_pair(2))

2) Arguments Le plus souvent, une fonction a une action différente suivant la valeur d une variable du programme principal qui lui est indiquée comme argument ou paramètre. Exemple : une fonction indiquant si un nombre est pair ou non : def est_pair(n) : if n % 2 == 0 : return True else : return False argument de la fonction qui est utilisé comme variable dans la fonction print(est_pair(2))

2) Arguments Le plus souvent, une fonction a une action différente suivant la valeur d une variable du programme principal qui lui est indiquée comme argument ou paramètre. Exemple : une fonction indiquant si un nombre est pair ou non : def est_pair(n) : if n % 2 == 0 : return True else : return False print(est_pair(2)) argument de la fonction qui est utilisé comme variable dans la fonction et dont la valeur est précisée lors de l appel de la fonction par le programme principal

2) Arguments Le plus souvent, une fonction a une action différente suivant la valeur d une variable du programme principal qui lui est indiquée comme argument ou paramètre. Exemple : une fonction indiquant si un nombre est pair ou non : def est_pair(n) : if n % 2 == 0 : return True else : return False print(est_pair(2)) fonction paramètre (affecté après l appel de la fonction)

2) Arguments Le plus souvent, une fonction a une action différente suivant la valeur d une variable du programme principal qui lui est indiquée comme argument ou paramètre. Exemple : une fonction indiquant si un nombre est pair ou non : def est_pair(n) : if n % 2 == 0 : return True else : return False print(est_pair(2)) affiche True dans la console

2) Arguments Le plus souvent, une fonction a une action différente suivant la valeur d une variable du programme principal qui lui est indiquée comme argument ou paramètre. Exemple : une fonction indiquant si un nombre est pair ou non : def est_pair(n) : if n % 2 == 0 : return True else : return False print(est_pair(2)) p =31 print(est_pair(p)) affiche False dans la console

2) Arguments Le plus souvent, une fonction a une action différente suivant la valeur d une variable du programme principal qui lui est indiquée comme argument ou paramètre. Exemple : une fonction indiquant si un nombre est pair ou non : def est_pair(n) : if n % 2 == 0 : return True else : return False print(est_pair(2)) p =31 print(est_pair(p)) Le paramètre de la fonction prend ici la valeur de la variable globale p

2) Arguments Travail demandé : écrire une fonction volume(a) qui calcule le volume d un cube, dont l argumentaest le côté de ce cube. La tester dans un programme qui demande trois valeurs numériquesa1,a2,a3 à l utilisateur puis affiche la valeur de la somme des volumes des cubes de côtésa1,a2 eta3. solution possible

2) Arguments Une fonction peut accepter plusieurs arguments, de même type ou de types différents. Lors de l appel de cet fonction, chaque paramètre de l appel correspond, dans l ordre, à un argument.

2) Arguments Une fonction peut accepter plusieurs arguments, de même type ou de types différents. Lors de l appel de cet fonction, chaque paramètre de l appel correspond, dans l ordre, à un argument. Exemple: la fonction suivante renvoie le mot formé en répétant n fois le caractère c mis en majuscule : def mot(n, c) : return c.upper() * n

2) Arguments Une fonction peut accepter plusieurs arguments, de même type ou de types différents. Lors de l appel de cet fonction, chaque paramètre de l appel correspond, dans l ordre, à un argument. Exemple: la fonction suivante renvoie le mot formé en répétant n fois le caractère c mis en majuscule : def mot(n, c) : return c.upper() * n L appel print(mot(5, a )) affiche AAAAA alors que mot( a, 5) provoque une erreur car la méthode.upper() n existe pas pour un integer.

2) Arguments Travail demandé : écrire une fonction surface_rec(x, y) qui calcule la surface d un rectangle de côtés x et y et une fonction surf_disc(r) qui calcule la surface d un disque de rayon r. Utiliser ces fonctions dans une fonction pavage(a, b, c) qui calcule le nombre de cercles de rayon c que l on peut dessiner dans un rectangle de côtés a et b. (N.B la fonction floor(n) de la bibliothèque math renvoie un float qui est la partie entière du float n.) Tester la fonction pavage avec un jeu de 3 valeurs pour a, b et c puis observer les résultats obtenus en permutant ces trois paramètres. solution possible

II-Boucles 2) Arguments 2) Arguments II-Boucles FONCTIONS, BOUCLES

II-Boucles 1) Manipulation de collection 2) Arguments 2) Arguments FONCTIONS, BOUCLES II-Boucles 1) Manipulation de collections

II-Boucles 1) Manipulation de collection 2) Arguments Pour manipuler (extraire, chercher, modifier ) les éléments d une collection, il est nécessaire d utiliser une boucle.

II-Boucles 1) Manipulation de collection 2) Arguments Pour manipuler (extraire, chercher, modifier ) les éléments d une collection, il est nécessaire d utiliser une boucle. À l intérieur d une fonction, il est possible de placer toutes les instructions de contrôle de flux (bloc d instructions, test, boucle).

II-Boucles 1) Manipulation de collection 2) Arguments Pour manipuler (extraire, chercher, modifier ) les éléments d une collection, il est nécessaire d utiliser une boucle. À l intérieur d une fonction, il est possible de placer toutes les instructions de contrôle de flux (bloc d instructions, test, boucle). Dans la suite, on écrira donc des fonctions renvoyant une valeur répondant à la question posée ; elles seront appelées par le programme principal dans lequel se trouveront éventuellement les fonctions d interface utilisateur (input() ou print())

II-Boucles 1) Manipulation de collection 2) Arguments Pour manipuler (extraire, chercher, modifier ) les éléments d une collection, il est nécessaire d utiliser une boucle. À l intérieur d une fonction, il est possible de placer toutes les instructions de contrôle de flux (bloc d instructions, test, boucle). Dans la suite, on écrira donc des fonctions renvoyant une valeur répondant à la question posée ; elles seront appelées par le programme principal dans lequel se trouveront éventuellement les fonctions d interface utilisateur (input() ou print()).

II-Boucles 1) Manipulation de collection 2) Arguments préparatifs : Les boucles for utilisent un itérable, c est-à-dire un ensemble de valeurs prises par la variable de boucle.

II-Boucles 1) Manipulation de collection 2) Arguments préparatifs : Les boucles for utilisent un itérable, c est-à-dire un ensemble de valeurs prises par la variable de boucle. La fonction range(start, stop, step) crée la collection des entiers compris entrestart etstop 1 (avec un passtep).

II-Boucles 1) Manipulation de collection 2) Arguments préparatifs : Les boucles for utilisent un itérable, c est-à-dire un ensemble de valeurs prises par la variable de boucle. La fonction range(start, stop, step) crée la collection des entiers compris entrestart etstop 1 (avec un passtep). Le paramètrestart est facultatif. S il est omis, il vaut 0.

II-Boucles 1) Manipulation de collection 2) Arguments préparatifs : Les boucles for utilisent un itérable, c est-à-dire un ensemble de valeurs prises par la variable de boucle. La fonction range(start, stop, step) crée la collection des entiers compris entrestart etstop 1 (avec un passtep). Le paramètrestart est facultatif. S il est omis, il vaut 0. Le paramètrestep est facultatif. S il est omis, il vaut 1.

II-Boucles 1) Manipulation de collection 2) Arguments préparatifs : Les boucles for utilisent un itérable, c est-à-dire un ensemble de valeurs prises par la variable de boucle. La fonction range(start, stop, step) crée la collection des entiers compris entrestart etstop 1 (avec un passtep). Le paramètrestart est facultatif. S il est omis, il vaut 0. Le paramètrestep est facultatif. S il est omis, il vaut 1. Par exemple, range(1, 10, 2) crée, à la volée, les éléments de la collection [1, 3, 5, 7, 9] (mais sans créer l objet [1, 3, 5, 7, 9] luimême).

II-Boucles 1) Manipulation de collection 2) Arguments recherche d un élément dans une liste non triée : Travail demandé : Écrire une fonction qui renvoie True ou False selon qu un élément el donné appartient à une liste (ou un tuple) lst donnée. (On n utilisera pas de fonction prédéfinies en Python obtenant ce résutat ) version 1 : en utilisant range() comme itérable ; version 2 : en utilisant la liste elle-même comme itérable ; solution possible

II-Boucles 1) Manipulation de collection 2) Arguments recherche d un élément dans une liste non triée : Travail demandé : Écrire une fonction qui renvoie True ou False selon qu un élément el donné appartient à une liste (ou un tuple) lst donnée. (On n utilisera pas de fonction prédéfinies en Python obtenant ce résutat ) version 1 : en utilisant range() comme itérable ; version 2 : en utilisant la liste elle-même comme itérable ; solution possible Variante : la fonction renvoie l indice de el dans la liste lst ; solution possible

II-Boucles 1) Manipulation de collection 2) Arguments recherche du maximum dans une liste de nombres : Travail demandé : Écrire une fonction qui renvoie la valeur et l indice du maximum d une liste (ou un tuple) lst d entiers donnée. solution possible Variante : même question pour le minimum de la liste.

II-Boucles 1) Manipulation de collection 2) Arguments 2) Calcul de grandeurs statistiques 2) Arguments FONCTIONS, BOUCLES II-Boucles 1) Manipulation de collections 2) Calcul de grandeurs statistiques

II-Boucles 1) Manipulation de collection 2) Arguments 2) Calcul de grandeurs statistiques Rappel des définitions statistiques pour une liste de n valeurs : valeur moyenne variance écart-type estimateur de σ X 1 n X i n i = 1 1 n i n i = 1 = V ( X ) = ( X X ) 2 V ( X ) 1 k 1 k<< n σ = s( X ) = ( X X ) 2 i= 1 i

II-Boucles 1) Manipulation de collection 2) Arguments 2) Calcul de grandeurs statistiques Quel algorithme informatique permet de traduire l expression n = i= 1 mathématiques? s n i

II-Boucles 1) Manipulation de collection 2) Arguments 2) Calcul de grandeurs statistiques Quel algorithme informatique permet de traduire l expression n = i= 1 mathématiques? s n i En fait, il existe une fonction effectuant la somme des termes d une liste (ou d un tuple) : sum(var_liste) ou sum(var_tuple). Travail demandé : Écrire deux fonctions qui renvoient l une la valeur de la moyenne et l autre la variance d une liste (ou un tuple) lst d entiers donnée. solution possible

II-Boucles 1) Manipulation de collection 2) Arguments 2) Calcul de grandeurs statistiques Travail demandé : Montrer le théorème et l utiliser dans une d une liste d entiers. n n 1 1 V X X i X X i X n i= 1 n i= 1 ( ) ( ) 2 2 2 = = autre fonction calculant la variance solution possible

II-Boucles 1) Manipulation de collection 2) Arguments 2) Calcul de grandeurs statistiques

def cube(x) : return x**3 a = float(input("indiquez le côté du cube :")) b = float(input("indiquez le côté du cube :")) c = float(input("indiquez le côté du cube :")) print(cube(a) + cube(b) + cube(c))

from math import pi,floor def surf_rectangle(x, y): return x*y def surf_cercle(r): return pi*r**2 def pavage(a, b, c) : s1 = surf_rectangle(a, b) s2 = surf_cercle(c) return floor(s1/s2) print(pavage(6, 5, 2))

version 1 : def est_dans_liste_range(x,lst): rep = False for i in range(len(lst)): if x == lst[i]: rep = True return rep version 2 : def est_dans_liste_in(x,lst): rep = False for e in lst: if e == x: rep = True return rep version 3 : def est_dans_liste_elegant(x,lst): return x in lst

version 1 : def est_dans_liste_range_index(x,lst): for i in range(len(lst)): if x == lst[i]: return i return False version 2 : def est_dans_liste_range_index(x,lst): for (i,el) in enumerate(lst): if x == lst[i]: return i return False enumerate(lst) est un itérateur qui crée la collection des tuples (indices, élément)

def indexmaximum(lst): n = len(lst) imax = 0 #pourquoi cette ligne? max = lst[0] for i in range(1, n): if lst[i] > max : max = lst[i] imax = i return (imax, max) #pourquoi cette indentation?

def somme(liste): som = 0 for x in liste : som = som + x return som def moyenne(liste): nombre = len(liste) if nombre!= 0 : somme = sum([x for x in liste]) return somme / nombre else : return Cette liste est vide ) def s_e_c(liste, val): #somme des carrés des écarts de chaque élément de liste par rapport à la valeur val somme = 0 for elt in liste: somme += (elt - val)**2 return somme def variance(liste): return s_e_c(liste, moyenne(liste)) / len(liste)

def variance2(liste) : n = len(liste) # taille carre_moy = moyenne(liste)**2 s = sum( [ x**2 for x in liste] ) variance = s / n - carre_moy return variance