Taille: 5247
Commentaire: Amorce
|
Taille: 715
Commentaire: Cette page est l'accueil... ancien contenu dans sous-page /Plan
|
Texte supprimé. | Texte ajouté. |
Ligne 1: | Ligne 1: |
= Atelier 2012-02-23 : Python : Atelier de base = | = Python : Atelier de base = |
Ligne 3: | Ligne 3: |
<<TableOfContents(3)>> | == Infos générales == |
Ligne 5: | Ligne 5: |
---- | * Date/heure : jeudi 23 février 10h00 Alexandrie (EG) * Durée : 5 heures * Lieu : CNF Alexandrie * Présentateur : DavinBaragiotta * Format : Atelier présentiel |
Ligne 7: | Ligne 11: |
== INTRODUCTION == | == Description == |
Ligne 9: | Ligne 13: |
* Objectifs : * coder dans l'interpréteur et explorer les bases du langage * écrire un script qu'on fera exécuter par l'interpréteur |
* Objectifs : * coder dans l'interpréteur et explorer les bases du langage * écrire un script qu'on fera exécuter par l'interpréteur |
Ligne 13: | Ligne 17: |
* Documentation * http://www.python.org/doc/ * http://docs.python.org/tutorial/ * http://docs.python.org/library/ |
== Pré-requis == |
Ligne 18: | Ligne 19: |
* Environnement * éditeur texte * interpréteur python : python, ipython * sources : * http://montrealpython.org/r/projects/workshop-uqam-2011-11-17/wiki * http://montrealpython.org/r/attachments/2 |
=== Connaissances techniques === |
Ligne 25: | Ligne 21: |
---- | * Bases en programmation (minimales) |
Ligne 27: | Ligne 23: |
== NOTIONS DE BASE == | === Environnement technique === |
Ligne 29: | Ligne 25: |
=== Interpréteur === | * Python = 2.6 |
Ligne 31: | Ligne 27: |
* python, ipython * interactivité / introspection |
== Contenu de l'atelier == |
Ligne 34: | Ligne 29: |
{{{ $ ipython }}} |
* [[/Plan|Plan et support de présentation de l'atelier]] |
Ligne 38: | Ligne 31: |
=== Syntaxe === | == Ressources == |
Ligne 40: | Ligne 33: |
* commentaire : # * variables : sans $ * instructions : sans ; * blocs : sans {} * style : PEP 8 http://www.python.org/dev/peps/pep-0008/ * bris de ligne : \ === Variables === * nom, valeur, référence {{{ a = 12 b = a id(a) id(b) }}} === Types === * typage dynamique (pas besoin déclarer) * import types {{{ n = None # NoneType : type spécial voulant dire... rien b = True # bool : booléen... True ou False n'oubliez pas les majuscules i = 15 # int : entier f = 15.5 # float : décimal s = "chaine" # str : chaine de caractère, instancié avec "" ou '' u = u"chaîne" # unicode : chaîne de caractère unicode, instancié avec u"" ou u'' l = [] # list : liste d'objets (ordonné) t = () # tuple : liste immuable d'objets d = {} # dict : dictionnaire de données (unique, non-ordonné) ens = set([]) # set : ensemble (unique, non-ordonné) }}} * unpacking {{{ a, b = 34, 56 }}} * fortement typé (pas de transtypage implicite) * transtypage str(), int(), float(), bool(), list(), tuple(), dict(), set() {{{ float(a) }}} === Built-in : fonctions built-in et structure du langage === http://docs.python.org/library/fonctions.html {{{ type(objet) # retourne le type de l'objet dir(objet) # retourne les noms derrière l'objet help(objet) # retourne l'aide callable(objet) # dit si un objet est appelable, exécutable... bool(), int(), str()... # initialisation ou transtypage getattr() isinstance(objet, Type) # teste le classe (ou type) d'un objet issubclass() super() len() min() max() open() range() raw_input() del }}} === Objets et namespaces === * objet.attribut * objet.methode() * objet.attribut.methode() === Introspection === * variable. [+ tab] * variable? * type() * dir() * help() * exploration des types * concaténation : s1 + s2 {{{ nom = "Davin Baragiotta" prenom, nom = nom.split() nom.upper() nom.lower() nom.ljust(30) nom = [prenom.lower(), nom.lower()] username = ".".join(nom) nom = "Davin Baragiotta" username = ".".join(nom.split()).lower() }}} {{{ users = [] users.append(username) }}} === Conteneurs === * imbrication : l = [[1,2,3],[4,'salut',6],[7,8,9]] * index : l[2], d['nom'] * slicing : l[0:2] * personne = {'nom':'x', 'prenom':'y'} * personnes = [] === Itération === for item in l: print item.upper() * while... while year < 2005: for 2 à la puissance n sur string sur list === Comparaisons et opérateurs logiques === false = 0, '', (), [], {}, None and, or, not < > <= >= == != x < y <= z is, is not in, not in % === Conditionnel === if 5 in liste: print 'hourra 5' elif 4 in liste: print 'hourra 4' else: print 'pas hourra' === Fichiers === * read files : open(), f.close() for line in open(‘hello.py’): print line, readlines === Formattage de chaînes de caractères === * % === Compréhension de liste === * cible = 'egypte' * contexte = [ligne for ligne in f.readlines() if cible in ligne] l = [l for l in liste if l.startswith('#')] ---- === Scripts === * code/script.py * shebang : #! /usr/bin/env python * encoding : # -*- encoding: utf-8 -*- * if __name__ == '__main__': * raw_input() === Fonctions === * convention de nommage * output : None par défaut * input : paramètres positionnels, nommés, *args, **kwargs * portée des variables def ma_fonction(param1, param2, *args, **kwargs): """Ceci est ma fonction.""" output = True return output === Import === * import module * from module import nom * from module import nom as mon_nom * built-in : pas besoin d'import * standard library (shipped in) : import sans install * packages : importable si installé dans le path $ import sys $ sys.path === Modules === * __init__.py * __name__ : nom du module, nom de fichier si importé, '__main__' si exécuté (utile pour tests) === Permanence de l'information === * fichiers * sérialisation : import pickle * DB : sqlite3, mysqldb, psycopg2 * ORM : sqlalchemy == EXERCICE == == CONCLUSION == * documentation + interactivité + introspection * scripts + modules * enjoy! |
* Sources : [[attachment:exercice-solution.txt]] |
Python : Atelier de base
Infos générales
- Date/heure : jeudi 23 février 10h00 Alexandrie (EG)
- Durée : 5 heures
- Lieu : CNF Alexandrie
Présentateur : DavinBaragiotta
- Format : Atelier présentiel
Description
* Objectifs :
- coder dans l'interpréteur et explorer les bases du langage
- écrire un script qu'on fera exécuter par l'interpréteur
Pré-requis
Connaissances techniques
- Bases en programmation (minimales)
Environnement technique
- Python = 2.6
Contenu de l'atelier
Ressources
Sources : exercice-solution.txt