Exercices avec Solutions
Fin. EXERCICE 4. Ecrire un algorithme pour résoudre chacun des problèmes suivants : 1- Calcul de la somme des N premiers nombres entiers.
cours-python.pdf
22 mars 2018 82. Cours de Python / Université Paris Cité / UFR Sciences du Vivant ... Nous pourrions utiliser l'algorithme présenté en pseudo-code dans ...
livre-algorithmes EXo7.pdf
La boucle est while2™onditionX2FFF Tant que la condition est vérifiée les instructions de la boucle sont exécutées. Ici „ir est le compteur que l'on a
Analyse Numérique
Cet algorithme n'est évidemment pas complet tant qu'on n'a pas précisé un Exercice 2.5 En appliquant le Théorème de Rouché (voirs cours d'analyse ...
Introduction aux probabilités et à la statistique Jean Bérard
durable de connaissances et de méthodes que le succès à l'examen ! L'algorithme prend en entrée un entier effectue au cours de son exécu-.
Algorithmique et programmation
C'est ainsi qu'on a: Exemple : Créer un algorithme pour calculer la moyenne de 3 notes. Solution : Algo moyenne. Variables note
BILAN _MARTIAL_ CARENCE _ RAPPORT D EVALUATION-dv
Examens du métabolisme du fer dans les carences – Rapport d'évaluation cours du premier trimestre de chaque grossesse (proposition du groupe de.
Cours SGBD 1 Concepts et langages des Bases de Données
IUT de Nice - Cours SGBD1 sans préciser d'algorithme d'accès ... 82. ? Auto-jointure jointure d'une relation par elle-même. Requête 6 :.
SCIENCES DE LINGENIEUR
principes scientifiques et techniques sous-jacents en tant que circuit en cours de fonctionnement
Python au lycée - tome 1
Ce livre n'est donc ni un manuel complet de Python ni un cours Le but est de découvrir des algorithmes
Cours de Python
Introduction à la programmation Python pour la biologiehttps://python.sdv.univ-paris-diderot.fr/Patrick FuchsetPierre Poulainprénom [point] nom [arobase] u-paris [point] fr
version du 1 eraoût 2023Université Paris Cité, France
Ce document est sous licence
Creative Commons Attribution - Partage dans les Mêmes Conditions 3.0 France (CC BY-SA 3.0 FR)Table des matières
Avant-propos7
Quelques mots sur l"origine de ce cours
7Remerciements
7Le livre
71 Introduction9
1.1 C"est quoi Python?
91.2 Conseils pour installer et configurer Python
91.3 Notations utilisées
101.4 Introduction aushell. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10
1.5 Premier contact avec Python
111.6 Premier programme
121.7 Commentaires
121.8 Notion de bloc d"instructions et d"indentation
131.9 Autres ressources
132 Variables14
2.1 Définition
142.2 Les types de variables
142.3 Nommage
152.4 Écriture scientifique
152.5 Opérations
162.6 La fonctiontype(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17
2.7 Conversion de types
172.8 Note sur la division de deux nombres entiers
182.9 Note sur le vocabulaire et la syntaxe
182.10 Minimum et maximum
182.11 Exercices
193 Affichage20
3.1 La fonctionprint(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20
3.2 Écriture formatée
213.3 Écriture scientifique
243.4 Ancienne méthode de formatage des chaînes de caractères
243.5 Note sur le vocabulaire et la syntaxe
263.6 Exercices
264 Listes28
4.1 Définition
284.2 Utilisation
284.3 Opération sur les listes
284.4 Indiçage négatif
294.5 Tranches
294.6 Fonctionlen(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .30
2Table des matièresTable des matières4.7 Les fonctionsrange()etlist(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .30
4.8 Listes de listes
314.9 Minimum, maximum et somme d"une liste
314.10 Exercices
325 Boucles et comparaisons33
5.1 Bouclesfor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33
5.2 Comparaisons
365.3 Boucleswhile. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .37
5.4 Exercices
376 Tests42
6.1 Définition
426.2 Tests à plusieurs cas
426.3 Importance de l"indentation
436.4 Tests multiples
436.5 Instructionsbreaketcontinue. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .44
6.6 Tests de valeur sur desfloats. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .45
6.7 Exercices
457 Fichiers50
7.1 Lecture dans un fichier
507.2 Écriture dans un fichier
527.3 Ouvrir deux fichiers avec l"instructionwith. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .53
7.4 Note sur les retours à la ligne sous Unix et sous Windows
537.5 Importance des conversions de types avec les fichiers
547.6 Du respect des formats de données et de fichiers
547.7 Exercices
548 Modules57
8.1 Définition
578.2 Importation de modules
578.3 Obtenir de l"aide sur les modules importés
588.4 Quelques modules courants
608.5 Modulerandom: génération de nombres aléatoires. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
8.6 Modulesys: passage d"arguments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
8.7 Moduleos: interaction avec le système d"exploitation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
8.8 Exercices
639 Fonctions66
9.1 Principe et généralités
669.2 Définition
679.3 Passage d"arguments
689.4 Renvoi de résultats
689.5 Arguments positionnels et arguments par mot-clé
689.6 Variables locales et variables globales
709.7 Principe DRY
739.8 Exercices
7410 Plus sur les chaînes de caractères78
10.1 Préambule
7810.2 Chaînes de caractères et listes
7810.3 Caractères spéciaux
7910.4 Préfixe de chaîne de caractères
7910.5 Méthodes associées aux chaînes de caractères
8010.6 Extraction de valeurs numériques d"une chaîne de caractères
82Cours de Python / Université Paris Cité / UFR Sciences du Vivant3
Table des matièresTable des matières10.7 Conversion d"une liste de chaînes de caractères en une chaîne de caractères. . . . . . . . . . . . . . . . . . 82
10.8 Exercices
8311 Plus sur les listes88
11.1 Méthodes associées aux listes
8811.2 Construction d"une liste par itération
9011.3 Test d"appartenance
9111.4 Copie de listes
9111.5 Liste de compréhension
9211.6 Exercices
9312 Plus sur les fonctions96
12.1 Appel d"une fonction dans une fonction
9612.2 Fonctions récursives
9712.3 Portée des variables
9812.4 Portée des listes
9912.5 Règle LGI
10 012.6 Recommandations
10112.7 Exercices
10 213 Containers, dictionnaires, tuples etsets104
13.1 Containers
10 413.2 Dictionnaires
10713.3 Tuples
11113.4Setsetfrozensets. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .116
13.5 Récapitulation des propriétés des containers
11913.6 Dictionnaires etsetsde compréhension. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
13.7 Modulecollections. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .120
13.8 Exercices
12 014 Création de modules123
14.1 Pourquoi créer ses propres modules?
12314.2 Création d"un module
12314.3 Utilisation de son propre module
12414.4 Lesdocstrings. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .124
14.5 Visibilité des fonctions dans un module
12514.6 Module ou script?
12514.7 Exercice
12 615 Bonnes pratiques en programmation Python
12715.1 De la bonne syntaxe avec la PEP 8
12715.2 Lesdocstringset la PEP 257. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
15.3 Outils de contrôle qualité du code
13315.4 Organisation du code
13415.5 Conseils sur la conception d"un script
13615.6 Pour terminer : la PEP 20
13616 Expressions régulières etparsing138
16.1 Définition et syntaxe
13816.2 Quelques ressources en ligne
14016.3 Le modulere. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .140
16.4 Exercices
1424Cours de Python / Université Paris Cité / UFR Sciences du Vivant
Table des matièresTable des matières17 Quelques modules d"intérêt en bioinformatique14517.1 ModuleNumPy. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .145
17.2 ModuleBiopython. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .158
17.3 Modulematplotlib. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .160
17.4 Modulepandas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .164
17.5 Un exemple plus complet
16817.6 Exercices
17 418 Jupyter et ses notebooks179
18.1 Installation
17918.2 Lancement de Jupyter et création d"un notebook
17918.3 Le format Markdown
18218.4 Des graphiques dans les notebooks
18418.5 Lesmagic commands. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .187
18.6 JupyterLab
18 719 Avoir la classe avec les objets191
19.1 Construction d"une classe
19119.2 Espace de noms
20219.3 Polymorphisme
20519.4 Héritage
20719.5 Accès et modifications des attributs depuis l"extérieur
21219.6 Bonnes pratiques pour construire et manipuler ses classes
21619.7 Exercices
22120 Fenêtres graphiques etTkinter222
20.1 Utilité d"une GUI
22220.2 Quelques concepts liés à la programmation graphique
22320.3 Notion de fonctioncallback. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .223
20.4 Prise en main du moduleTkinter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .225
20.5 Construire une applicationTkinteravec une classe. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
20.6 Lewidget canvas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .227
20.7 Pour aller plus loin
23220.8 Exercices
23721 Remarques complémentaires240
21.1 Différences Python 2 et Python 3
24021.2 Gestion des exceptions
24221.3 Shebang et /usr/bin/env python3
24521.4 Passage d"arguments avec*argset**kwargs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .245
21.5 Un peu de transformée de Fourier avecNumPy. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .247
21.6 Sauvegardez votre historique de commandes
24722 Mini-projets249
22.1 Description des projets
24922.2 Accompagnement pas à pas
25022.3 Scripts de correction
264A Quelques formats de données rencontrés en biologie 266
A.1 FASTA
266A.2 GenBank
268A.3 PDB
26 9A.4 Format XML, CSV et TSV
275Cours de Python / Université Paris Cité / UFR Sciences du Vivant5 Table des matièresTable des matièresB Installation de Python280 B.1 Que recommande-t-on pour l"installation de Python? 280
B.2 Installation de Python avec Miniconda
280B.3 Utilisation de conda pour installer des modules complémentaires 290
B.4 Choisir un bon éditeur de texte
293B.5 Comment se mettre dans le bon répertoire dans le shell 295
B.6 Python web et mobile
2986Cours de Python / Université Paris Cité / UFR Sciences du Vivant
Avant-propos
Quelques mots sur l"origine de ce cours
Ce cours a été conçu à l"origine pour les étudiants débutants en programmation Python des filières de biologie et de
biochimie de l"université Paris Diderot - Paris 7, devenue Université Paris Cité1; et plus spécialement pour les étudiants du
master Biologie Informatique.Ce cours est basé sur la version 3 de Python, version recommandée par la communauté scientifique. Des références à
l"ancienne version, Python 2, seront néanmoins régulièrement apportées. Si vous relevez des erreurs à la lecture de ce document, merci de nous les signaler.Le cours est disponible en version HTML
2et PDF3.
Remerciements
Un grand merci à Sander
4duCentre for Molecular and Biomolecular Informaticsde Nijmegen aux Pays-Bas pour la
toute première version5de ce cours qui remonte à l"année 2003.
Nous remercions le professeur Philip Guo
6de l"UC San Diego, pour nous avoir autorisé à utiliser des copies d"écran de
son excellent sitePython Tutor7.Merci également à tous les contributeurs, occasionels ou réguliers : Jennifer Becq, Virginie Martiny, Romain Laurent,
Benoist Laurent, Benjamin Boyer, Hubert Santuz, Catherine Lesourd, Philippe Label, Rémi Cuchillo, Cédric Gageat, Philibert
Malbranche, Mikaël Naveau, Amélie Bacle, Alexandra Moine-Franel. Nous remercions aussi Denis Mestivier de qui nous nous sommes inspirés pour certains exercices.Enfin, merci à vous tous, les curieux de Python, qui avez été nombreux à nous envoyer des retours sur ce cours, à nous
suggérer des améliorations et à nous signaler des coquilles.De nombreuses personnes nous ont aussi demandé les corrections des exercices. Nous ne les mettons pas sur le site afin
d"éviter la tentation de les regarder trop vite, mais vous pouvez nous écrire et nous vous les enverrons.
Le livre
Ce cours est également publié aux éditions Dunod sous le titre " Programmation en Python pour les sciences de la vie
8».
Vous pouvez vous le procurer dans toutes les bonnes librairies.Afin de promouvoir le partage des connaissances et le logiciel libre, nos droits d"auteurs provenant de la vente de cet
ouvrage seront reversés à deux associations. Wikimédia France9qui s"occupe notamment de l"encyclopédie libre Wikipédia.
NumFOCUS
10qui soutient le développement de logiciels libres scientifiques et notamment l"écosystème scientifique autour
de Python.1.https://www.u-paris.fr/4.http://sander.nabuurs.org/
6.http://pgbovine.net/
7.http://pythontutor.com/
9.https://www.wikimedia.fr/
10.https://numfocus.org/
7 Table des matièresTable des matièresFIGURE1 - Couverture livre Dunod.8Cours de Python / Université Paris Cité / UFR Sciences du Vivant
Chapitre 1
Introduction
1.1 C"est quoi Python?
Le langage de programmation Python a été créé en 1989 par Guido van Rossum, aux Pays-Bas. Le nomPythonvient d"un
hommage à la série téléviséeMonty Python"s Flying Circusdont G. van Rossum est fan. La première version publique de ce
langage a été publiée en 1991.La dernière version de Python est la version 3. Plus précisément, la version 3.11 a été publiée en octobre 2022. La version
2 de Python est obsolète et n"est plus maintenue, évitez de l"utiliser.
LaPython Software Foundation1est l"association qui organise le développement de Python et anime la communauté de
développeurs et d"utilisateurs. Ce langage de programmation présente de nombreuses caractéristiques intéressantes :Il est multiplateforme. C"est-à-dire qu"il fonctionne sur de nombreux systèmes d"e xploitation: W indows,Mac OS X,
Linux, Android, iOS, depuis les mini-ordinateurs Raspberry Pi jusqu"aux supercalculateurs.Il est gratuit. V ouspouv ezl"installer sur autant d"ordinateurs que v ousv oulez(même sur v otretéléphone !).
C"est un lang agede haut ni veau.Il demande relati vementpeu de connaissance sur le fonctionnement d"un ordinateur
pour être utilisé.C"est un lang ageinterprété. Un script Python n"a pas besoin d"être compilé pour être e xécuté,contrairement à des
langages comme le C ou le C++.Il est orienté objet. C"est-à-dire qu"il est possible de conce voiren Python des entités qui miment celles du monde réel
(une cellule, une protéine, un atome, etc.) avec un certain nombre de règles de fonctionnement et d"interactions.
Il est relati vementsimpleà prendre en main2.
Enfin, il est très utilisé en bioinformatique et plus généralement en analyse de données.
Toutes ces caractéristiques font que Python est désormais enseigné dans de nombreuses formations, du lycée à l"enseigne-
ment supérieur.1.2 Conseils pour installer et configurer Python
Pour apprendre la programmation Python, il va falloir que vous pratiquiez et pour cela il est préférable que Python soit
installé sur votre ordinateur. La bonne nouvelle est que vous pouvez installer gratuitement Python sur votre machine, que
ce soit sous Windows, Mac OS X ou Linux. Nous donnons dans cette rubrique un résumé des points importants concer-
nant cette installation. Tous les détails et la marche à suivre pas à pas sont donnés à l"adressehttps://python.sdv.
univ-paris-diderot.fr/livre-dunod.1.2.1 Python 2 ou Python 3?
Ce cours est basé sur laversion 3 de Python, qui est désormais le standard.1.https://www.python.org/psf/
2. Nous sommes d"accord, cette notion est très relative.
9Chapitre 1. Introduction1.3. Notations utiliséesSi, néanmoins, vous deviez un jour travailler sur un ancien programme écrit en Python 2, sachez qu"il existe quelques
différences importantes entre Python 2 et Python 3. Le chapitre 21Remarques complémentairesvous apportera plus de préci-
sions.1.2.2 Miniconda
Nous vous conseillons d"installer Miniconda
3, logiciel gratuit, disponible pour Windows, Mac OS X et Linux, et qui
installera pour vous Python 3.Avec le gestionnaire de paquetsconda, fourni avec Miniconda, vous pourrez installer des modules supplémentaires qui
sont très utiles en bioinformatique (NumPy,scipy,matplotlib,pandas,Biopython), mais également Jupyter Lab qui vous
permettra d"éditer desnotebooksJupyter. Vous trouverez en ligne4une documentation pas-à-pas pour installer Miniconda,
Python 3 et les modules supplémentaires qui seront utilisés dans ce cours.1.2.3 Éditeur de texte
L"apprentissage d"un langage informatique comme Python va nécessiter d"écrire des lignes de codes à l"aide d"un éditeur
de texte. Si vous êtes débutants, on vous conseille d"utilisernotepad++sous Windows,BBEditouCotEditorsous Mac OS X
etgeditsous Linux. La configuration de ces éditeurs de texte est détaillée dans la rubriqueInstallation de Pythondisponible
en ligne5. Bien sûr, si vous préférez d"autres éditeurs commeAtom,Visual Studio Code,Sublime Text,emacs,vim,geany...
utilisez-les!À toute fin utile, on rappelle que les logicielsMicrosoft Word,WordPadetLibreOffice Writerne sont pas des éditeurs de
texte, ce sont des traitements de texte qui ne peuvent pas et ne doivent pas être utilisés pour écrire du code informatique.
1.3 Notations utilisées
Dans cet ouvrage, les commandes, les instructions Python, les résultats et les contenus de fichiers sont indiqués aveccette
policepour les éléments ponctuels ou1sous cette forme ,2sur plusieurs lignes ,3pour les éléments les plus longs.
Pour ces derniers, le numéro à gauche indique le numéro de la ligne et sera utilisé pour faire référence à une instruction
particulière. Ce numéro n"est bien sûr là qu"à titre indicatif.Par ailleurs, dans le cas de programmes, de contenus de fichiers ou de résultats trop longs pour être inclus dans leur
intégralité, la notation[...]indique une coupure arbitraire de plusieurs caractères ou lignes.
1.4 Introduction aushell
Unshellest un interpréteur de commandes interactif permettant d"interagir avec l"ordinateur. On utilisera leshellpour
lancer l"interpréteur Python. Pour approfondir la notion deshell, vous pouvez consulter les pages Wikipedia : du shellUnix6fonctionnant sous Mac OS X et Linux; du shellPowerShell7fonctionnant sous Windows.Unshellpossède toujours une invite de commande, c"est-à-dire un message qui s"affiche avant l"endroit où on entre des
quotesdbs_dbs46.pdfusesText_46[PDF] algorithme traitement d'image PDF Cours,Exercices ,Examens
[PDF] Algorithme triangle rectangle 2nde Mathématiques
[PDF] algorithme trigonométrique programmation 1ère Mathématiques
[PDF] Algorithme vecteur dm 2nde Mathématiques
[PDF] algorithme vecteurs colinéaires PDF Cours,Exercices ,Examens
[PDF] algorithme vecteurs colinéaires casio PDF Cours,Exercices ,Examens
[PDF] algorithme vecteurs colinéaires ti PDF Cours,Exercices ,Examens
[PDF] Algorithme Vecteurs Cour PI 2nde Mathématiques
[PDF] Algorithme volume - Dm de maths 2nde Mathématiques
[PDF] Algorithme!! 2nd :) 2nde Mathématiques
[PDF] Algorithme!!! 2nde Mathématiques
[PDF] Algorithme, affecter un nombre ? x 2nde Mathématiques
[PDF] Algorithme, Aidez moi svp c'est urgent 1ère Mathématiques
[PDF] Algorithme, devoir maison de maths 2nde Mathématiques