18 h CM (F. Maurel) + 16 h TD/TP (F. Maurel / T. Roy)



Documents pareils
Initiation à la programmation en Python

TP 1. Prise en main du langage Python

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

Présentation du langage et premières fonctions

Chapitre 2 Devine mon nombre!

Programmer en JAVA. par Tama

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

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

Découverte de Python

STAGE IREM 0- Premiers pas en Python

Introduction au langage C

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

Les classes en Python

Java Licence Professionnelle CISII,

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Langage Java. Classe de première SI

Les bases du langage Python

Algorithmique et Programmation, IMA

Une introduction à Java

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

INF 321 : mémento de la syntaxe de Java

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

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

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

L informatique en BCPST

4. Groupement d objets

Django et PostgreSQL sous la charge

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

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

Java Licence Professionnelle CISII,

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

Bernard HAMM, Évelyne LAVOISIER

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

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

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)

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

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

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

Programmation Web. Madalina Croitoru IUT Montpellier

Introduction à JDBC. Accès aux bases de données en Java

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

Examen Médian - 1 heure 30

Classes et Objets en Ocaml.

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

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

Machines virtuelles fonctionnelles (suite) Compilation ML Java

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

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

Stockage du fichier dans une table mysql:

Représentation d un entier en base b


6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

INF2015 Développement de logiciels dans un environnement Agile. Examen intra 20 février :30 à 20:30

ACTIVITÉ DE PROGRAMMATION

Programmation système I Les entrées/sorties

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Cours 14 Les fichiers

Chapitre 10. Les interfaces Comparable et Comparator 1

MODULE 0. Tour d'horizon de powershell

Recherche dans un tableau

FusionInventory. Guillaume Rousse Journées francophones de Perl 2011

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

Utilitaires méconnus de StrataFrame

Cours 1 : La compilation

TP1. Outils Java Eléments de correction

UE C avancé cours 1: introduction et révisions

MODULE 0. Tour d'horizon de powershell

Compilation (INF 564)

Analyse de sécurité de logiciels système par typage statique

OpenPaaS Le réseau social d'entreprise

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

Utilisation d objets : String et ArrayList

ALGORITHMIQUE ET PROGRAMMATION En C

Cours de Programmation 2

Le langage SQL (première partie) c Olivier Caron

Dis papa, c est quoi un bus logiciel réparti?

Corrigé des exercices sur les références

Classe ClInfoCGI. Fonctions membres principales. Gestion des erreurs

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

Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs)

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Bases de données avancées

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

URECA Initiation Matlab 2 Laurent Ott. Initiation Matlab 2

Package Java.util Classe générique

//////////////////////////////////////////////////////////////////// Administration bases de données

Notions fondamentales du langage C# Version 1.0

INITIATION AU LANGAGE JAVA

Java 1.5 : principales nouveautés

Rappels d architecture

1/ Présentation de SQL Server :

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

Les chaînes de caractères

4 Exemples de problèmes MapReduce incrémentaux

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

Licence Sciences et Technologies Examen janvier 2010

Éléments de programmation et introduction à Java

Développement de projets logiciels à l'aide de Python

Transcription:

Présentation cours 18 h CM (F. Maurel) + 16 h TD/TP (F. Maurel / T. Roy) 5/6 h Python 2,5/2 h Introduction à l'ihm (démarche participative centrée utilisateur) + Mise en place des groupes 2,5/2 h : Méthodes de conception / Brainstorming 2,5/2 h : Maquettage 5,5/4 h : Prototypage python fabrice.maurel@info.unicaen.fr thibault.roy@info.unicaen.fr http://www.info.unicaen.fr/~fmaurel

Présentation Python (1) Portable (Unix, MacOs, Windows...), Jpython (bytecode Java) Gratuit et utilisable dans les projets commerciaux Syntaxe très simple et types de données évoluées (3 à 5 fois plus court que C ou C++) Gestion automatisée de la mémoire (mécanisme de comptage de références) Pas de pointeurs explicites Optionnellement multi-threadé Orienté objet avec héritage multiple et surcharge des opérateurs Système d'exception pour la gestion des erreurs

Présentation Python (2) Dynamique, orthogonal, réflectif et introspectif Dynamiquement typé Deux implémentations : interprété, compilateur générant du bytecode java Extensible Bibliothèque standard complète Évolution continue Bon choix pour le traitement de XML

Premier pas (1) Typage dynamique Séparateur décimal :. Division Euclidienne ou décimale : / Modulo : % Puissance : ** Type (objet) : retourne le type de l'objet Affectation Simple : var = val Multiple : var1 = var2 = var3 = val Parallèle : var1,var2,var3 = val1,val2,val3 Combinée : +=, *=, /=, -=

Premier pas (2) Comparaison : ==,!=, >, <, >=, <= Entrées / sorties : print (expression suivie de, pour ne pas sauter de ligne) / input ou raw_input Limite des instructions et des blocs définie par la mise en page (ne pas mélanger tabulation et caractère d'espacement!) : Ligne d'entête : première instruction... dernière instruction Ligne d'entête : une seule instruction

Premier pas (3) Commentaires : #... Extension conseillée pour un fichier python :.py -*- coding:latin-1 -*- ou -*- coding:utf-8 -*- Importation de modules (math, random,...) : import module (==> module.nomfonction) from module import nomfonction from module import * Éditeurs conseillés sous Linux : Idle + F5 Emacs + python nomprogramme

Principaux types de données (1) Données numériques (mutables) : Integer Long (nombre de chiffre significatif quelconque limité uniquement par la taille de la mémoire disponible sur l'ordinateur utilisé) Float (3.14, 10.,.001, 1e100, 3.14e-10) Données alphanumériques (non mutables) : String s="chaine" ou s='chaine' Opérateur de concaténation : + Opérateur d'appartenance : in

Principaux types de données (2) Les autres séquences Les listes (mutables) : List l=[1,2,3,"chaine",[1,4],3.14,4,5] Opérateur de concaténation : + fonctions : l=range(deb,fin,pas), len(l) Les tuples (non mutables): Tuple t=(1,2,3,"chaine",[1,4],3.14,4,5) Opérateur de concaténation : + Les dictionnaires (mutables, non ordonnés) : Dict d={c1:v1,c2:v2,c3:v3}

Structures de contrôle (1) Conditionnelle : if condition : instructions elif condition : instructions else : instructions L'instruction while : while condition: instructions Instruction de sortie forcée d'une boucle : break

Structures de contrôle (2) L'instruction for élément in séquence L'itération traite successivement tous les éléments d'une séquence donnée (caractères d'une chaîne, éléments d'une liste, clés d'un dictionnaire) for car in "chaîne":print car, for elem in [1,2,3]:print elem, for cle in {1:"a",2:"b",3:"c"}:print cle, for i in range(len(l)) (==> parcours des index de l) Création originale de liste : [c+c for c in "chaine" if c<'f']

Les chaînes Concaténation : "a"+"b" Répétition : "a"*4 Indexage de ch : de 0 à len(ch)-1 Accès à 1 élément de ch : ch[index] Extraction d'un slice : ch[n:m],ch[:m],ch[n:] Création d'une copie de ch : ch[:] Non modifiable et comparable Quelques fonctions intégrées : len, float, int opérateur de formatage : % Caractères spéciaux : \n, \t, \b...

Les listes / les tuples Concaténation, répétition, indiçage, accès et slicing identique au chaîne. Les listes sont modifiables (potentiellement par slicing avancé : insertion, suppression, remplacement de tranches) Fonctions intégrées : len, del Les tuples ont les mêmes propriétés que les listes à l'exception de celles qui peuvent provoquer une modification.

Les dictionnaires Non ordonné ==> la saisie n'implique pas un ordre des paires clé/valeur Fonctions intégrés : del, len Accès/modification : dico[clé]=valeur Parcours avec le for clé in dico mais aucune prévision possible de l'ordre de traitement des clés.

Les fonctions originales def nomdelafonction(p1=v1,p2=v2,...): "description de la fonction" instructions return val (optionnel!) Attention : passage automatiquement par valeur pour les entiers et les flottants mais automatiquement par référence pour les listes et les dictionnaires! Nombre de variable arbitraire : def f(*args) Corps d'un programme python : if name == " main ": nomdelafonction(p2=v3,p1=v4)

Gestion des erreurs Mécanisme de traitement des exceptions : try: instruction1 sous réserve except: instructions2 si erreur pendant instruction1 else: instructions3 si pas d'erreur pendant instruction1 Lever une exception : raise nomexception, "message optionnel"

Gestion des fichiers Choix du répertoire courant : from os import chdir chdir("chemin relatif ou absolu") Ouverture d'un fichier en lecture ou en écriture : f=open(nomfichier,'a' ou 'r') Fermeture d'un fichier : f.close() Écriture dans un fichier : f.write("chaine") Lecture dans un fichier : t=f.read(nbcar) Lecture ligne à ligne : t=f.readline() Lecture des lignes restantes : t=f.readlines()

Les méthodes Toutes les données sont en fait des objets et ont comme les fichiers un certain nombre de méthodes définies. dir(objet) : liste des méthodes de l'objet help(méthode) : l'aide sur la méthode String : split, join, find, count, lower, append... List : sort, append, reverse, index, remove,... Dict :keys, values, has_key, items, copy, get,...

Les classes Class NomDeClasse(object): "description de la classe" def init (self, arg1,arg2): "description" self.attribut1=arg1 self.attribut2=arg2 if name == " main ": arg1,arg2=val1,val2 c=nomdeclasse(arg1,arg2)

Héritage Héritage simple Class NomDeClasse(superClasse):... Héritage multiple Class NomDeClasse(superClasse1,superClasse2):... Variables brouillées : var ou var_

La surcharge des opérateurs Surcharge des méthodes comme (a chercher avec la fonction dir) : repr str getitem setitem add mul div sub