Les slides sont en ligne ici: http://afpy.github.com/formations/
Python est un language de programmation mature.
Deux versions stables mais à peu près “incompatibles”:
L’interpréteur python permet de:
Taper du code en direct:
$ python
>>> 1 + 1
2
Interpréter un script:
$ python hello_world.py
Interpréter une ligne de commande:
$ python -c "print('Hello world')"
# entier
i = 1
i = int('1')
# chaine
s = '1'
s = str(1)
# lists
l = [1, 2, 'a']
l = list([1, 2, 'a'])
# tuple
t = (1, 2, 'a')
t = tuple([1, 2, 'a'])
# set
s = set([1, 1])
# dictionnaire
d = {'clef': 'valeur',
'autre_clef': 'valeur'}
Si:
>>> if x == 1:
... print('foo')
Si / Sinon:
>>> if x != 1:
... print('foo')
... else:
... print('bar')
Si / Alors / Sinon:
>>> if x > 3:
... print('foo')
... elif x == 1:
... print('bar')
... else:
... print('babar')
>>> if x > 3 and y < 2:
... print('yeah')
>>> if 3 < x < 5:
... print('bar')
Boucle for. Itère sur une liste:
>>> for i in [1, 2, 3]:
... print(i)
Boucle while. (Tant que):
>>> x = 10
>>> while x:
... x = x - 1
Boucle en une ligne. Renvoie une liste:
>>> x = [a for a in [1, 2, 3]]
>>> x = [a for a in x if a == 2]
>>> x = [a for a in range(0, 21) if a % 2 == 0]
>>> x = [a * 2 for a in range(0, 11)]
Utilisation de modules réutilisables (stdlib/pypi/diy)
Et de fonctions (routines réutilisables)
import sys
def hello(name):
print('Hello ' + name)
print('Hello %s ' % name)
if __name__ == '__main__':
hello(sys.argv[1])
Permet de définir un objet ayant un comportement qu’ on lui assigne
class Personnage(object):
def __init__(self, type, force):
self.type = type
self.force = force
def attaque(self):
print("je suis un %s et je tape avec une force de %s" % (self.type, self.force))
merlin = Personnage('Magicien', 2)
merlin.attaque()
denver = Personnage('dino', 3)
denver.attaque()
Toute variable a des propriétés et méthodes:
>>> 'a'.upper()
'A'
Pour connaitre les attributs d’une variable:
>>> dir('a')