Introduction à Python 2.x

Documents pareils
Initiation à la programmation en Python

TP 1. Prise en main du langage Python

Algorithmique et Programmation, IMA

Découverte de Python

Les chaînes de caractères

Présentation du langage et premières fonctions

TD3: tableaux avancées, première classe et chaînes

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

L informatique en BCPST

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

Utilisation d objets : String et ArrayList

STAGE IREM 0- Premiers pas en Python

Les bases du langage Python

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

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

2 Comment fonctionne un ordinateur, dans les grandes lignes

DM 1 : Montre Autoquartz ETA

1 Recherche en table par balayage

TP, première séquence d exercices.

INTRODUCTION A JAVA. Fichier en langage machine Exécutable


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

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

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

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)

1. Structure d'un programme FORTRAN 95

ALGORITHMIQUE ET PROGRAMMATION En C

Les classes en Python

Introduction à MATLAB R

Langage Java. Classe de première SI

Recherche dans un tableau

Initiation à la Programmation en Logique avec SISCtus Prolog

Programmation système I Les entrées/sorties

Cours d algorithmique pour la classe de 2nde

Introduction au langage C

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

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

I. Introduction aux fonctions : les fonctions standards

LES TYPES DE DONNÉES DU LANGAGE PASCAL

Initiation à LabView : Les exemples d applications :

Chapitre 2 Devine mon nombre!

Perl Orienté Objet BioPerl There is more than one way to do it

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

Introduction à R. Florence Yerly. Dept. de mathématiques, Université de Fribourg (CH) SP 2011

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

Formulaire d abonnement au service e-bdl

Le Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr

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

Algorithmique et programmation : les bases (VBA) Corrigé

Claude Delannoy. 3 e édition C++

Cours de C++ François Laroussinie. 2 novembre Dept. d Informatique, ENS de Cachan

ÉVALUATION EN FIN DE CM1. Année scolaire LIVRET DE L'ÉLÈVE MATHÉMATIQUES

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

Calcul Formel et Numérique, Partie I

INF 321 : mémento de la syntaxe de Java

Cours Informatique Master STEP

Programmer en JAVA. par Tama

Représentation d un entier en base b

Licence Sciences et Technologies Examen janvier 2010

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

S e i QUES T r THÈ o S BIBLIO É T É

MATLAB : COMMANDES DE BASE. Note : lorsqu applicable, l équivalent en langage C est indiqué entre les délimiteurs /* */.

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

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

Poker. A rendre pour le 25 avril

I00 Éléments d architecture

1 Lecture de fichiers

Programmation Web. Madalina Croitoru IUT Montpellier

NOM:.. PRENOM:... CLASSE:.. STAGE EN ENTREPRISE. des élèves de...ème Du../../.. au./../.. Collège...

Le langage C. Séance n 4

Solutions du chapitre 4

SOMMAIRE. 1. Préambule Le calendrier Trajectoire d un objet lancé Régression linéaire...9

Notions fondamentales du langage C# Version 1.0

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

Initiation à l algorithmique

DECONNEXION : Lorsque vous avez terminé, cliquez sur «Déconnexion», pour vous déconnecter.

Programmation avec Xcas ou Python

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

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


MIS 102 Initiation à l Informatique

Cours 7 : Utilisation de modules sous python

Java Licence Professionnelle Cours 7 : Classes et méthodes abstraites

SEGPA EREA. académie Versailles ENTRE : Nom du stagiaire : Prénom : Éducation Nationale Enseignement Supérieur Recherche

La fonction exponentielle

Les jours de la semaine

1 CRÉER UN TABLEAU. IADE Outils et Méthodes de gestion de l information

UE Programmation Impérative Licence 2ème Année

Excel 2007 Niveau 3 Page 1

URECA Initiation Matlab 2 Laurent Ott. Initiation Matlab 2

Pascal Weber - Expert en organisation

ACTIVITÉ DE PROGRAMMATION

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

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

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation :

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

V- Manipulations de nombres en binaire

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

Stockage du fichier dans une table mysql:

Transcription:

rev. 2015-01-23 Introduction à Python 2.x UE LV348 - Bioinformatique 2014-2015 N. Bredeche () Définitions 2 Python Un langage interprété De (très) nombreuses librairies Très utilisé dans de nombreux domaines Plusieurs implémentations: Python 2.7, Python 3.3

Python interactif et programme python 3 Python interactif On tape «python» dans un terminal Pour sortir: CTL+D ou quit() Programme python On utilise un éditeur de texte (ex.: gedit) On enregistre un fichier avec l extension.py Dans le terminal, on tape: python monfichier.py remarques: - on peut lancer directement le programme si on place la ligne suivante au début: #/usr/bin/python - pour éviter les problèmes d accents: # -*- coding: utf-8 -*- Neptune:~ nicolas$ python Python 2.7.9 (default, Dec 31 2014, 19:59:06) [GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.56)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> a = "hello" >>> print a hello >>> for i in range(5):... print a... hello hello hello hello hello >>> 16

Programme Python 17 Editeur de texte Terminal Types de données La partie sur les listes est en partie repris du cours 2I015 (UPMC, L2 SdV)

Type de données 19 entier, réel chaînes de caractères listes dictionnaires i = 3 a = 3.14 c = i/2 Entiers et réels 20 Opérations opérations de base: +, -, *, / modulo : % puissance: ** Remarque sur l encodage un entier est encodé exactement un entier divisé par un entier donne un entier (c vaut 1) un réel est encodé approximativement

Type de données : remarques générales 21 Fonctions utiles len(variable) type(variable) Conversion (si c est possible) int(variable) float(variable) str(variable) Chaînes de caractères 22 machaine = hippopotame Déclaration et affectation animal = hippopotame ou animal = "hippopotame" Accès à un (ou plusieurs) élément(s) animal[4] => o for k in animal: print k Extraction d une sous-chaîne print animal[6:10] résultat: otam

Chaînes de caractères (cont.) 23 somme m = bla n = ireau animal = m + n print animal résultat: blaireau produit print animal*3 résultat: blaireaublaireaublaireau attention à l ordre Listes maliste = [ 19, 17, 20, 17, 18, 19, 21, 18 ] maliste2 = [ upmc, LV348, 2015 ] maliste3 = [] Créer une liste l = [] liste vide l = [0,1,2,5] résultat: l contient [0,1,4,5] l = range(0,100,2) résultat: l contient [0,2,4,,96,98] Fonction spéciale: range( a, b, delta ) construit une liste contenant tout [a,b[ avec intervalle delta notation légère: range(b) <=> range (0,b,1) 24

Listes (cont.) 25 Ajouter un élément à une liste l = [0,1,2] l.append(5) résultat: l contient [0,1,2,5] Modifier un élément l[2] = 4 résultat: l vaut [0,1,4,5] on peut aussi enlever un élément, mais c est déconseillé Listes (cont.) On peut faire des listes de listes et aussi: des listes de listes de listes de n importe quoi >>> maliste3.append(maliste2) >>> maliste3.append(maliste2) >>> maliste3.append(2) >>> maliste3 [[ upmc, LV348, 2015 ], [ upmc, LV348, 2015 ], 2] >>> len(maliste3) 3 >>> len(maliste3[1]) 3 >>> len(maliste3[2]) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: object of type 'int' has no len() >>> 26

Listes (cont.) 27 Obtenir une sous-liste jours = [ lundi, mardi,( ), samedi, dimanche ] troisjours = jours[1:4] résultat: troisjours vaut [ mardi, mercredi, jeudi ] weekend = jours[5:7] ou weekend = jours[5:] ou weekend = jours[-2:] résultat: weekend vaut [ samedi, dimanche ] debutsemaine = jours[:2] résultat: debutsemaine vaut [ lundi, mardi ] dernierjour = l[len(jours)-1:] ou dernierjour = l[-1:] résultat: dernierjour vaut [ dimanche ] de 5 à (fin) de (2 avant la fin) à (fin) de (début) à 2, exclus Listes (cont.) 28 Addition / Concaténation l1= [0,1,2] l2 = [3,4,5] l3 = l1 + l2 résultat: l3 contient [0,1,2,3,4,5] - attention, l1+l2 est différent de l2+l3 Multiplication l4 = l1 * 3 résultat: l4 contient [0,1,2,0,1,2,0,1,2] Remarques: l1 et l2 peuvent être modifiés sans changer l3 ou l4

Parcourir une liste 29 jours = ['lundi','mardi','mercredi','jeudi','vendredi','samedi','dimanche'] i = 0 while i < len(jours): print jours[i] i = i + 1 for i in range(0,len(jours),1): print jours[i] for j in jours: print j # parcours par indice (1) # parcours par indice (2) # parcours par éléments lundi mardi mercredi jeudi vendredi samedi dimanche Chaînes de caractères vs. listes 30 Une chaîne n est pas une liste machaine = chapeau maliste = [ c, h, a, p, e, a, u ] Modification d un élément machaine = machaine[0:3] + t + machaine[4:7] alors que maliste[3] = t suffit pour une liste Etendre d un élément machaine = machaine + x alors que pour une liste: maliste.append( x )

Liste et tableaux Comment faire un tableau? en Python, pas de tableau mais des listes de listes Exemple pour un tableau 2D d entier liste = [] liste.append([0,1,2]) liste.append([3,4,5]) liste.append([6,7,8]) print liste [[0, 1, 2], [3, 4, 5], [6, 7, 8]] 31 print liste[1][2] for ligne in liste: for cellule in ligne: print cellule, print # retour à la ligne 5 0 1 2 3 4 5 6 7 8 même raisonnement pour la 3D, la 4D, etc. dico = {} dico['nom'] = 'Woolf' dico['prenom'] = 'Virginia' dico['date de naissance'] = 1882 dico['livres'] = [] dico['livres'].append('mrs Dalloway') dico['livres'].append('to the lighthouse') dico['livres'].append('orlando') dico['livres'].append('a room of One\'s own') print 'Contenu du dictionnaire: ' print dico Dictionnaires 32 Contenu du dictionnaire: {'nom': 'Woolf', 'livres': ['Mrs Dalloway', 'To the lighthouse', 'Orlando', "A room of One's own"], 'prenom': 'Virginia', 'date de naissance': 1882}

print 'Keys: ' print dico.keys() Keys: ['nom', 'livres', 'prenom', 'date de naissance'] print 'Values: ' print dico.values() Virginia Woolf a ecrit des livres Dictionnaires (cont.) 33 Values: ['Woolf', ['Mrs Dalloway', 'To the lighthouse', 'Orlando', "A room of One's own"], 'Virginia', 1882] if dico.has_key( livres') == True: print dico['prenom'] + ' ' + dico['nom'] + ' a ecrit des livres' Dictionnaires et listes 34 On peut faire des listes de dictionnaires dico1 = { 'nom':'holmes', 'occupation':'detective' } dico2 = { 'nom':'watson', 'occupation':'docteur' } binome = [ dico1, dico2 ] print binome # initialisation+affectation # initialisation+affectation # création d une liste [{'nom': 'Holmes', 'occupation': 'detective'}, {'nom': 'Watson', 'occupation': 'docteur'}]

Un type particulier: le tuple Un tuple montuple = (0,1,2, abc ) print montuple[0] résultat: affiche 0 montuple[0]=3 résultat: ERREUR on ne peut pas modifier un tuple Comparaison avec une liste Jamais modifiable après initialisation Avantages (parce qu il y en a) Permet de protéger les données qu on ne veut voire modifiée Depuis une fonction, permet de renvoyer facilement des données Un tuple peut servir de clé pour un dictionnaire 35 Entrées/Sorties

Afficher un message à l écran 37 a = 3 print a print 2 + ' pommes et ' + a + ' poires' print str(2) + ' pommes et ' + str(a) + ' poires' print 2, 'pommes et ', 3, poires' 3 ##ERREUR## 2 pommes et 3 poires 2 pommes et 3 poires 38 >>> print j\ utilise des \"guillemets\" dans\ncette phrase. j'utilise des "guillemets" dans cette phrase. >>> Caractères spéciaux \n saut de ligne \t tabulation \ apostrophe (single quote) \" guillemet (double quote)

Demander à l utilisateur 39 print 'Bonjour' nom = raw_input('comment t appelles-tu? ') nbpommes = raw_input('combien veux tu de pommes? ') nbpoires = raw_input('combien veux tu de poires? ') nbfruits = nbpommes + nbpoires print nom + ', Je te donne ', nbfruits, ' fruits' Demander à l utilisateur 40 print 'Bonjour' nom = raw_input('comment t appelles-tu? ') nbpommes = raw_input('combien veux tu de pommes? ') nbpoires = raw_input('combien veux tu de poires? ') nbfruits = nbpommes + nbpoires print nom + ', Je te donne ', nbfruits, ' fruits' QUESTION: combien de fruits si je veux 3 pommes et 3 poires?

Demander à l utilisateur 41 print 'Bonjour' nom = raw_input('comment t appelles-tu? ') nbpommes = raw_input('combien veux tu de pommes? ') nbpoires = raw_input('combien veux tu de poires? ') nbfruits = nbpommes + nbpoires print nom + ', Je te donne ', nbfruits, ' fruits' REPONSE: 33 Attention au TYPE des variables Demander à l utilisateur 42 print 'Bonjour' nom = raw_input('comment t appelles-tu? ') nbpommes = int(raw_input( Combien veux tu de pommes? )) nbpoires = int(raw_input( Combien veux tu de poires? )) nbfruits = nbpommes + nbpoires print nom + ', Je te donne ', nbfruits, ' fruits' REPONSE: 6

Fichiers (écriture) 43 f1 = open("bonjour.txt","w") f1.write("bonjour le fichier\n") f1.write("comment ca va?\n") f1.write("ca va bien?\n") f1.close() contenu de bonjour.txt : Bonjour le fichier Comment ca va? Ca va bien? Fichiers (lecture) 44 f2 = open("bonjour.txt","r") ligne = f2.readline() while len(ligne) > 0: print ligne ligne = f2.readline() f2.close() f2 = open("bonjour.txt","r") ligne = f2.readline() while len(ligne) > 0: print ligne[0:-1] ligne = f2.readline() # enlève le \n f2.close() f2 = open("bonjour.txt","r") tout = f2.readlines() # tout est une liste f2.close() for ligne in tout: print ligne[0:-1] Bonjour le fichier Comment ca va? Ca va bien? Bonjour le fichier Comment ca va? Ca va bien? Bonjour le fichier Comment ca va? Ca va bien?

Structure de données 46

Séquence 47 print "Bonjour" a = 2 a = a + 2 print a Sélection 48 if temperature < 20: print "il fait frais" if temperature < 20: print "il fait frais" else: print "il fait chaud"

Sélection 49 [] Attention à la tabulation if temperature < 20: print "il fait frais" if temperature < 20: print "il fait frais" else: print "il fait chaud" Séquence 50 i = 0 while i<10: print "blabla" for i in range(10): print "blabla"

51 Les fonctions

Les fonctions 53 Fonctions Certaines sont disponibles par défaut range() Certaines sont chargés via les librairies import math math.sin(1) Certaines sont définies par vos soins def nom_de_ma_fonction(argument(s)): instructions return variable(s) # retour facultatif Avantages: code modulaire et réutilisable # argument(s facultatif(s) def disbonjour(): print "Bonjour" disbonjour() Bonjour Les fonctions 54 def disbonjour(nom): print "Bonjour " + nom disbonjour("nicolas") Bonjour Nicolas def disbonjour(nom): print "Bonjour " + nom disbonjour(raw_input("qui es-tu? ")) Qui es-tu? <nom> Bonjour <nom>

Les fonctions 55 def carre(x): return x**2 print carre(3) 9 def exp(x,y): return x**y print exp(3,2) 9 def exp2(x,y): return x**y, y**x print exp2(3,2) (9, 8) Etude de cas

Compter les occurrences de groupe de lettres lire une entrée clavier, dictionnaire Bonjour, je compte les lettres d'une phrase. Entrez une phrase: un et un font deux {'e': 2, 'd': 1, 'f': 1, 'o': 1, 'n': 3, 'u': 3, 't': 2, 'x': 1} {'on': 1, 'ux': 1, 'de': 1, 'un': 2, 'eu': 1, 'et': 1, 'nt': 1, 'fo': 1} Un automate cellulaire: l embouteillage liste 1D, boucle, affichage t=0 t=1 si case libre : avance avec p=1 sinon : attend arbitraire lettres seules mots de 2 lettres t=2 etc. compteurdelettres.py #/usr/bin/python # -*- coding: utf-8 -*- print 'Bonjour, je compte les lettres d\'une phrase.' phrase = raw_input('entrez une phrase: ') dico = {} # compte le nombre d'occurrences de chaque lettre for i in range(len(phrase)): if phrase[i] = ' ': if dico.has_key(phrase[i]) == True: dico[phrase[i]] = dico[phrase[i]] + 1 else: dico[phrase[i]] = 1 print dico # compte le nombre d'occurrence de chaque mot de deux lettres dico = {} for i in range(len(phrase)-1): if phrase[i] = ' ' and phrase[i+1] = ' ': if dico.has_key(phrase[i:i+2]) == True: dico[phrase[i:i+2]] = dico[phrase[i:i+2]] + 1 else: dico[phrase[i:i+2]] = 1 print dico 58

automatecellulaire.py #/usr/bin/python # -*- coding: utf-8 -*- import random ligne = [] for i in range (20): if random.random() < 0.5: ligne.append('o') # voiture else: ligne.append('_') # route for j in range(30): # affichage de l'état courant for i in range(len(ligne)): print ligne[i], print # mise a jour for i in range(len(ligne)-1, -1, -1): if ligne[i] == 'o': if ligne[(i+1)%len(ligne)] == '_' and random.random()<0.5: ligne[i] = '_' ligne[(i+1)%len(ligne)] = 'o' else: ligne[i] = 'o' # inutile, car ne bouge pas else: ligne[i] = '_' # inutile, car rien a faire 59 Fin du cours Pour aller plus loin (accès gratuit, Python 2.x): http://python.developpez.com/tutoriels/cours-python-uni-paris7/ http://inforef.be/swi/python.htm