xkcd Le langage Python La GUI tkinter Christian Nguyen Département d informatique Université de Toulon et du Var 2012-2013



Documents pareils
Présentation du langage et premières fonctions

Initiation à la programmation en Python

TP 1. Prise en main du langage Python

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

STAGE IREM 0- Premiers pas en Python

Découverte de Python

Algorithmique et Programmation, IMA

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Chapitre 2 Devine mon nombre!


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

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

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

Programmer en JAVA. par Tama

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

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

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 Logique avec SISCtus Prolog

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

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

Utilisation d objets : String et ArrayList

Représentation d un entier en base b

LES TYPES DE DONNÉES DU LANGAGE PASCAL

EXCEL TUTORIEL 2012/2013

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

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

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

Introduction à MATLAB R

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

Une introduction à Java

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

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

V- Manipulations de nombres en binaire

2 Comment fonctionne un ordinateur, dans les grandes lignes

OCL - Object Constraint Language

INF 321 : mémento de la syntaxe de Java

Rappels Entrées -Sorties

L informatique en BCPST

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

Programmation Web. Madalina Croitoru IUT Montpellier

Introduction au langage C

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

1 Recherche en table par balayage

# 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>

Classes et Objets en Ocaml.

URECA Initiation Matlab 2 Laurent Ott. Initiation Matlab 2

Recherche dans un tableau

Initiation à LabView : Les exemples d applications :

Algorithmique et programmation : les bases (VBA) Corrigé

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

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

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

1 Lecture de fichiers

Compléments de documentation Scilab : affichage de texte et formatage de nombres

Les chaînes de caractères

ALGORITHMIQUE ET PROGRAMMATION En C

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

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

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

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

Cours d Algorithmique et de Langage C v 3.0

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

Conventions d écriture et outils de mise au point

Les structures de données. Rajae El Ouazzani

Introduction à l informatique en BCPST

Langage Java. Classe de première SI

DM 1 : Montre Autoquartz ETA

Cours 7 : Utilisation de modules sous python

Notions fondamentales du langage C# Version 1.0

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

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

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

Solutions du chapitre 4

Programmation système de commandes en C

Le langage SQL Rappels

Cours de Programmation 2

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

Bernard HAMM, Évelyne LAVOISIER

Date M.P Libellé Catégorie S.Catégorie Crédit Débit Solde S.B

Génie Logiciel avec Ada. 4 février 2013

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

Les bases du langage Python

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

Informatique Générale

Java DataBaseConnectivity

Chapitre 2. Eléments pour comprendre un énoncé

Objets et Programmation. origine des langages orientés-objet

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

Corrigé des TD 1 à 5

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr

La Clé informatique. Formation Excel XP Aide-mémoire

as Architecture des Systèmes d Information

SUPPORT DE COURS. Langage C

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

Licence Sciences et Technologies Examen janvier 2010

Cours Informatique Master STEP

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

Java Licence Professionnelle CISII,

1. Structure d'un programme FORTRAN 95

Transcription:

La GUI tkinter Département d informatique Université de Toulon et du Var 2012-2013

Présentation Python est né en 1990, son concepteur est De Guido Van Rossum(Pays Bas). Il présente les caractéristiques suivantes : syntaxe très simple, typage dynamique, portable, sous licence libre, extensible, multi-paradigme (impératif et orienté objet), interprété ou pré-compilé (byte code).

Utilisation Deux modes d utilisation : en mode interactif : dialogue avec l interprète, chaque instruction est interprétée puis exécutée ( shell de Python), créer des scripts (programmes) soit grâce à un éditeur de texte soit grâce à un environnement de développement intégré (IDE) par exemple IDLE. L exécution du script se fait via l interprète.

Mots réservés 33 mots : structures de contrôle : break, continue, if, elif, else, for, in, while, pass, expressions logiques : and, not, or, True, False, modularité : class, def, global, nonlocal, return, from, import, exceptions : try, except, finally, raise, autre : as, assert, del, is, lambda, None, with, yield

Données et variables Les noms des identificateurs doivent respecter des règles de syntaxe (1er caractère lettre ou underscore, pas de caractères spéciaux, pas de mot réservé du langage,...). Syntaxe de l affectation : <identificateur de variable> = <expression> >>> x = 10 >>> mot = toto # ou "toto"

Opérateurs Les opérateurs symbolisent les opérations mathématiques : opérateurs arithmétiques : +, -, /, //, *, **, % opérateurs de comparaisons : <, >, <=, >=, ==,!= opérateurs logiques : and, or, not Exemple : >>> 2**3 8 >>> 5//2 2 >>> 5%2 1 >>> (2 < 3) and (3!= 7) True

Expressions Une expression est obtenue en combinant : valeurs, identificateurs et opérateurs, en respectant des règles de syntaxe précises. L interprète évalue une expression pour obtenir une valeur unique (ainsi qu un type). expression arithmétique, expression booléenne. >>> a+2 >>> 2 < 3 >>> 1 < 2 < 3 >>> ok and (a < 5)

Priorité des opérateurs Expression qui contient plusieurs opérateurs : l évaluation se fait de la gauche vers la droite si les opérateurs ont même priorité. opérateurs arithmétiques : PEMDAS (parenthèses, exposant, multiplication, division, addition et soustraction), opérateurs de comparaison : <, <=, >, >=,!= et ==, opérateurs logiques : or, and et not. Priorités : les parenthèses puis les opérateurs arithmétiques, de comparaison et enfin logiques.

Typage des variables le type int : les entiers relatifs, le type bool : type booléen (deux valeurs : True et False), le type float : les nombres à virgule flottante (approximation des réels), ils se distinguent de int par la présence du point décimal (.), représentés par s.m.b e avec s signe, m mantisse, b base et e exposant (en faisant varier e on fait flotter la virgule décimale), le type str : les chaînes de caractères, spécifiées soit entre apostrophes, soit entre guillemets, exemple : mot = bonjour ou mot = "bonjour".

Conversion de type Il existe plusieurs fonctions qui permettent de forcer le type d une variable en un autre type. Exemple int() : permet de modifier une variable en entier, provoque une erreur si cela n est pas possible, float() : permet la transformation en flottant, str() : permet de transformer la plupart des variables d un autre type en chaînes de caractère. >>> int(3.14) 3 >>> str(3.14) 3.14

Les entrées / sorties fonction input() : retourne un objet de type str saisi au clavier. fonction print() : affiche l expression passée en paramètres. >>> a = input() 2 >>> print(a) 2 >>> a = int(input()) 2 >>> a = float(input()) 2.0

Structures de contrôle Séquence et bloc Les instructions s exécutent les unes après les autres dans l ordre d écriture. Dans les instructions composées, une séquence d instructions s appelle un bloc d instructions. L indentation détermine les instructions d un même bloc. Il est recommandé de commenter chaque bloc d instructions afin d expliquer en langage clair son rôle et son fonctionnement.

Structures de contrôle Sélection Syntaxe if <condition>: <bloc d instructions> [elif <condition>: <bloc d instructions>] [else: <bloc d instructions>] a = 11 if a > 10: print("a est plus grand que dix") elif a == 10: print("a est egal a dix") else: print("a est plus petit que dix")

Structures de contrôle Itération Syntaxe while <condition>: <bloc d instructions> >>> a = 0 >>> while (a < 7): # (n oubliez pas le double point!)... a = a + 1 # (n oubliez pas l indentation!)... print(a, end= ) >>> 1 2 3 4 5 6 7

Structures de contrôle Itération sur une séquence Syntaxe for <ident> in <iterateur>: <bloc d instructions> >>> module = IHM >>> for i in module:... print(i, end=. ) >>> I.H.M. >>> for i in range(7): # (ou (1, 2, 3) par exemple)... print(i) >>> 0 1 2 3 4 5 6

Script Python C est un fichier texte. Son déroulement est linéaire sauf structure de contrôle (sélection ou itération). Remarque : dans un script, les commentaires sont les lignes qui commencent par le caractère #. Pour que l exécution d un script Python se fasse de façon implicite, il faut faire suivre le shebang #! du chemin d accès à l interprète (et rendre le fichier exécutable).

Définition d une fonction Fonction simple Une fonction accepte de 0 à n paramètre(s) et retourne ou non un résultat. Définition def <nom fonction>([<paramètres>]): <bloc d instructions> Instruction permettant de retourner un résultat : return (une fonction retourne par défaut None). Instruction vide (prototypage) : pass

Définition d une fonction Fonction simple >>> def f():... x=1 >>> y=f() >>> print(y) None Une fonction peut retourner plusieurs résultats (un tuple). >>> def f(px, py):... return px+1, py*10 >>> x, y = 1, 1 >>> x, y = f(x, y) >>> print(x, y) 2 10

Visibilité, durée de vie Variables globales vs locales Visibilité : une variable globale est définie en dehors de toute fonction, une variable locale est définie dans une fonction et masque toute autre variable portant le même nom Durée de vie : une variable globale existe durant l exécution du programme, une variable locale existe durant l exécution de la fonction.

Variables globales Attention danger Sans mécanisme de protection, la manipulation directe des variables globales est une hérésie à cause des effets de bords. Dans un langage interprété, les variables sont locales à un bloc par défaut. Pour changer la portée : mot-clé global. Exemple : >>> x=10 >>> def f():... x=12 >>> f() >>> print x 10

Passage de paramètres Mutables ou non mutables Quelques types sont immutables : les nombres, les chaînes de caractères, les tuples et les frozensets. Les autres types sont mutables. Conséquences : le passage de paramètres effectifs de type immutable n a pas d incidence sur ceux-ci, la fonction concernée ne peut les modifier, le passage de paramètres effectifs de type mutable autorise la fonction à les modifier (!).

Passage de paramètres Valeur par défaut Possibilité de définir un argument par défaut pour chaque paramètre. Attention : les paramètres sans valeur par défaut doivent précéder les autres paramètres. Conséquence : la fonction peut être appelée avec une partie de ses arguments. Exemple : >>> def Question(mesg, rep=( o, O, n, N )):... choix =... while not choix in rep:... print "La réponse doit ^etre dans "+str(rep)... choix = raw_input(mesg)... return choix

Passage de paramètres Arguments avec étiquettes Les paramètres peuvent être transmis dans un ordre quelconque si tous les paramètres ont une valeur par défaut dans la définition de la fonction et à condition de désigner nommément les paramètres. >>> def Cercle(x=0.0, y=0.0, r=1.0):... >>> Cercle(r=7.7, x=1.3, y=5.0)

Fichier Séparation des données et du programme dans des fichiers séparés. Un fichier est une ressource critique : les opérations sur les fichiers passent par le système. 3 étapes fondamentales : 1 ouvrir le fichier, 2 lire ou écrire dans ce fichier, 3 fermer ce fichier.

Fichier Ouverture L ouverture d un fichier peut entraîner sa réservation à l usage exclusif du demandeur. Définition <desc> = open(<nom du fichier>, <mode d ouverture>) Il retourne un objet particulier : le descripteur du fichier. Les modes d ouverture sont : r (read), w (write) ou a (append).

Fichier Lecture/écriture Les deux opérations se font de façon séquentielle. La lecture d un fichier est a priori non bloquante. Elle s arrête à la fin du fichier (read() renvoie une chaîne vide). Définition <desc>.read([<nombre de caractères>]) A contrario, l écriture dans un fichier est obligatoirement bloquante. Les données à écrire doivent être fournies en argument. Définition <desc>.write(<données>)

Fichier Fermeture Cette opération correspond essentiellement à la libération de la ressource. Mais il a aussi comme fonction de garantir le traitement des dernières données (utilisation d une mémoire tampon). Définition <desc>.close()

Fichier Fichier texte Contient des caractères imprimables et des espaces organisés en lignes successives, séparées par des retours à la ligne (caractère spécial \n). Création, par exemple : f.write("ceci est une ligne\n") Lecture, par exemple : ligne = f.readline()

Types composites Tuple C est une liste (séquence, suite ordonnée) non modifiable, une collection d éléments séparés par des virgules. Il est conseillé de l encadrer par une paire de parenthèses ( ). Exemple : tuple = ( a, b, c ) Accès : par un index entre crochets, par exemple tuple[0]. Avantages : moins de ressources, plus efficace.

Types composites Chaîne de caractères Ce sont des tuples de type string définis par une suite quelconque de caractères, ces derniers délimités par des apostrophes ou des guillemets. Exemple : chaine = Bonjour le monde Opérations élémentaires : assembler plusieurs chaînes à l aide de l opérateur +, déterminer la longueur d une chaîne en faisant appel à la fonction len(), convertir une chaîne en nombre (int() ou float()) ou vice-versa (str()).

Types composites Liste C est une liste (séquence, suite ordonnée) modifiable d éléments séparés par des virgules, encadrés par une paire de crochets [ ]. liste = [1, a, 3.14] Accès : par un index entre crochets, par exemple liste[0]. Opérations élémentaires : ajouter un objet à la fin : L.append(obj), nombre d occurence d un objet : L.count(obj), premier indice d un objet : L.index(obj), insertion d un objet avant l index i : L.insert(i, obj), tri (sur place) d une liste : L.sort().

Liste Technique de slicing Cette syntaxe permet de manipuler les listes de façon intuitive et efficace. Syntaxe <liste>[<debut>:<fin>] Exemples : >>> ll = [1, 2, 3, 4, 5] >>> ll[:2] [1, 2] >>> ll[4:] [5] >>> ch = IHM >>> ch[1:2] H

Liste Les list comprehensions Listes dont le contenu est défini par filtrage du contenu d une autre liste. Exemples : >>> [x**2 for x in range(10)] [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] >>> [m[0] for m in ( un, deux, trois )] [ u, d, t ] >>> [(x, y) for x in [1,2,3] for y in [3,1,4] if x!= y] [(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]

Types composites Ensemble Un ensemble est une collection non ordonnée d éléments uniques. Les opérateurs ensemblistes union, intersection, différence et différence symétrique sont associés à ce type. Exemples : >>> a = set( abracadabra ) >>> b = set( alacazam ) >>> a, b ({ a, r, b, c, d }, { a, c, z, m, l }) >>> a b # union { a, c, r, d, b, m, z, l } >>> a & b # intersection { a, c } >>> a - b # difference { r, d, b } >>> a ^ b # difference symetrique { r, d, b, m, z, l }

Types composites Dictionnaire (ou tableau associatif) Ce ne sont pas des séquences, cependant les éléments sont accessibles par une clé (numérique, alphabétique, composite). Syntaxiquement, un dictionnaire est constitué d éléments enfermés dans une paire d accolades. Un dictionnaire vide sera donc noté {}. Exemple : couleurs = {} couleurs[ jaune ] = yellow couleurs[ vert ] = green # ou bien couleurs = { jaune : yellow, vert : green }

Types composites Dictionnaire Opérations élémentaires : copier un dictionnaire : D.copy(), avoir les clés sous forme de liste : list(d.keys()), avoir les valeurs sous forme de liste : list(d.values()), savoir si un élément est dans le dictionnaire : opérateur in, supprimer un élément : del()

Programmation modulaire Généralités Toutes les fonctions ne sont pas intégrées au langage. Besoins : développement réparti (entre plusieurs équipes), réutilisabilité (utiliser en adaptant dans un contexte similaire). Solutions : encapsulation (organisation du code en unités logiques), protection des données (visibilité), espaces de noms (préfixe, levée des ambiguïtés).

Modules Mise en œuvre avec Python Définition de données et de fonctions dans un même fichier. Importation du module par le nom du fichier, exemple : import math # utilisation : math.sqrt(n) from math import * # utilisation : sqrt(n). Définition de données ou de fonctions privées : nom préfixé de deux blancs soulignés ( ), par exemple : ##### fonction privee d affichage d une erreur def erreur(perr): print(perr, file=sys.stderr)

Exceptions Capture et traitement des exceptions : le couple try, except >>> try:... x=3/0... except:... print( division par zero )... division par zero