18/12/2014 12:14Notebook
Page 1 sur 8http://localhost:8888/nbconvert/html/coursIntroPython/1-ApprendrePython-Introduction.ipynb?download=false
In [24]: from __future__ import print_function
Introduction à Python
Propos préliminaires
Pourquoi Python
Python est simple et rapide à comprendre, on peut ensuite se perfectionner pendant longtemps
Il fonctionne sous diérents OS (Windows, Linux, OS X, Android, iOS, etc)
De nombreuses bibliothèques couvrant des domaines variés, du réseau aux interfaces graphiques, des méthématiques symboliques au traitement du
signal (batteries included)
C'est un langage qui est très facile à lire (write once, read often)
Pour approfondir vos connaissances en Python, plusieurs livres sont disponibles à la bibliothèque. Il y a également un tutoriel très bien fait de Guido van
Rossum, le créateur du langage.
Installer Python
Il y a deux branches de Python, la version 2 et la version 3. Cette dichotomie vient du fait qu'un certain nombre d'améliorations nécessitaient de casser la rétro-
compatibilité : lancer un code valide en Python 2.X avec un interpréteur en Python 3.Y peut générer des erreurs. Il existe cependant beaucoup d'outils pour
convertir automatiquement des codes de Python 2 en Python 3. La transition entre les versions 2 et 3 est prévue sur 5 ans, pour finir en 2016. Aujourd'hui (fin
2014), il est commence à devenir plus intéressant de travailler en Python 3.
Pour installer Python sur votre ordinateur, il existe plusieurs moyens. Je vous recommande d'installer la suite Canopy d'Entought
(https://store.enthought.com/#canopy-academic), qui est gratuite pour les universitaires et payante pour les entreprises. Pour bénéficier de la version
académique, il faut vous enregistrer (https://store.enthought.com/accounts/login/?next=/licenses/academic/request/) avec votre adresse mail ocielle
ens.uvsq.fr.
Sinon, il existe aussi les alternatives suivantes:
Linux: il sut généralement d'utiliser les paquets Python de votre distribution
Mac OS: il est possible d'utiliser MacPorts (http://www.macports.org/) ou homebrew (http://www.brew.sh/)
Windows: la distribution Anaconda (http://www.continuum.io/downloads) regroupe tout ce qu'il vous faut.
Python comme calculatrice
Une fois Python lancé vous avez accès à un interpréteur de commande. Je l'utilise régulièrement comme calculatrice.
Les nombres
In [2]: 2+2
In [1]: (50-5*6)/4 # un commentaire
In [4]: # Ceci est um commentaire
La division de deux entiers retourne l'entier immédiatement inférieur
In [2]: 7/2 # c'est un commentaire sur la même ligne que le code
In [6]: 7/-2
Out[2]: 4
Out[1]: 5
Out[2]: 3
Out[6]: -4
18/12/2014 12:14Notebook
Page 2 sur 8http://localhost:8888/nbconvert/html/coursIntroPython/1-ApprendrePython-Introduction.ipynb?download=false
Les nombres à virgules flottantes sont pris en compte. Lorsque des entiers et des flottants sont mélangés dans un calcul, les opérateurs travaillent toujours
avec la plus grande précision possible, donc en flottants.
In [7]: 553 * 4 / 1.5
In [6]: 7 / 2.
Les nombres complexes sont également faciles à utiliser en Python.
In [9]: 1 + 1j
In [10]: 1j + 1J
In [11]: 1j * 1j
On peut utiliser le signe = pour aecter une valeur à une variable. La valeur de la variable achée n'est pas achée.
In [8]: largeur = 20
hauteur = 5*9
largeur * hauteur
Il est possible d'aecter une valeur à plusieurs variables simultanément :
In [6]: x = 0; y = 0; z = 0
x = y = z = 0 # Mettre à zéro x, y et z
En mode interactif (utilisé ici comme calculatrice), la dernière valeur achée est aectée à la variable _, ce qui peut être pratique pour continuer les calculs
In [11]: tva = 19.6 / 100
prix = 100.95
prix * tva
In [12]: prix + _
In [13]: round (_, 2)
Chaînes de caractères
Python propose de manipuler les chaînes de caractères avec beaucoup de facilité. Ces chaînes peuvent être exprimées de diérentes façons, elles peuvent
être incluses entre simples quotes (apostrophes) et doubles quotes (guillemets)
In [17]: 'La cigale et la Fourmi'
In [15]: 'n\'est-ce pas'
Out[7]: 1474.6666666666667
Out[6]: 3.5
Out[9]: (1+1j)
Out[10]: 2j
Out[11]: (-1+0j)
Out[8]: 900
Out[11]: 19.7862
Out[12]: 120.7362
Out[13]: 120.74
Out[17]: 'La cigale et la Fourmi'
Out[15]: "n'est-ce pas"
18/12/2014 12:14Notebook
Page 3 sur 8http://localhost:8888/nbconvert/html/coursIntroPython/1-ApprendrePython-Introduction.ipynb?download=false
In [19]: "n'est-ce pas"
Attention aux caractères accentués, il est posible qu'ils soient mal interprétés si vous passez d'un OS à l'autre (Windows à Linux par exemple). Il n'est pas
permis d'utiliser des accents pour nommer des variables en Python.
Il est possible de définir des chaînes de caractères qui s'étendent sur plusieurs lignes.
In [20]: fable = "Le corbeau et le Renard\n\
Maître Corbeau, sur un arbre perché,\n Tenait dans son bec un fromage"
print (fable)
Les retours à la ligne sont indiqués par des \n. Le \ qui suit indique qu'il ne faut pas tenir compte le retour à la ligne du texte. Vous noterez que les blancs en
début de ligne sont significatifs.
Une chaîne de caractères peut être définie comme chaîne raw (brute), dans ce cas les \n ne sont pas interprétés mais les \ avec le retour chariot permettent
tout de même de revenir à la ligne. Il sut pour cela de rajouter un r avant d'ouvrir les guillemets (" ou ') de la chaîne.
In [21]: fable = r"La Grenouille qui veut se faire aussi grosse que le Bœuf\n \
Une Grenouille vit un Bœuf,\n \
Qui lui sembla de belle taille"
print (fable)
Les chaînes peuvent également être entourées de triples guillemets (""" ou '''). Dans ce cas, un retour à la ligne est considéré comme un retour à la ligne. Il
n'est plus nécessaire de mettre \n ou \\.
In [19]: print ("""
Usage: trucmuche [OPTIONS]
-h affiche cette page d'aide
-b active l'option bidule
""")
Les chaînes peuvent être concaténée, ou accolées, avec l'opérateur + et multipliée avec l'opérateur *.
In [17]: mot = 'mac' + 'hin'
mot
In [18]: partie1 = 'mac'
partie2 = 'hin'
mot = partie1 + partie2
mot
In [19]: print ('<' + 5*mot + '>')
Deux chaînes cote à cote sont automatiquement accolées : nous aurions pu écrire
In [23]: 'mac' 'hin'
Out[19]: "n'est-ce pas"
Le corbeau et le Renard
Maître Corbeau, sur un arbre perché,
Tenait dans son bec un fromage
La Grenouille qui veut se faire aussi grosse que le Bœuf\n Une Grenouille vit un Bœuf,\n Qui lui sembla
de belle taille
Usage: trucmuche [OPTIONS]
-h affiche cette page d'aide
-b active l'option bidule
Out[17]: 'machin'
Out[18]: 'machin'
<machinmachinmachinmachinmachin>
Out[23]: 'machin'
18/12/2014 12:14Notebook
Page 4 sur 8http://localhost:8888/nbconvert/html/coursIntroPython/1-ApprendrePython-Introduction.ipynb?download=false
Les chaînes de caractères peuvent être décomposées, ou indexées. Dans ce cas, comme en C, le premier caractère est à la position 0. Le type caractère
n'existe pas, un caractère est considéré comme une chaîne de caractère de taille 1. Il est possible de découper des sous-chaînes de caractères en utilisant la
notation de découpage (ou slice) avec les deux points (:).
In [25]: mot[0]
In [29]: mot[0:2]
In [30]: mot[2:4]
Il n'est pas possible de modifier les chaînes de caractères, à la diérence du C. Vous obtiendrez une erreur si vous essayez de modifier un caractère de la
chaîne:
In [20]: mot[0] = 't'
In [22]: mot[2:6] = 'rins'
Mais il est très facile de créer une nouvelle chaîne avec le contenu que l'on souhaite :
In [38]: 't' + mot[1:6]
In [39]: mot[0:2] + 'rins'
Les indices de découpages ont des valeurs par défaut utile. Le premier indice non défini prend la valeur par défaut 0, le deuxième indice prend la taille de la
chaîne que l'on est en train de découper.
In [34]: mot[:2] # les deux premiers caractères
In [35]: mot[2:] # tout sauf les deux premiers caractères
Il est à noter que s[:i] + s[i:] est égal à s
In [36]: print (mot[:2] + mot[2:])
print (mot[:3] + mot[3:])
Les indices erronés sont générés de façon élégante : un indice trop grand est remplacé par la taille de la chaîne et un indice de fin plus grand qu'un indice de
début génère une chaîne vide
Out[25]: 'm'
Out[29]: 'ma'
Out[30]: 'ch'
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-20-a298fccab792> in <module>()
----> 1 mot[0] = 't'
TypeError: 'str' object does not support item assignment
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-22-ea6fefd1f66b> in <module>()
----> 1 mot[2:6] = 'rins'
TypeError: 'str' object does not support item assignment
Out[38]: 'tachin'
Out[39]: 'marins'
Out[34]: 'ma'
Out[35]: 'chin'
machin
machin
18/12/2014 12:14Notebook
Page 5 sur 8http://localhost:8888/nbconvert/html/coursIntroPython/1-ApprendrePython-Introduction.ipynb?download=false
In [37]: mot[1:100]
In [38]: mot[10:]
In [40]: mot[2:1]
Les indices peuvent être négatifs pour compter à partir de la droite :
In [40]: mot[-1] # le dernier caractère
In [41]: mot[-2] # l'avant dernier caractère
In [42]: mot[-2:] # les deux derniers caractères
In [43]: mot[:-2] # tout sauf les deux derniers caractères
Vous noterez que -0 est équivalent à 0:
In [44]: mot[-0] # premier caractère
On peut donner des valeurs négatives hors limites pour le découpage. Cependant, pour l'accès direct, cela génère des erreurs
In [45]: mot[-100:]
In [25]: mot[-10]
Pour bien se rappeler le découpage, une bonne méthode est de penser à des indices qui pointent entre les caractères, par exemple
-+---+---+---+---+---+---+ | m | a | c | h | i | n | +---+---+---+---+---+---+ 0 1 2 3 4 5 6 -6 -5
-4 -3 -2 -1
Ainsi le découpage entre i et j est celui qui contient tous les caractères compris entre i et j.
La fonction len() retourne la longueur d'une chaîne:
In [47]: s = 'supercalifragilisticexpialidocious'
len (s)
Il est possible d'utiliser des chaînes de caractères en Unicode, pour avoir accès aux caractères non-ASCII, comme é, è, ê, etc. Pour cela, il sut de mettre un u
devant la chaîne de caractères.
In [48]: s_unicode = u"Épautre français"
print (s_unicode)
Out[37]: 'achin'
Out[38]: ''
Out[40]: ''
Out[40]: 'n'
Out[41]: 'i'
Out[42]: 'in'
Out[43]: 'mach'
Out[44]: 'm'
Out[45]: 'machin'
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
<ipython-input-25-4feaf8131d45> in <module>()
----> 1 mot[-10]
IndexError: string index out of range
Out[47]: 34
Épautre français
1 / 8 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !