Amphi Python

publicité
Mardi 29 Janvier 2007
>>> Amphi Python
Valentin Roussellet
François Bleibel
Pierre-Alexandre Benazet
2005-12-31
[email protected]
[email protected]
[email protected]
Your Name
Your Title
Your Organization (Line #1)
Your Organization (Line #2)
Formation Python VIA
Les types de données
Les structures de contrôle.
Les fonctions : bien programmer
La gestion des fichiers
La gestion des erreurs
Les modules
2
Les types de données
Nombres entiers
int
2, -5, 10599, ...
Nombres réels
float
3.443, -2.999999, ...
Booléens
bool
True, False
Listes
list
[1,3,[42,”a”], -12.5]
Dictionnaire
dict
{“prez”:”PBS”,”un”:1}
Chaîne de caractères str
"Hello, World"
Tuple
(1,2,3,”poney”)
tuple
pour connaître le type d'un objet : type(a)
3
Opérations sur les nombres
Affectation
x=2
Incrémentation x=2
>>>x += 1 ou x = x + 1
x=3
Division
2/3 => 0
2.0/3 => 0.66666663
Modulo (reste)
Puissance
3%2 donne 1
10**3 donne 1000
La priorité des opérateurs mathématiques est respectée
4
Jouons avec les strings
Une chaîne est un texte
entre “ “ ou ' '
Exemple :
>>>print "Il m'a dit :\n\"bonjour\""
Il m'a dit
“bonjour”
Retour à la ligne : \n
Tabulation : \t
Caractères \\, \', \”
>>> m=4
Insertion d'arguments
>>> a=”joueurs”
>>>print "il y a %s %s "
%(m,a)
il y a 4 joueurs
Conversion de type
int("3") donne 3
5
Les listes
>>>L=[0,12,42]
>>>L=[1]*3
[0,12,42]
[1,1,1]
>>> L[1]=2
>>>L[-1]=3
[1,2,1]
[1,2,3]
>>>L.append(-2)
[1,2,3-2]
>>>L.insert(1,5)
[1,5,2,3,-2]
>>>L.reverse( )
[-2,3,2,5,1]
>>>L.sort( )
[-2,1,2,3,5]
>>>del L[2]
[-2,1,3,5]
6
Les dictionnaires
...... “ctionnaire !”
>>>VIA={"prez":"PBS","cotiz":50} {“prez”:”PBS”,”cotiz”:50}
>>>VIA["prez"]
>>>VIA["cotiz"]
”PBS”
50
>>>VIA.keys( )
>>>VIA.values( )
[”cotiz”,”prez”]
[50,”PBS”]
>>>del VIA["prez"]
{“cotiz”:50}
>>>VIA.clear( )
{}
>>>VIA[42]="réponse"
{42:”réponse”}
7
Les structures de contrôle
1. la structure conditionnelle : if , else, elif ,pass
>>> x=0
>>> if x == 0
print
elif x ==
pass
On peut utiliser les opérateurs
else:
logiques and ,or, not
print
ex : if a==b or c!=k :
Attention aux conditions
a==b a!=b a<=b
On peut utiliser in
ex : if n in [1,3,7] :
Attention à la syntaxe !
Indentation et deux-points
Deux-points !
:
"ce nombre est nul
'centrale':
'inconnu'
ce nombre est nul
Indentation !
8
Les structures de contrôle
2. les boucles FOR
Effectuer une action pour
chaque élément d'un ensemble.
>>> Liste=["a","b","c"]
>>> for i in Liste:
print i
a
b
c
range(a,b,c) : liste de a à b-1 >>>range(0,6,2)
par pas de c
[0,2,4]
>>>range(7)
si a>b on obtient la liste vide [] [0,1,2,3,4,5,6]
Attention à la syntaxe !
>>> for i in range(7):
print i
0
1
...
9
Les structures de contrôle
3. les boucles WHILE
Agir tant qu'une condition est
vraie
break : sortir de la boucle avant
la fin
Attention aux boucles infinies !
>>> a=0
>>> while a !=20000 :
a+=1
if a > 1000:
break
else:
print a
print "fin"
>>> while True :
pass
Attention à la syntaxe !
10
Définir une fonction
def affiche(i,j):
print i,j
2 points
indentation
>>>affiche(1,2)
1 2
11
Bien programmer ... ou pas !
def
f(d,f):
for k in range(d,f):
s=1
for j in range(2,(k/2)+1):
if k%j==0:
s=j+s
if s==k:
print k, " "
PAS BIEN !!!
– Noms de variables incompréhensibles
– On ne sait pas ce que fait la fonction
12
Bien programmer ...
=)
def nombre_parfait(debut,fin):
"""recherche de nombres parfaits
arguments:
debut borne inférieure
fin borne supérieure
résultat:
liste des nombres parfaits entre début et fin
"""
for test in range(debut,fin): #On parcourt tous les
nombres de l'intervalle
somme=1
for diviseur in range(2,(test/2)+1):
if test%diviseur==0:
somme+=diviseur
if somme==test:
print test, " "
13
Entrées au clavier
input
raw_input
Une entrée valable pour Python
Conversion sous forme de string
>>>entree=input("Votre nom")
Votre nom JPRey
>>>entree=input("Votre nom")
Votre nom JPRey
Traceback (most recent call last):
File "<pyshell#0>", line 1, in
<module>
entree=input("Votre Nom")
File "<string>", line 1, in <module>
NameError: name 'JPRey' is not defined
>>>print entree
JPRey
>>>entree=input("Votre nom")
Votre nom "JPRey"
>>>print entree
JPRey
14
La gestion des fichiers
Ouvrir un fichier : la fonction file( )
>>>f=file(“C:\toto.txt”,”r”)
Récupérer son contenu
>>>contenu=f.read( )
>>>print contenu
“toto a été têtu”
avec la fonction .read( )
Ecrire dans le fichier
avec la fonction .write(“texte” )
>>>f=file(“C:\toto.txt”,”w”)
>>>f.write(“Obi-Wan Kenobi”)
Attention : toujours fermer le fichier
>>>f.close()
avec la fonction .close( )
15
La gestion des erreurs
Une erreur : quelque chose que python ne comprend pas
Il existe plusieurs types d'erreurs
ZeroDivisionErrror
TypeError
ValueError
ArithmeticError
IOError
Ce qu'on veut : filtrer les erreurs pour que le programme continue de
fonctionner en cas d'erreur
16
La gestion des erreurs
Un exemple sans filtrage d'erreur
filename = raw_input("Veuillez entrer un nom de fichier: ")
f = open(filename,"r")
>>>
Veuillez entrer un nom de fichier: exrcices
Traceback (most recent call last):
File "<pyshell#11>", line 1, in -toplevelopen('exrcices','r')
IOError: [Errno 2] No such file or directory: 'exrcices'
>>>
17
La gestion des erreurs
Une solution : l'instruction try ... except
filename = raw_input("Veuillez entrer un nom de fichier: ")
try:
f = open(filename,"r")
except IOError:
print "Le fichier ", filename, "est introuvable"
>>>
Veuillez entrer un nom de fichier: exrcices
Le fichier exrcices est introuvable
Remarque: except seul s'applique à toutes les erreurs
18
Les modules
Un module est un fichier .py contenant des fonctions et des constantes
Exemple: dans string.py:
# Capitalize a string, e.g. "aBc
def capitalize(s): (...)
dEf" -> "Abc
def".
Exemple: le module math
Comment utiliser un module ?
Importer le module
import math
Utiliser une fonction du module importé
y = math.sin(x)
Ou importer toutes les fonctions du module pour les utiliser dans le code:
from math import *
y = sin(x)
t = cos(x)
Ou seulement certaines fonctions:
from math import sin, cos
19
Des questions ?
Retrouvez ces diapositives sur
http://people.via.ecp.fr/~louen/formations
20
Téléchargement