Révisions : programmation en langage python



Documents pareils
Cours 7 : Utilisation de modules sous python

TP 1. Prise en main du langage Python

Initiation à la programmation en Python

Découverte de Python

Présentation du langage et premières fonctions

STAGE IREM 0- Premiers pas en Python

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

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

Algorithmique et Programmation, IMA

Python - introduction à la programmation et calcul scientifique

1. Structure d'un programme FORTRAN 95

Les bases du langage Python

Recherche dans un tableau

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

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)

Calcul Formel et Numérique, Partie I

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

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

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Langage Java. Classe de première SI


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

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

Introduction à MATLAB R

Exercices Types Algorithmique et simulation numérique Oral Mathématiques et Algorithmique Banque PT Propositions de réponses

LES TYPES DE DONNÉES DU LANGAGE PASCAL

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

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

Représentation d un entier en base b

INF 321 : mémento de la syntaxe de Java

Programmation en Java IUT GEII (MC-II1) 1

1 Recherche en table par balayage

Cours d algorithmique pour la classe de 2nde

Chapitre 2 Devine mon nombre!

Programmation Web. Madalina Croitoru IUT Montpellier

Claude Delannoy. 3 e édition C++

Programmer en JAVA. par Tama

Les chaînes de caractères

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

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

Cours d Algorithmique et de Langage C v 3.0

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

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004

DM 1 : Montre Autoquartz ETA

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

OCL - Object Constraint Language

ALGORITHMIQUE ET PROGRAMMATION En C

Java Licence Professionnelle CISII,

2 Comment fonctionne un ordinateur, dans les grandes lignes

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

as Architecture des Systèmes d Information

length : A N add : Z Z Z (n 1, n 2 ) n 1 + n 2

Introduction au langage C

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

Programme Compte bancaire (code)

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


AWS avancé. Surveiller votre utilisation d EC2

Corrigé des TD 1 à 5

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS)

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

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

Algorithmique et programmation : les bases (VBA) Corrigé

TP, première séquence d exercices.

Rappels sur les suites - Algorithme

URECA Initiation Matlab 2 Laurent Ott. Initiation Matlab 2

Cours Informatique Master STEP

Rappels Entrées -Sorties

Débuter avec EXPRESS. Alain Plantec. 1 Schema 2

SUPPORT DE COURS. Langage C

pyensae StockPrices September 1, Manipulation de séries financières avec la classe StockPrices

Utilisation d objets : String et ArrayList

TP Bases de données réparties

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

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

Limitations of the Playstation 3 for High Performance Cluster Computing

M2-Images. Rendu Temps Réel - OpenGL 4 et compute shaders. J.C. Iehl. December 18, 2013

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

L informatique en BCPST

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

Structures algébriques

1 Lecture de fichiers

Initiation à l algorithmique

V- Manipulations de nombres en binaire

Calcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes.

TP3 : Manipulation et implantation de systèmes de fichiers 1

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

Représentation géométrique d un nombre complexe

Les classes en Python

1.6- Génération de nombres aléatoires

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

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

Cette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris :

1 Description générale de VISFIELD

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

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

Cours No 3 : Identificateurs, Fonctions, Premières Structures de contrôle.

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

Transcription:

Révisions : programmation en langage python Retrouvez tout le cours de première année (et plus) sur le site : http://pcsi.kleber.free.fr/ipt/index.html 1. Modules Les modules sont des bibliothèques de programmes. Exemples : math numpy pyplot pylab Importation d un module : import math module de fonctions mathématiques usuelles (qui ne figurent pas dans le noyau python) module de programmes pour calculs numériques sur des tableaux module de programmes pour représentations graphiques, sous-module de matplotlib module de programmes pour représentations graphiques (quasi-équivalent de pyplot) Pour obtenir de l aide sur un module importé (ou sur une fonction quelconque en général) : help(math) Pour utiliser une fonction du module importé : math.sin(1.3) Utilisation d un alias : import math as m m.sin(1.3) On peut simplifier l appel des fonctions (ou n importer qu une seule fonction) : from math import * (from math import sin) sin(1.3) Mais dans ce cas il faut faire attention aux fonctions portant les mêmes noms en provenance de modules différents : le dernier import écrase le précédent 2. Les types python a) Types d objets simples Type entier : pas de limitation de taille type(25) Opérations sur les entiers : int 2+3 2-3 abs(-3) 2*3 2**3 25//3 25%3 divmod(25,3) Type flottant type(25.0) 3e4 float # notation exponentielle Opérations sur les réels : comme sur les entiers sauf pour la division. 1/3 # précision finie d une quinzaine de décimales

Type booléen type(3>5) Deux valeurs possibles : True False Opérations sur les booléens : - opérateurs logiques bool not and or - opérateurs de comparaison == # égal à!= # différent de < > <= >= # relation d ordre Type complexe : la partie imaginaire est suffixée par j type(5+3j) (3+4j).real (3+4j).imag (3+4j).conjugate() abs(3+4j) complex # real est un attribut du complexe (sa partie réelle) # conjugate est une méthode de l objet de type (ou de classe) complex # la fonction abs calcule le module du complexe Type chaine de caractère : une chaine de caractères s écrit entre guillemets 'chaine' ou "chaine" type("chaine") Opérations élémentaires : str len("chaine de caractères") 20 "chaine"+"de "+"caractères" "chaine de caractères" # concaténation Extraction de caractères (ils sont numérotés à partir de zéro) : "chaine de caractères"[2] 'a' "chaine de caractères"[2:4] 'ai' "chaine de caractères"[-1] 's' # on compte à l envers b) Types de conteneurs Type n-uplet (tuple en anglais) : Il s agit d une suite d éléments de types quelconques encadrés par () type((1,3,'a')) tuple () (1,) (5,3) Un tuple est non mutable, les opérations possibles sont limitées à : t=(1, a,false) t[0] t[-1] # accès aux éléments t[2:3] t[1:3] # extraction de sous-tuples len(t) t+t # concaténation

Type liste : Il s agit d une suite d éléments de types quelconques encadrés par [] type([true,5,4,5]) list Une liste est un objet mutable, on peut en modifier le nombre et la valeur de ses éléments. Opérations sur les listes : L=[12.0,"aa",2,3,5] # affectation len(l) L[0] L[1:3] # accès aux éléments et extraction de sous-listes L+[True,"bon"] # concaténation L.append(50) # insère 50 à la fin de la liste L, L est modifiée L.insert(2, 60) # insère 60 en position 2 à la liste L, L est modifiée L.pop(3) # renvoie L[3] et le supprime dans L, L est modifiée del(l[0:3]) # supprime la tranche d éléments d index de 0 à 2, L est modifiée G=L.copy() # copie la liste L et l'affecte à G L[i]=x # l'élément d'indice i est remplacé par x, L est modifié L[i:j+1]=t # la tranche d'éléments d'indice i à j est remplacée par t, L est modifiée L[i:j+1] # construit une nouvelle liste avec les éléments d'indice compris entre i et j L.count(x) # compte le nombre d'occurrences de x dans L L.reverse() # renverse L en place, L est modifiée Type ensemble : Il s agit d un ensemble d éléments de types quelconques encadrés par {} type({2,'a',9}) set Par définition il n y a pas deux éléments identiques dans un ensemble! Opérations sur les ensembles : s={1,2,3,4} len(s) # cardinal de s s.add(x) # insère la valeur de x en modifiant s s.remove(x) # supprime la valeur de x en modifiant s 3 in s # test d'appartenance s.union({7,8},{'a','b'}) # retourne un nouvel ensemble réunion de s et des arguments s.intersection({1,5},{1,8}) # retourne un nouvel ensemble intersection de s et des arguments s.copy() # construit un nouvel ensemble contenant les mêmes éléments que s Type tableau numpy (numpy.ndarray) On peut construire des tableaux à partir de listes Python avec numpy.array : import numpy as np type(np.array([1,2,3]) np.ndarray Les objets sont convertis en un type commun, tous les éléments sont de même type. a=np.array([1,2.0,3]) array([1.,2.,3.]) len(a) 3 Un tableau numpy est un objet mutable. a[1]=6 a Outils de construction de tableaux : array([1.,6.,3.]) a=np. arange(1,3) a array([1,2,3]) np.arange(1,10,2) array([1,3,5,7,9]) # construit un tableau d'entiers entre 1 et 9 # de pas 2 np.linspace(0,1,5) array([0, 0.25, 0.5, 0.75, 1. ]) # construit un tableau de 5 points répartis # uniformément entre 0 et 1

Outils de construction de matrices : a=np.ones((2,3)) array([[ 1., 1., 1.], [ 1., 1., 1.]]) # construit une matrice de 1 de taille 2-3 b=np.zeros((2,3)) array([[ 0., 0., 0.], [ 0., 0., 0.]]) # construit un tableau de 0 de taille 2-3 Calculs sur les tableaux : t=np.linspace(0,1,50) C=np.cos(t) S=np.sin(t) # calcule un tableau dont les éléments sont les cosinus des éléments de t Différences entre tableau numpy et liste python : Tous les éléments d un tableau numpy sont de même type, ce n est pas nécessaire pour une liste. + est l opérateur de concaténation sur deux listes (pas nécessairement de même dimension), c est un opérateur d addition des éléments qui se correspondent sur deux tableaux numpy de même dimension. On peut effectuer directement la transformation de tous les éléments d un tableau numpy par une fonction numpy sans passer par une affectation sur chaque élément dans une boucle (cf dernier exemple). Cela simplifie beaucoup l écriture des calculs sur les tableaux (vecteurs, matrices). On peut extraire un élément d une matrice M i, j par M[i,j] ou M[i][j] pour un tableau numpy, mais seulement par M[i][j] pour une liste. L affichage d un tableau numpy représentant une matrice est plus lisible que celui de la liste correspondante. 3. Conversion de type float(2) float('1.2') int(2.1) int('256') str(2) bool('true') list('bonjour') list((1,5,true)) tuple([1,5,2]) Tableau_numpy=numpy.array([2,3,5]) list(tableau_numpy) 4. Variables et affectation Une variable est un nom associé à l'adresse mémoire d'une donnée. Exemple : 25 donnée a ----------> 01100101 variable ր տ adresse Lors d une affectation variable=valeur, on associe à la variable l adresse de la valeur. a=12 b=a a=13 print(a) print(b) Un objet de type simple est non mutable. Une deuxième affectation fait pointer la variable vers une autre adresse. Les tuples et les chaines sont également des objets non mutables : on ne peut pas changer la valeur d un élément d un tuple ou d une chaine (ne supportent pas l affectation). Par contre les listes, les ensembles, les tableaux numpy sont mutables. Affectation multiple, échange de variables : x,y=10,11 x,y=y,x

5. Instructions conditionnelles La structure d une instruction conditionnelle est la suivante : if condition1 : 1 elif condition2 : 2 else : 3 6. Boucles inconditionnelles Une boucle inconditionnelle est un bloc d répétées un nombre déterminé de fois. Exemples : for element in range(i,j,h) : # element prend toutes les valeurs entières entre i et j avec un pas h for element in conteneur : # element prend toutes les valeurs dans un conteneur # conteneur peut être une chaine, un tuple, une liste, un ensemble 7. Boucles conditionnelles La structure d une boucle conditionnelle est : while condition : Exemple : a=0 while a<7 : a=a+1 print(a) 8. Fonctions ou procédures La structure d une fonction ou procédure est la suivante : def <nom>(arg1,arg2,...) : Exemple : def f(x) : if x>0 : return x+3 else : None On peut aussi utiliser la mini syntaxe sur une ligne avec le mot clé lambda : f=lambda a,b,c : a+10*b+10*10*c

9. Entrées et sorties Affichage à l écran print("commentaire 1 : ",variable1,"\n","commentaire 2 : ",variable2,sep='') Lecture ou écriture de données dans un fichier Le fichier donnees.txt contient les lignes suivantes (coordonnées de points) : 10 2 5 3 5 4 5 2 9 - lecture des données du fichier : f=open('donnees.txt','r') L=[] for ligne in f: x,y,z=ligne.split() L.append([int(x),int(y),int(z)]) f.close() - écriture de données dans un fichier : Exemple : ajouter un quatrième point (1 7 6) dans le fichier précédent f=open('donnees.txt','r') L=f.readlines() f.close() L.append('1 7 6\n') f=open('donnees.txt','w') f.writelines(l) f.close() 10. Structure d un programme python # split est une méthode des objets de type chaine ## Gestion du système from os import chdir chdir('d:\travaux\td1') ## Import des modules import time import numpy as np ## Définition des fonctions def cherchemax(y): n=len(y) maxi=0 indice=0 for i in range(0,n): if(y[i]>maxi): indice=i maxi=y[i] return indice,maxi # Pour définir le chemin du répertoire par défaut ; attention aux ' # Pour pouvoir déclencher le chronomètre # Y est une liste d entiers naturels ## Script principal Y=[5,2,8,1,4] indice,maxi=cherchemax(y) print("le plus grand élément de L vaut: ",maxi,"\n","son index est : ",indice,sep='')