1 Programmation 1 Sommaire Introduction Bases du langage Opérateurs et expressi

1 Programmation 1 Sommaire Introduction Bases du langage Opérateurs et expressions Structures de contrôle Fonctions Modules Structures de données GUI Fichiers Exceptions Python 2 2 Sommaire (2) Processus Regexp P.O.O Syntaxe avancée Aide au développement Runtime Accès aux SGBD Accès réseau Déploiement d'applications et packages Intégration C/C++ Versions futures Python 3 Python 4 3 Introduction Historique Caractéristiques du langage Installation Premier programme Introduction 5 Historique Développé depuis 1989 par Guido Van Rossum employé chez Google Souhaits initiaux : langage portable, dynamique, extensible, gratuit approche modulaire et orientée objet Versions : courante : 2.6, 2.7, 3.4 Utilisateurs estimés : 1 million Introduction 6 4 Caractéristiques du langage Portable Supporte toute taille de programme Syntaxe simple avec types de données évolués Gestion automatique des ressources LOO avec multi-héritage et surcharge des opérateurs Gestion des exceptions Langage dynamique, orthogonal, réflectif et introspectif Typage dynamique des données Richesse de la bibliothèque standard Introduction 7 Applications types Scripts d'administration Scripts pour Internet (CGI, XML, email, Zope/Plone, Twisted...) GUI (Tk, wxPython, Qt, Gtk...) Integration de composants (C/C++...) Accès aux SGBD Programmation distribuée (CORBA, COM, .NET, SOAP, XML-RPC) Développement et prototypage rapide Analyseurs de langage (parsers) Traitement d'images, IA, jeux... Introduction 8 5 Installation Déjà installé sur Linux test par : $ python -V Python 2.6.4 Pour Windows voir www.python.org/download test par : PATH=%PATH%;C:\Python26 Python -V Introduction 9 Mon premier programme Lancement de l'interpréteur sur la ligne de commande : $ python Python 2.6.4 Type "help", "copyright",... >>> print 'hello world' hello world >>> Ctrl-D $ Introduction 10 6 Mon premier script Soit le fichier helloworld.py contenant le script suivant : #!/usr/bin/python print 'Hello World' Lancement du script par : $ python helloworld.py Hello World ou $ chmod +x helloworld.py $ ./helloworld.py Hello World Introduction 11 Lancement de l'interpréteur En mode interactif : python >>> import this Avec une commande à exécuter : python -c "print 'coucou'" En activant un module comme un script : python -m module ["commande..."] Introduction 12 7 Personnalisation du prompt La variable d'environnement PYTHONSTARTUP peut indiquer le nom d'un script à exécuter au lancement de l'interpréteur possibilité de gérer un historique gérer la complétion des noms des méthodes, des attributs... Introduction 13 Obtenir de l'aide Si la variable d'environnement PYTHONDOCS est positionnée sur le répertoire contenant les docs, python peut afficher de l'aide en ligne : $ export PYTHONDOCS=/usr/share/doc/python-2.4.3 $ python >>> help('print') ---------------------------------------------------------- 6.6 The print statement print_stmt ::= "print" ( [expression[1] ("," expression[2])* [","]] Mode intéractif avec : help() Introduction 14 8 Codage des caractères spéciaux Par défaut, Python utilise le jeu ASCII (Python Enhancement Proposal PEP-0263) Exemples : # -*- coding: latin-1 -*- # -*- coding: utf-8 -*- # -*- coding: iso-8859-15 -*- Génère une exception si l'encodage n'est pas supporté Introduction 15 Comment Python exécute le code ? Le code est lu et traduit dans un langage intermédiaire (le bytecode) Le bytecode est exécuté par la PVM Quand un module est importé la 1ère fois, le bytecode est sauvé sous la forme d'un .pyc Il existe des compilateurs/traducteurs vers d'autres langages Psyco pour le calcul PyPy qui implémente une PVM optimisée Jython Parrot Shed Skin qui traduit en C++ (12 à 45 fois plus rapide) Introduction 16 9 Python 17 Valeurs litérales Nombres : entiers : 2 flottants (double précision): 3.23, 52.3E-4 complexes : (-5 + 1j), (2.3 - 4.6j) Chaines : 'exemple de chaine' "pas de pb comme d'habitude" '''texte sur plusieurs lignes''' • peut aussi utiliser les triples guillemets """ Bases 18 10 Chaines (suite) Caractère d'échappement \ : 'l\'alphabet' "chaine1\nchaine2" "chaine1\ chaine2" Chaine sans traitement (raw string) : r"le \n n'est pas interprété" R"idem" Chaine Unicode : u"chaine1" U"chaine2" Les chaines sont immuables La concaténation est automatique "chaine1" "chaine2" Bases 19 Variables - Identifieurs Sont des catégories d'identifieurs le 1er caractère doit être une lettre (min/maj) ou un souligné (_) les autres caractères autorisés sont des lettres, des chiffres ou le souligné les noms sont sensibles à la casse norme "PEP 8" Bases 20 11 Exemple d'utilisation # Fichier var.py i = 5 print i i = i + 1 print i s = '''ligne multiple voici la deuxieme ligne.''' print s $ python var.py 5 6 ligne multiple voici la deuxieme ligne. Résultat de l'exécution: Bases 21 Lignes logiques et lignes physiques Ligne physique = ligne qu'on perçoit Ligne logique = instruction perçue par python Python considère logique = physique Implicitement, Python encourage l'utilisation d'une instruction par ligne physique production de code plus lisible on peut toujours utiliser le point-virgule (;) pour séparer des instructions sur une même ligne le backslash (\) permet de créer des lignes logiques sur plusieurs lignes physiques Bases 22 12 Indentation Certains espaces sont importants ! Les espaces (et les tabulations) en début de ligne définissent l'indentation L'indentation définit les blocs d'instructions Les instructions possédant la même indentation successive appartiennent au même bloc Exemple d'erreur : i = 5 print "valeur de i=", i ^ SyntaxError: invalid syntax Bases 23 Commentaires Débutent par un # Ou bien sont encapsulés par des triples quotes ou guillemets Bases # un commentaire i = 5 # commentaire ! ’’’ sur plusieurs lignes ’’’ 24 13 Python 25 Opérateurs Astuce : python évalue directement les expressions >>> 2 + 3 5 + : ajoute 2 objets >>> 3+5 8 >>> 'a' + 'b' 'ab' - : soustraction Opérateurs 26 14 Opérateurs (2) * : multiplication >>> 2*3 6 'ab' * 3 'ababab' ** : puissance / : division >>> 4/3 1 >>> 4.0/3 1.333333333 Opérateurs 27 Opérateurs (3) // : (floor) arrondi inférieur du quotient >>> 4 // 3.0 1.0 % : module (reste de la division) >>> 8 % 3 2 >>> 25.5 % 2.25 0.75 << : décalage à gauche >> : décalage à droite Opérateurs 28 15 Opérateurs (4) & : "et" binaire | : "ou" binaire ^ : "ou" exclusif ~ : complément à un (= -(x+1)) <, >, <=, >=, ==, != : test d'inégalité retournent 1 (True) ou 0 (False) écriture v1 < v2 <= v3 possible ! not : négation booléenne and : "et" logique or : "ou" logique retournent la dernière expression "vraie" Opérateurs 29 Précédence des opérateurs (partielle) ** ~ + et - unaires *, /, % + et - binaires <<, >> & ^ | <, >, <=, >=, != , == is, is not in, not in not x and or Opérateurs 30 16 Distinguer le "vrai" du "faux" Les valeurs suivantes sont considérées comme fausses : None False toute valeur numérique égale à 0 : 0.0, 0L, 0j, 0x0 toute séquence vide (voir plus loin: '', (), []) • les chaines sont des séquences ! tout dictionnaire vide : {} tout objet possédant les méthodes __nonzero__() ou __len__() et qui retournent False ou 0 Tout le reste est "vrai" Opérateurs 31 Résultat des comparaisons Lors de l'évaluation d'une expression pour obtenir une valeur booléenne (évaluation d'une condition) : si aucun opérateur booléen (>, <, == ....) n'est utilisé, l'expression est évaluée à True ou False comme indiqué précédemment si un opérateur booléen est utilisé : • le résultat est toujours False si les opérandes sont de type différents >>> False == None # est faux >>> [] == False # est faux • sinon, la valeur des opérandes est comparée Opérateurs 32 17 Cas du and et du or and et or retournent la dernière expression évaluée (circuit "court") 'a' and 'b' # vaut 'b' 'a' or 'b' # vaut 'a' Cas du and-or : 1 and 'a' or 'b' # retourne 'a' 0 and 'a' or 'b' # retourne 'b' 1 and '' or 'b' # retourne 'b' !!! Opérateurs 33 Affectations Affectation simple : a = 1 Affectations multiples : a,b = 1,2 Affectations composées : a += 3 a -= 1 Opérateurs 34 18 Python 35 Types d'instructions Python supporte 3 instructions de contrôle : le test avec if • (pas de switch) la boucle for la boucle while Instructions 36 19 Le "if" #!/usr/bin/python # Fichier: if.py number = 23 guess = int(raw_input('Donnez un entier : ')) if guess == number: print "Bravo !" elif guess < number: print "Non, trop petit !" else: print "Non, trop grand !" print "Fin" Instructions 37 Expressions conditionnelles (v2.5+) L'écriture : x = true_value if condition else false_value est équivalente à : if condition: x = true_value else: x = false_value Instructions 38 20 Le "while" #!/usr/bin/python # Fichier: while.py number = 23 running = True while running: guess = int(raw_input('Donnez un entier : ')) if guess == number: print "Bravo !" running = False elif guess < number: print "Non, trop petit !" else: print "Non, trop grand !" else: print "boucle finie" # pas sur un break print "Fin" Instructions 39 Le "for" #!/usr/bin/python # Fichier: for.py for i in range(1,5): # boucle de 1 à 4 print i else: print "boucle finie" Instructions 40 21 Permet de quitter le bloc englobant : Le "break" #!/usr/bin/python # Fichier: break.py while True: s = raw_input('Entrez qqc : ') if uploads/Management/ python.pdf

  • 21
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager
  • Détails
  • Publié le Aoû 05, 2022
  • Catégorie Management
  • Langue French
  • Taille du fichier 1.1515MB