Upload
hakhanh
View
218
Download
0
Embed Size (px)
Citation preview
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Algorithmique et traduction Python
BOUKARI Abdel-Ilahhttp://boukari.abdelilah.free.fr
Stage d’établissement : Lycée Jean Lurçat Perpignan19 mai 2010
19 août 2011
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Plan
1 Les variablesLes différents typesaffectation multipleLes entrées, sortiesLes variables numériquesLes opérateurs booléens
2 Les séquencesLes chaînes de caractèresLes listesLes tuplesLes dictionnairesLes ensembles
3 Les instructionsconditionnelles et itératives
L’instruction ifL’instruction if - elseif - else multipleL’instruction whileL’instruction for
4 Les fonctionsDirective lambdaLes fonctions map et filter
5 Les modulesLe module randomnumpy, scipy et pylabSymPy, NetworkX
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Introduction
DescriptionPython est un langage de programmation facile à utiliser etpuissant,il peut être utilisé en tant que langage de programmationfonctionnelle qu’orienté objet,son typage est dynamique,il est multiplateforme,idéal pour écrire de petits scripts et vérifier au fur et à mesureles erreurs éventuelles de syntaxes ou de logique,open-source et extensible.
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Introduction
DescriptionPython est un langage de programmation facile à utiliser etpuissant,il peut être utilisé en tant que langage de programmationfonctionnelle qu’orienté objet,son typage est dynamique,il est multiplateforme,idéal pour écrire de petits scripts et vérifier au fur et à mesureles erreurs éventuelles de syntaxes ou de logique,open-source et extensible.
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Introduction
DescriptionPython est un langage de programmation facile à utiliser etpuissant,il peut être utilisé en tant que langage de programmationfonctionnelle qu’orienté objet,son typage est dynamique,il est multiplateforme,idéal pour écrire de petits scripts et vérifier au fur et à mesureles erreurs éventuelles de syntaxes ou de logique,open-source et extensible.
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Introduction
DescriptionPython est un langage de programmation facile à utiliser etpuissant,il peut être utilisé en tant que langage de programmationfonctionnelle qu’orienté objet,son typage est dynamique,il est multiplateforme,idéal pour écrire de petits scripts et vérifier au fur et à mesureles erreurs éventuelles de syntaxes ou de logique,open-source et extensible.
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Introduction
DescriptionPython est un langage de programmation facile à utiliser etpuissant,il peut être utilisé en tant que langage de programmationfonctionnelle qu’orienté objet,son typage est dynamique,il est multiplateforme,idéal pour écrire de petits scripts et vérifier au fur et à mesureles erreurs éventuelles de syntaxes ou de logique,open-source et extensible.
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Introduction
DescriptionPython est un langage de programmation facile à utiliser etpuissant,il peut être utilisé en tant que langage de programmationfonctionnelle qu’orienté objet,son typage est dynamique,il est multiplateforme,idéal pour écrire de petits scripts et vérifier au fur et à mesureles erreurs éventuelles de syntaxes ou de logique,open-source et extensible.
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les différents typesaffectation multipleLes entrées, sortiesLes variables numériquesLes opérateurs booléens
DéfinitionLes informations (numériques ou chaînes) peuvent être mémoriséessous forme de constantes (numériques ou chaînes) dans diverses"boîtes" appelées variables. Chaque variable a un nom pourl’identifier : c’est l’identificateur de la variable.
Un nom de variable est une séquence de lettres et de chiffres,qui doit toujours commencer par une lettre.Les lettres accentuées, les cédilles, les espaces, les caractèresspéciaux sont interdits, à l’exception du caractère (souligné).vaR et var sont deux noms de variables différentes. (La casseest significative)Certains mots sont interdits, car réservés à Python : and -assert - break - class - continue - def - del - elif - else - except- exec - finally - for - from - global - if - import - is - lambda -not - or - pass - raise - return - try - while - yield
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les différents typesaffectation multipleLes entrées, sortiesLes variables numériquesLes opérateurs booléens
DéfinitionLes informations (numériques ou chaînes) peuvent être mémoriséessous forme de constantes (numériques ou chaînes) dans diverses"boîtes" appelées variables. Chaque variable a un nom pourl’identifier : c’est l’identificateur de la variable.
Un nom de variable est une séquence de lettres et de chiffres,qui doit toujours commencer par une lettre.Les lettres accentuées, les cédilles, les espaces, les caractèresspéciaux sont interdits, à l’exception du caractère (souligné).vaR et var sont deux noms de variables différentes. (La casseest significative)Certains mots sont interdits, car réservés à Python : and -assert - break - class - continue - def - del - elif - else - except- exec - finally - for - from - global - if - import - is - lambda -not - or - pass - raise - return - try - while - yield
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les différents typesaffectation multipleLes entrées, sortiesLes variables numériquesLes opérateurs booléens
DéfinitionLes informations (numériques ou chaînes) peuvent être mémoriséessous forme de constantes (numériques ou chaînes) dans diverses"boîtes" appelées variables. Chaque variable a un nom pourl’identifier : c’est l’identificateur de la variable.
Un nom de variable est une séquence de lettres et de chiffres,qui doit toujours commencer par une lettre.Les lettres accentuées, les cédilles, les espaces, les caractèresspéciaux sont interdits, à l’exception du caractère (souligné).vaR et var sont deux noms de variables différentes. (La casseest significative)Certains mots sont interdits, car réservés à Python : and -assert - break - class - continue - def - del - elif - else - except- exec - finally - for - from - global - if - import - is - lambda -not - or - pass - raise - return - try - while - yield
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les différents typesaffectation multipleLes entrées, sortiesLes variables numériquesLes opérateurs booléens
DéfinitionLes informations (numériques ou chaînes) peuvent être mémoriséessous forme de constantes (numériques ou chaînes) dans diverses"boîtes" appelées variables. Chaque variable a un nom pourl’identifier : c’est l’identificateur de la variable.
Un nom de variable est une séquence de lettres et de chiffres,qui doit toujours commencer par une lettre.Les lettres accentuées, les cédilles, les espaces, les caractèresspéciaux sont interdits, à l’exception du caractère (souligné).vaR et var sont deux noms de variables différentes. (La casseest significative)Certains mots sont interdits, car réservés à Python : and -assert - break - class - continue - def - del - elif - else - except- exec - finally - for - from - global - if - import - is - lambda -not - or - pass - raise - return - try - while - yield
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les différents typesaffectation multipleLes entrées, sortiesLes variables numériquesLes opérateurs booléens
Les variables : les différents types
On distingue essentiellement, sous Python, les types suivants :le type entier,le type entier long,le type complexe,le type chaîne,le type booléen,le type liste,le type tuple,le type dictionnaire,le type ensemble.
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les différents typesaffectation multipleLes entrées, sortiesLes variables numériquesLes opérateurs booléens
Les variables : les différents types
On distingue essentiellement, sous Python, les types suivants :le type entier,le type entier long,le type complexe,le type chaîne,le type booléen,le type liste,le type tuple,le type dictionnaire,le type ensemble.
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les différents typesaffectation multipleLes entrées, sortiesLes variables numériquesLes opérateurs booléens
Les variables : les différents types
On distingue essentiellement, sous Python, les types suivants :le type entier,le type entier long,le type complexe,le type chaîne,le type booléen,le type liste,le type tuple,le type dictionnaire,le type ensemble.
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les différents typesaffectation multipleLes entrées, sortiesLes variables numériquesLes opérateurs booléens
Les variables : les différents types
On distingue essentiellement, sous Python, les types suivants :le type entier,le type entier long,le type complexe,le type chaîne,le type booléen,le type liste,le type tuple,le type dictionnaire,le type ensemble.
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les différents typesaffectation multipleLes entrées, sortiesLes variables numériquesLes opérateurs booléens
Les variables : les différents types
On distingue essentiellement, sous Python, les types suivants :le type entier,le type entier long,le type complexe,le type chaîne,le type booléen,le type liste,le type tuple,le type dictionnaire,le type ensemble.
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les différents typesaffectation multipleLes entrées, sortiesLes variables numériquesLes opérateurs booléens
Les variables : les différents types
On distingue essentiellement, sous Python, les types suivants :le type entier,le type entier long,le type complexe,le type chaîne,le type booléen,le type liste,le type tuple,le type dictionnaire,le type ensemble.
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les différents typesaffectation multipleLes entrées, sortiesLes variables numériquesLes opérateurs booléens
Les variables : les différents types
On distingue essentiellement, sous Python, les types suivants :le type entier,le type entier long,le type complexe,le type chaîne,le type booléen,le type liste,le type tuple,le type dictionnaire,le type ensemble.
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les différents typesaffectation multipleLes entrées, sortiesLes variables numériquesLes opérateurs booléens
Les variables : les différents types
On distingue essentiellement, sous Python, les types suivants :le type entier,le type entier long,le type complexe,le type chaîne,le type booléen,le type liste,le type tuple,le type dictionnaire,le type ensemble.
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les différents typesaffectation multipleLes entrées, sortiesLes variables numériquesLes opérateurs booléens
Les variables : les différents types
On distingue essentiellement, sous Python, les types suivants :le type entier,le type entier long,le type complexe,le type chaîne,le type booléen,le type liste,le type tuple,le type dictionnaire,le type ensemble.
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les différents typesaffectation multipleLes entrées, sortiesLes variables numériquesLes opérateurs booléens
Les variables : l’affectation 1/5
Traduction algorithmique
Variable
i,j:entierbidule:flottant
Début
j ← 20
i ← 2*j
Fin
Traduction sous PythonOn affecte une variable par unevaleur en utilisant le signe =(qui n’a rien à voir avecl’égalité en math !).Dans une affectation, lemembre de gauche reçoit lemembre de droite (ce quinécessite deux temps d’horlogedifférents). Sous Python, letypage est dynamique.
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les différents typesaffectation multipleLes entrées, sortiesLes variables numériquesLes opérateurs booléens
Les variables : l’affectation 1/5
Traduction algorithmique
Variable
i,j:entierbidule:flottant
Début
j ← 20
i ← 2*j
Fin
Traduction sous PythonOn affecte une variable par unevaleur en utilisant le signe =(qui n’a rien à voir avecl’égalité en math !).Dans une affectation, lemembre de gauche reçoit lemembre de droite (ce quinécessite deux temps d’horlogedifférents). Sous Python, letypage est dynamique.
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les différents typesaffectation multipleLes entrées, sortiesLes variables numériquesLes opérateurs booléens
Les variables : l’affectation 1/5
Traduction algorithmique
Variable
i,j:entierbidule:flottant
Début
j ← 20
i ← 2*j
Fin
Traduction sous PythonOn affecte une variable par unevaleur en utilisant le signe =(qui n’a rien à voir avecl’égalité en math !).Dans une affectation, lemembre de gauche reçoit lemembre de droite (ce quinécessite deux temps d’horlogedifférents). Sous Python, letypage est dynamique.
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les différents typesaffectation multipleLes entrées, sortiesLes variables numériquesLes opérateurs booléens
L’affectation 2/5
L’affectation a un effet mais pas de valeur :
1 >>> a=123>>>
La comparaison a une valeur mais n’a pas d’effet :
>>> a,b=1,2 # affectation multiple>>> a==b
3 False>>>
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les différents typesaffectation multipleLes entrées, sortiesLes variables numériquesLes opérateurs booléens
L’affectation 2/5
L’affectation a un effet mais pas de valeur :
1 >>> a=123>>>
La comparaison a une valeur mais n’a pas d’effet :
>>> a,b=1,2 # affectation multiple>>> a==b
3 False>>>
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les différents typesaffectation multipleLes entrées, sortiesLes variables numériquesLes opérateurs booléens
L’affectation 3/5
Exemples :
1 >>> a=123>>> print a, type(a)123 <type ’int’>>>> b=123**10>>> print b, type(b)
6 792594609605189126649 <type ’long’>>>> c=3+1j>>> print c, type(c)(3+1j) <type ’complex ’>>>> ch="Plante"
11 >>> print ch , type(ch)Plante <type ’str’>
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les différents typesaffectation multipleLes entrées, sortiesLes variables numériquesLes opérateurs booléens
L’affectation 4/5
>>> B=(5<3)>>> print B, type(B)
3 False <type ’bool’>>>> liste =[1,2,3]>>> print liste , type(liste)[1, 2, 3] <type ’list’>>>> t=(1,2,3)
8 >>> print t, type(t)(1, 2, 3) <type ’tuple ’>>>> dico ={}>>> print dico , type(dico){} <type ’dict’>
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les différents typesaffectation multipleLes entrées, sortiesLes variables numériquesLes opérateurs booléens
L’affectation multiple 5/5
Python, contrairement aux autres langages de programmation, offrela possibilté d’affecter plusieurs variables à la fois.
>>> a, b, c = 1, 2, 32 >>> a1>>> b2>>> c
7 3>>> d=e=f=13>>> d13>>> e
12 13
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les différents typesaffectation multipleLes entrées, sortiesLes variables numériquesLes opérateurs booléens
L’affectation multiple 5/5
Python, contrairement aux autres langages de programmation, offrela possibilté d’affecter plusieurs variables à la fois.
>>> a, b, c = 1, 2, 32 >>> a1>>> b2>>> c
7 3>>> d=e=f=13>>> d13>>> e
12 13
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les différents typesaffectation multipleLes entrées, sortiesLes variables numériquesLes opérateurs booléens
Les entrées
• L’instruction raw input() effectue toujours une saisie en modetexte que l’on peut ensuite transtyper :
>>> f1=raw_input("Entrer un flottant : ")2 Entrer un flottant : 3.14>>> f1 + 13Traceback (most recent call last):
File "<stdin >", line 1, in <module >TypeError: cannot concatenate ’str’ and ’int’
objects7 >>> float(f1)+1316.140000000000001>>> print float(f1)+1114.14>>>
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les différents typesaffectation multipleLes entrées, sortiesLes variables numériquesLes opérateurs booléens
Les entrées
• Ou plus brièvement :
>>> f2=float(raw_input("Entrer un flottant : "))Entrer un flottant : 3.14>>> print f2+11
4 14.14>>>
• Ou encore :
>>> a=input("Entrer un nombre : ")Entrer un nombre : 5.12>>> a+5.1110.23
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les différents typesaffectation multipleLes entrées, sortiesLes variables numériquesLes opérateurs booléens
Les entrées
• Ou plus brièvement :
1 >>> f2=float(raw_input("Entrer un flottant : "))Entrer un flottant : 3.14>>> print f2+1114.14>>>
• Ou encore :
>>> a=input("Entrer un nombre : ")Entrer un nombre : 5.12>>> a+5.1110.23
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les différents typesaffectation multipleLes entrées, sortiesLes variables numériquesLes opérateurs booléens
Les sorties
• L’instruction print permet d’afficher des sorties à l’écran :
1 >>> a=3>>> b=5>>> print a3>>> print "Somme :", a+b
6 Somme : 8>>> print "Différence :", a-bDifférence : -2>>> print "Produit :", a*bProduit : 15
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les différents typesaffectation multipleLes entrées, sortiesLes variables numériquesLes opérateurs booléens
Variables numériques :
Les priorités opératoires sur les variables numériques sontrespectées. Le symbole de la multiplication est noté (*). Celui del’exponentiation est noté (**). Le nombre complexe i est noté 1j(Notation des physiciens). Pour utiliser les fonctions mathématiquescourantes il faut d’abord importer un module dédié à cà : c’est lemodule (ou bibliothèque) math.
>>> 3 - 7*(5 - 3)**2-25>>> 7/2 # Division entière3
5 >>> 7/2.03.5
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les différents typesaffectation multipleLes entrées, sortiesLes variables numériquesLes opérateurs booléens
Variables numériques :
Les priorités opératoires sur les variables numériques sontrespectées. Le symbole de la multiplication est noté (*). Celui del’exponentiation est noté (**). Le nombre complexe i est noté 1j(Notation des physiciens). Pour utiliser les fonctions mathématiquescourantes il faut d’abord importer un module dédié à cà : c’est lemodule (ou bibliothèque) math.
>>> 3 - 7*(5 - 3)**2-25>>> 7/2 # Division entière
4 3>>> 7/2.03.5
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les différents typesaffectation multipleLes entrées, sortiesLes variables numériquesLes opérateurs booléens
Variables numériques :
Les priorités opératoires sur les variables numériques sontrespectées. Le symbole de la multiplication est noté (*). Celui del’exponentiation est noté (**). Le nombre complexe i est noté 1j(Notation des physiciens). Pour utiliser les fonctions mathématiquescourantes il faut d’abord importer un module dédié à cà : c’est lemodule (ou bibliothèque) math.
>>> 3 - 7*(5 - 3)**2-25>>> 7/2 # Division entière
4 3>>> 7/2.03.5
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les différents typesaffectation multipleLes entrées, sortiesLes variables numériquesLes opérateurs booléens
Variables numériques :
Les priorités opératoires sur les variables numériques sontrespectées. Le symbole de la multiplication est noté (*). Celui del’exponentiation est noté (**). Le nombre complexe i est noté 1j(Notation des physiciens). Pour utiliser les fonctions mathématiquescourantes il faut d’abord importer un module dédié à cà : c’est lemodule (ou bibliothèque) math.
>>> 3 - 7*(5 - 3)**2-25>>> 7/2 # Division entière
4 3>>> 7/2.03.5
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les différents typesaffectation multipleLes entrées, sortiesLes variables numériquesLes opérateurs booléens
Variables numériques :
Les priorités opératoires sur les variables numériques sontrespectées. Le symbole de la multiplication est noté (*). Celui del’exponentiation est noté (**). Le nombre complexe i est noté 1j(Notation des physiciens). Pour utiliser les fonctions mathématiquescourantes il faut d’abord importer un module dédié à cà : c’est lemodule (ou bibliothèque) math.
>>> 3 - 7*(5 - 3)**2-25>>> 7/2 # Division entière
4 3>>> 7/2.03.5
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les différents typesaffectation multipleLes entrées, sortiesLes variables numériquesLes opérateurs booléens
Les variables numériques
>>> 23%32>>> (2 + 3j)**3
4 (-46+9j)>>> (5+1j)/(3-2j)(1+1j)>>> z=complex (1,1)>>> z
9 (1+1j)>>> z.real , z.imag(1.0, 1.0)>>> z.conjugate ()(1-1j)
14 >>>
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les différents typesaffectation multipleLes entrées, sortiesLes variables numériquesLes opérateurs booléens
Calculs numériques 1/2
1 >>> log(3)Traceback (most recent
call last):File "<stdin >", line
1, in <module >NameError: name ’log’
is not defined>>> from math import *
6 >>> e2.7182818284590451>>> pi3.1415926535897931>>>
>>> pow(5,2)25.0>>> hypot (3,4)
4 5.0>>> sqrt (2)1.4142135623730951>>> divmod (17,3)(5, 2)
9 >>> degrees(pi)180.0>>> radians (180)3.1415926535897931>>>
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les différents typesaffectation multipleLes entrées, sortiesLes variables numériquesLes opérateurs booléens
Calculs numériques 2/2
1 >>> sin(pi/2)1.0>>> cos(pi)-1.0>>> tan(pi/4)
6 0.99999999999999989>>> print tan(pi/4)1.0>>> acos (1)0.0
11 >>> atan (1)0.78539816339744828>>>
>>> exp(1)2 2.7182818284590451>>> abs(-3)3>>> floor (3.1)3.0
7 >>> floor (3.8)3.0>>> log10 (10)1.0>>> log(5,2)
12 2.3219280948873622>>>
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les différents typesaffectation multipleLes entrées, sortiesLes variables numériquesLes opérateurs booléens
Opérateurs de comparaison
1 >>> a, b, c = 1, 2, 3>>> c, d, f = 1, 5, 7>>> a == c # a égale cTrue>>> a != b # a différent de b
6 True>>> b < aFalse>>> b >= cTrue
11 >>> c <= dTrue>>>
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les différents typesaffectation multipleLes entrées, sortiesLes variables numériquesLes opérateurs booléens
Opérateurs booléens
>>> b1=(5 > 2)2 >>> b2=(3 < 1)>>> b3=(-1 < 0)>>> not b1False>>> b1 or b2
7 True>>> b1 and b3True>>> not not b1True
12 >>> not (b1 and b2)True>>>
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les chaînes de caractèresLes listesLes tuplesLes dictionnairesLes ensembles
Les chaînes de caractères
Trois notations disponibles :Les guillemets permettent d’inclure des apostrophes :
1 >>> c1 = "L’eau trouble">>> c1"L’eau trouble">>> print c1L’eau trouble
Les apostrophes permettent d’inclure des guillemets :
>>> c2 = ’Eau "froide"’>>> print c2Eau "froide"
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les chaînes de caractèresLes listesLes tuplesLes dictionnairesLes ensembles
Les chaînes de caractères
Trois notations disponibles :Les guillemets permettent d’inclure des apostrophes :
>>> c1 = "L’eau trouble"2 >>> c1"L’eau trouble">>> print c1L’eau trouble
Les apostrophes permettent d’inclure des guillemets :
>>> c2 = ’Eau "froide"’>>> print c2Eau "froide"
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les chaînes de caractèresLes listesLes tuplesLes dictionnairesLes ensembles
Les chaînes de caractères
Trois notations disponibles :Les guillemets permettent d’inclure des apostrophes :
>>> c1 = "L’eau trouble"2 >>> c1"L’eau trouble">>> print c1L’eau trouble
Les apostrophes permettent d’inclure des guillemets :
>>> c2 = ’Eau "froide"’>>> print c2Eau "froide"
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les chaînes de caractèresLes listesLes tuplesLes dictionnairesLes ensembles
Les triples guillemets ou triples apostrophes conservent la miseen page (lignes multiples) :
>>> c3 = """ Usage :2 -h : help-q : quit """>>> c3’Usage :\n-h : help\n-q : quit’>>> print c3
7 Usage :-h : help-q : quit
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les chaînes de caractèresLes listesLes tuplesLes dictionnairesLes ensembles
Opérations sur les chaînes de caractères
La longueur :
1 >>> ch1 = "abracadabra">>> len(ch1)11>>> ch2="bla bla">>> len(ch2)
6 7
La concaténation :
>>> s1="Valeur" ; s2="décimale" ; s3=" décimale">>> print "s1+s2: %s \ns1+s3: %s" %(s1+s2,s1+s3)s1+s2: Valeurdécimale
4 s1+s3: Valeur décimaleBOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les chaînes de caractèresLes listesLes tuplesLes dictionnairesLes ensembles
Opérations sur les chaînes de caractères
La longueur :
1 >>> ch1 = "abracadabra">>> len(ch1)11>>> ch2="bla bla">>> len(ch2)
6 7
La concaténation :
>>> s1="Valeur" ; s2="décimale" ; s3=" décimale">>> print "s1+s2: %s \ns1+s3: %s" %(s1+s2,s1+s3)s1+s2: Valeurdécimale
4 s1+s3: Valeur décimaleBOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les chaînes de caractèresLes listesLes tuplesLes dictionnairesLes ensembles
Répétition :
1 >>> s4="dé">>> s5=s4*5>>> print s5dédédédédé>>> s6="dé "*5
6 >>> print s6dé dé dé dé dé
La méthode find() : Donne la position d’une sous-chaîne dansla chaîne
>>> s7="abracadabra">>> s7.find(’bra’), s7.find(’bra’ ,2)
3 (1, 8)
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les chaînes de caractèresLes listesLes tuplesLes dictionnairesLes ensembles
Répétition :
>>> s4="dé"2 >>> s5=s4*5>>> print s5dédédédédé>>> s6="dé "*5>>> print s6
7 dé dé dé dé dé
La méthode find() : Donne la position d’une sous-chaîne dansla chaîne
>>> s7="abracadabra">>> s7.find(’bra’), s7.find(’bra’ ,2)
3 (1, 8)
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les chaînes de caractèresLes listesLes tuplesLes dictionnairesLes ensembles
La méthode count() :
>>> ch="abracadabra"2 >>> ch.count(’a’), ch.count(’b’), ch.count(’c’)(5, 2, 1)
La méthode replace() :
>>> s8="Plaine"2 >>> s8.replace("Pl","Dom")’Domaine ’>>> s9=s8.replace(’Pl’,’Dom’)>>> print s9Domaine
7 >>>
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les chaînes de caractèresLes listesLes tuplesLes dictionnairesLes ensembles
La méthode count() :
>>> ch="abracadabra"2 >>> ch.count(’a’), ch.count(’b’), ch.count(’c’)(5, 2, 1)
La méthode replace() :
>>> s8="Plaine"2 >>> s8.replace("Pl","Dom")’Domaine ’>>> s9=s8.replace(’Pl’,’Dom’)>>> print s9Domaine
7 >>>
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les chaînes de caractèresLes listesLes tuplesLes dictionnairesLes ensembles
L’indiçage : On indique, entre crochets, la position d’uncaractère par un indice qui commence à partir de 0
>>> ch="Printemps"2 >>> ch[0], ch[1], ch[-1], ch[-2](’P’, ’r’, ’s’, ’p’)
On peut extraire une sous-chaîne par découpage :
>>> ch[0], ch[1], ch[-1], ch[-2]2 (’P’, ’r’, ’s’, ’p’)>>> ch[2:5] , ch[:5], ch[5:](’int’, ’Print ’, ’emps’)
Les chaînes de caractères ne sont pas modifiables !
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les chaînes de caractèresLes listesLes tuplesLes dictionnairesLes ensembles
L’indiçage : On indique, entre crochets, la position d’uncaractère par un indice qui commence à partir de 0
1 >>> ch="Printemps">>> ch[0], ch[1], ch[-1], ch[-2](’P’, ’r’, ’s’, ’p’)
On peut extraire une sous-chaîne par découpage :
>>> ch[0], ch[1], ch[-1], ch[-2]2 (’P’, ’r’, ’s’, ’p’)>>> ch[2:5] , ch[:5], ch[5:](’int’, ’Print ’, ’emps’)
Les chaînes de caractères ne sont pas modifiables !
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les chaînes de caractèresLes listesLes tuplesLes dictionnairesLes ensembles
Formatage (1/3) : il permet de contrôler finement l’affichage
1 >>> n=100>>> "%d en base 10 : %d" %(n,n)’100 en base 10 : 100’>>> "%d en base 8 : %o " %(n,n)’100 en base 8 : 144 ’
6 >>> "%d en base 16 : %x" %(n,n)’100 en base 16 : 64’
Formatage (2/3) :
>>> pi = 3.1415926535897931>>> print "%4.2f" %(pi) # 3.14
3 >>> print "%.4e" %(pi) # 3.1416e+00
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les chaînes de caractèresLes listesLes tuplesLes dictionnairesLes ensembles
Formatage (1/3) : il permet de contrôler finement l’affichage
>>> n=1002 >>> "%d en base 10 : %d" %(n,n)’100 en base 10 : 100’>>> "%d en base 8 : %o " %(n,n)’100 en base 8 : 144 ’>>> "%d en base 16 : %x" %(n,n)
7 ’100 en base 16 : 64’
Formatage (2/3) :
>>> pi = 3.1415926535897931>>> print "%4.2f" %(pi) # 3.14
3 >>> print "%.4e" %(pi) # 3.1416e+00
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les chaînes de caractèresLes listesLes tuplesLes dictionnairesLes ensembles
Formatage : (3/3)
>>> a=123.4567892 >>> b=13>>> print "On trouve a=%f et b=%d" %(a,b)On trouve a=123.456789 et b=13>>> print "On trouve a=%.2f " %(a)On trouve a=123.46
7 >>> print "On trouve a=%e \n et b=%d" %(a,b)On trouve a=1.234568e+02et b=13
>>> ch="Python">>> print "%s est le numéro %d" %(ch ,1)
12 Python est le numéro 1>>>
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les chaînes de caractèresLes listesLes tuplesLes dictionnairesLes ensembles
Les listes (1/5)
DéfinitionCollection hétérogène, ordonnée et modifiable d’éléments séparéspar des virgules, et entourée de crochets.
>>> couleurs =[’bleu’,’blanc ’,’rouge’]2 >>> print couleurs[’bleu’, ’blanc ’, ’rouge’]>>> print couleurs [0]bleu>>> couleurs [2]=’jaune ’
7 >>> print couleurs[’bleu’, ’blanc ’, ’jaune’]>>>
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les chaînes de caractèresLes listesLes tuplesLes dictionnairesLes ensembles
Les listes (2/5)
1 >>> liste0 =[]>>> print liste0[]>>> liste1 =[’a’,’b’]>>> liste2 =[3 ,5.18]
6 >>> liste3 =[liste1 ,liste2]>>> print liste3[[’a’, ’b’], [3, 5.18]]>>> liste4 =["f" ,3,5.13,(5>7) ,52e4]>>> print liste4
11 [’f’, 3, 5.13, False , 520000.0]
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les chaînes de caractèresLes listesLes tuplesLes dictionnairesLes ensembles
Les listes (3/5) : les méthodes
• Mêmes notations que pour les chaînes de caractères :
>>> nombres =[18 ,10 ,27 ,35 ,15]>>> nombres.sort()
3 >>> nombres[10, 15, 18, 27, 35]>>> nombres.append (23)>>> nombres[10, 15, 18, 27, 35, 23]
8 >>> nombres.reverse (); print nombres[23, 35, 27, 18, 15, 10]>>> nombres.index (15)4>>> nombres.remove (18); print nombres
13 [23, 35, 27, 15, 10]
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les chaînes de caractèresLes listesLes tuplesLes dictionnairesLes ensembles
Les listes (4/5) : indiçage
• Indiçage :
>>> nombres = [17, 38, 10, 25, 72]2 >>> nombres [1:3][38, 10]>>> nombres [:2][17, 38]>>> nombres [2:]
7 [10, 25, 72]>>> nombres [:][17, 38, 10, 25, 72]>>> nombres [-1]72
12 >>> nombres[-len(nombres)]17
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les chaînes de caractèresLes listesLes tuplesLes dictionnairesLes ensembles
Les listes (5/5) : initialisations
• Utilisation de la répétition et de l’instruction range() :
>>> liste =[0.0]*52 >>> liste[0.0, 0.0, 0.0, 0.0, 0.0]>>> range (7)[0, 1, 2, 3, 4, 5, 6]>>> range (5,10)
7 [5, 6, 7, 8, 9]>>> range (3,15,3)[3, 6, 9, 12]>>> print 15 in range (3,15,3)False
12 >>>
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les chaînes de caractèresLes listesLes tuplesLes dictionnairesLes ensembles
Les tuples
DéfinitionCollection hétérogène, ordonnée et non modifiable d’élémentsséparés par des virgules, et entourée de parenthèses.
>>> tuple=(’b’ ,3,[1,5])>>> print tuple
3 (’b’, 3, [1, 5])>>> tuple=[’b’ ,3,[1,5]]>>> tuple [2][1]5
• Les tuples s’utilisent comme les listes mais leur parcours est plusrapide• Comme les chaînes, les tuples ne sont pas modifiables !
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les chaînes de caractèresLes listesLes tuplesLes dictionnairesLes ensembles
Les tuples
DéfinitionCollection hétérogène, ordonnée et non modifiable d’élémentsséparés par des virgules, et entourée de parenthèses.
>>> tuple=(’b’ ,3,[1,5])>>> print tuple(’b’, 3, [1, 5])
4 >>> tuple=[’b’ ,3,[1,5]]>>> tuple [2][1]5
• Les tuples s’utilisent comme les listes mais leur parcours est plusrapide• Comme les chaînes, les tuples ne sont pas modifiables !
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les chaînes de caractèresLes listesLes tuplesLes dictionnairesLes ensembles
Les tuples
DéfinitionCollection hétérogène, ordonnée et non modifiable d’élémentsséparés par des virgules, et entourée de parenthèses.
>>> tuple=(’b’ ,3,[1,5])>>> print tuple(’b’, 3, [1, 5])
4 >>> tuple=[’b’ ,3,[1,5]]>>> tuple [2][1]5
• Les tuples s’utilisent comme les listes mais leur parcours est plusrapide• Comme les chaînes, les tuples ne sont pas modifiables !
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les chaînes de caractèresLes listesLes tuplesLes dictionnairesLes ensembles
Les tuples
DéfinitionCollection hétérogène, ordonnée et non modifiable d’élémentsséparés par des virgules, et entourée de parenthèses.
>>> tuple=(’b’ ,3,[1,5])>>> print tuple(’b’, 3, [1, 5])
4 >>> tuple=[’b’ ,3,[1,5]]>>> tuple [2][1]5
• Les tuples s’utilisent comme les listes mais leur parcours est plusrapide• Comme les chaînes, les tuples ne sont pas modifiables !
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les chaînes de caractèresLes listesLes tuplesLes dictionnairesLes ensembles
Les dictionnaires
DéfinitionCollection de couples clé : valeur entourée d’accolades.
>>> dico ={}>>> dico[’if’]=’si’>>> dico[’for’]=’pour’
4 >>> dico[’while’]=’tant que’>>> dico[’else’]=’sinon ’>>> dico[’in’]=’dans’>>> print dico{’while’: ’tant que’, ’else’: ’sinon’, ’in’: ’
dans’, ’for’: ’pour’, ’if’: ’si’}9 >>>
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les chaînes de caractèresLes listesLes tuplesLes dictionnairesLes ensembles
Les dictionnaires
DéfinitionCollection de couples clé : valeur entourée d’accolades.
1 >>> dico ={}>>> dico[’if’]=’si’>>> dico[’for’]=’pour’>>> dico[’while’]=’tant que’>>> dico[’else’]=’sinon ’
6 >>> dico[’in’]=’dans’>>> print dico{’while’: ’tant que’, ’else’: ’sinon’, ’in’: ’
dans’, ’for’: ’pour’, ’if’: ’si’}>>>
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les chaînes de caractèresLes listesLes tuplesLes dictionnairesLes ensembles
Dictionnaires : opérations
• Calcul de la longueur et effacement d’une entrée :
1 >>> dico={’a’:1,’b’:2,’c’:3,’d’:4}>>> print dico{’a’: 1, ’c’: 3, ’b’: 2, ’d’: 4}>>> len(dico)4
6 >>> del dico[’d’]>>> dico{’a’: 1, ’c’: 3, ’b’: 2}>>>
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les chaînes de caractèresLes listesLes tuplesLes dictionnairesLes ensembles
Dictionnaires : méthodes
• Les méthodes suivantes sont spécifiques aux dictionnaires :
1 >>> dico={’a’:1,’b’:2,’c’:3,’d’:4}>>> dico.keys()[’a’, ’c’, ’b’, ’d’]>>> dico.values ()[1, 3, 2, 4]
6 >>> dico.items()[(’a’, 1), (’c’, 3), (’b’, 2), (’d’, 4)]>>> dico.has_key(’e’)False>>> dico.has_key(’c’)
11 True
• Les dictionnaires ne sont pas ordonnés. On ne peut pas les indicer.BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les chaînes de caractèresLes listesLes tuplesLes dictionnairesLes ensembles
Dictionnaires : méthodes
• Les méthodes suivantes sont spécifiques aux dictionnaires :
>>> dico={’a’:1,’b’:2,’c’:3,’d’:4}>>> dico.keys()[’a’, ’c’, ’b’, ’d’]
4 >>> dico.values ()[1, 3, 2, 4]>>> dico.items()[(’a’, 1), (’c’, 3), (’b’, 2), (’d’, 4)]>>> dico.has_key(’e’)
9 False>>> dico.has_key(’c’)True
• Les dictionnaires ne sont pas ordonnés. On ne peut pas les indicer.BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les chaînes de caractèresLes listesLes tuplesLes dictionnairesLes ensembles
Les ensembles 1/7
• Un ensemble est un type qui n’est pas ordonné mais qui est sansdoublon.• L’instruction pour définir un ensemble est la fonction intégréeset().
Exemples
>>> ens_1=set ([])>>> ens_1 ; len ([])set ([])
4 0>>> ens_2=set(range (10))>>> ens_2set([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les chaînes de caractèresLes listesLes tuplesLes dictionnairesLes ensembles
Les ensembles 2/7
• Appartenance ou non d’un élément à un ensemble.
>>> ens_3=set(’abcdeabc ’)2 >>> ens_3; len(ens_3)set([’a’, ’c’, ’b’, ’e’, ’d’])5>>> ’a’ in ens_3; ’f’ in ens_3; ’e’ not in ens_3True
7 FalseFalse>>>
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les chaînes de caractèresLes listesLes tuplesLes dictionnairesLes ensembles
Les ensembles 3/7
• Ajout, suppression d’un élément, mise à jour d’un ensemble
>>> ens_4=set(range (11)); ens_4set([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10])>>> ens_4.add (11) ; ens_4
4 set([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11])>>> ens_4.update ([12 ,13]); ens_4set([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
13]) ; ens_4.remove (13)>>> ens_4set([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12])
9 >>> ens_4 - set ([11 ,12])set([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les chaînes de caractèresLes listesLes tuplesLes dictionnairesLes ensembles
Les ensembles 4/7
• Comparaison de deux ensembles.
>>> ens_5=set(’abcde’)2 >>> ens_6 = set(’ebdac ’)>>> ens_6 == ens_5True>>> ens_7=set(’abc’)>>> ens_7 < ens_5 ; ens_5 > ens_7
7 TrueTrue>>> ens_5 != ens_6False>>>
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les chaînes de caractèresLes listesLes tuplesLes dictionnairesLes ensembles
Les ensembles 5/7
• Egalité, inclusion entre ensembles.
>>> ens_5=set(’abcde’)>>> ens_6 = set(’ebdac ’)
3 >>> ens_6 == ens_5True>>> ens_7=set(’abc’)>>> ens_7 < ens_5 ; ens_5 > ens_7True
8 True>>> ens_5 != ens_6False>>>
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les chaînes de caractèresLes listesLes tuplesLes dictionnairesLes ensembles
Les ensembles 6/7
• Union de deux ensembles.
>>> ens_8=set(range (11))>>> ens_9=set(range (5 ,14))
3 >>> print "L’union de %s et %s : %s " %(ens_8 ,ens_9 ,ens_8.union(ens_9))
L’union de set([0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10]) et set([5, 6, 7, 8, 9, 10, 11, 12, 13]): set([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,12, 13])
>>>
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les chaînes de caractèresLes listesLes tuplesLes dictionnairesLes ensembles
Les ensembles 7/7
• Intersection de deux ensembles.
>>> ens_8=set(range (11))>>> ens_9=set(range (5 ,14))
3 >>> ens_8 ; ens_9set([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10])set([5, 6, 7, 8, 9, 10, 11, 12, 13])>>> print "L’intersection de %s et %s est : %s"
%(ens_8 ,ens_9 ,ens_8.intersection(ens_9))L’intersection de set([0, 1, 2, 3, 4, 5, 6, 7,
8, 9, 10]) et set([5, 6, 7, 8, 9, 10, 11, 12,13]) est : set([5, 6, 7, 8, 9, 10])
8 >>>
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les chaînes de caractèresLes listesLes tuplesLes dictionnairesLes ensembles
Indentation : structure>>> x=12>>> if x%2 == 0:... if x%3 == 0:
4 ... if x%7==0:... print
x,’multDe 2,3 et 7’... else :... print
x,’multDe 2et3 ,n.7’... else :
9 ... print x,’multDe 2,pasDe 3’
... else :
... print x,"pasDe2"
12 multDe 2et3 ,n.7BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les chaînes de caractèresLes listesLes tuplesLes dictionnairesLes ensembles
Dictionnaires : itérateurs
DéfinitionLes itérateurs sont des objets spécifiques permettant de parcourirun dictionnaire.
• On peut itérer sur les clés, les valeurs et les items :
>>> dico={’a’:1,’b’:2,’c’:3,’d’:4}>>> for iterCle in dico.iterkeys ():
3 ... print iterCle ,...a c b d>>> for iterVal in dico.itervalues ():... print iterVal ,
8 ...1 3 2 4
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les chaînes de caractèresLes listesLes tuplesLes dictionnairesLes ensembles
Dictionnaires : itérateurs
DéfinitionLes itérateurs sont des objets spécifiques permettant de parcourirun dictionnaire.
• On peut itérer sur les clés, les valeurs et les items :
>>> dico={’a’:1,’b’:2,’c’:3,’d’:4}>>> for iterCle in dico.iterkeys ():... print iterCle ,...
5 a c b d>>> for iterVal in dico.itervalues ():... print iterVal ,...1 3 2 4
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les chaînes de caractèresLes listesLes tuplesLes dictionnairesLes ensembles
>>> for iterItem in dico.iteritems ():... print iterItem ,...(’a’, 1) (’c’, 3) (’b’, 2) (’d’, 4)
5 >>>
Très importantLa présence des deux points : à la fin de l’instruction for estindispensable : il fait parti de la syntaxe de Python.
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les chaînes de caractèresLes listesLes tuplesLes dictionnairesLes ensembles
>>> for iterItem in dico.iteritems ():... print iterItem ,...(’a’, 1) (’c’, 3) (’b’, 2) (’d’, 4)
5 >>>
Très importantLa présence des deux points : à la fin de l’instruction for estindispensable : il fait parti de la syntaxe de Python.
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les chaînes de caractèresLes listesLes tuplesLes dictionnairesLes ensembles
>>> for i in range (10):... print i,...0 1 2 3 4 5 6 7 8 9
5 >>>
Exemple : omission des deux points
>>> for i in range (10)File "<stdin >", line 1
for i in range (10)^
5 SyntaxError: invalid syntax>>>
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les chaînes de caractèresLes listesLes tuplesLes dictionnairesLes ensembles
>>> for i in range (10):... print i,...
4 0 1 2 3 4 5 6 7 8 9>>>
Exemple : omission des deux points
>>> for i in range (10)File "<stdin >", line 1
for i in range (10)^
5 SyntaxError: invalid syntax>>>
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
L’instruction ifL’instruction if - elseif - else multipleL’instruction whileL’instruction for
L’instruction if
• L’instuction if est constituée de trois composantes : le mot clé,l’expression dont on veut tester la véracité et une suite de codes àexécuter si l’expression booléenne est évaluée à 1 ou vraie.
Traduction algorithmique
Début
Si i=0 Alors
Afficher("i est nul")
FinSi
Fin
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
L’instruction ifL’instruction if - elseif - else multipleL’instruction whileL’instruction for
Traduction sous Python
>>> i=0 # typage dynamique>>> if i == 0 :... print " i est nul "
4 ...i est nul
>>>
Remarques :Les deux points après la fin de l’instruction ifL’indentation du bloc associé à celle-ci. Là où d’autreslangages de programmation utilisent des accolades pourdélimiter les blocs d’instuctions, Python utilise l’indentation.
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
L’instruction ifL’instruction if - elseif - else multipleL’instruction whileL’instruction for
Traduction sous Python
>>> i=0 # typage dynamique2 >>> if i == 0 :... print " i est nul "...i est nul
>>>
Remarques :Les deux points après la fin de l’instruction ifL’indentation du bloc associé à celle-ci. Là où d’autreslangages de programmation utilisent des accolades pourdélimiter les blocs d’instuctions, Python utilise l’indentation.
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
L’instruction ifL’instruction if - elseif - else multipleL’instruction whileL’instruction for
Traduction sous Python
>>> i=0 # typage dynamique2 >>> if i == 0 :... print " i est nul "...i est nul
>>>
Remarques :Les deux points après la fin de l’instruction ifL’indentation du bloc associé à celle-ci. Là où d’autreslangages de programmation utilisent des accolades pourdélimiter les blocs d’instuctions, Python utilise l’indentation.
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
L’instruction ifL’instruction if - elseif - else multipleL’instruction whileL’instruction for
• Si l’expression évaluée par if renvoie 0 ou False, c’est le blocdélimité par else qui sera exécuté.
Traduction algorithmique
Variable
b:booléenDébut
Si b=VRAI Alors
Afficher("Ceci")
Sinon
Afficher("Cela")
FinSi
Fin
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
L’instruction ifL’instruction if - elseif - else multipleL’instruction whileL’instruction for
L’instruction if - else
Traduction Python
2 >>> i=13>>> if i%2==0:... print " i est pair "... else :... print " i est impair "
7 ... print " car le reste de sa division par2 n’est pas nul"
...i est impaircar le reste de sa division par 2 n’est pas nul
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
L’instruction ifL’instruction if - elseif - else multipleL’instruction whileL’instruction for
Traduction algorithmique : if - else multiple
Début
Si i=0 Alors
afficher("Nul")
SinonSi i=1 Alors
afficher("Un")
SinonSi i=2 Alors
afficher("Deux")
Sinon
afficher("Ni 0, ni 1, ni 2")
FinSi
Fin
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
L’instruction ifL’instruction if - elseif - else multipleL’instruction whileL’instruction for
L’instruction if - else multiple
Traduction Python
>>> a=0>>> if a > 0:
4 ... print " a est stritement positif"... elif a < 0:... print " a est strictement négatif"... else:... print " a est nul"
9 ...a est nul
>>>
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
L’instruction ifL’instruction if - elseif - else multipleL’instruction whileL’instruction for
Traduction algorithmique : instruction while
Variable
rep:caractèreDébut
rep←’?’
TantQue rep 6=’o’ ET rep6=’n’ Faire
Afficher("Alors ? (o/n)")
Lire(rep)
FinTantQue
Fin
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
L’instruction ifL’instruction if - elseif - else multipleL’instruction whileL’instruction for
L’instruction while
>>> rep= ’?’>>> while (rep != ’o’ and rep != ’n’):... print " Alors ? (o/n) "... rep=raw_input("Entrer votre réponse s’il
vous plaît : ")5 ...
Alors ? (o/n)Entrer votre réponse s’il vous plaît : aAlors ? (o/n)
Entrer votre réponse s’il vous plaît : b10 Alors ? (o/n)
Entrer votre réponse s’il vous plaît : n>>> rep’n’
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
L’instruction ifL’instruction if - elseif - else multipleL’instruction whileL’instruction for
L’instruction while
Traduction Python
1
>>> cpt=0>>> while cpt < 11 :... print cpt **2 ,... cpt = cpt + 1
6 ...0 1 4 9 16 25 36 49 64 81 100>>>
• Remarquez la présence des deux points : après l’instruction whileet l’indentation au même niveau du bloc qui suit et la virgule aprèscpt**2 qui évite le retour à ligne.
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
L’instruction ifL’instruction if - elseif - else multipleL’instruction whileL’instruction for
L’instruction for (1/10)
• La boucle for parcourt tous les éléments d’un itérable et setermine quand tous les éléments sont épuisés.
Traduction algorithmique : instruction for
Début
Afficher("Expliquer ce que l’on va faire ")Pour c variantDe 1 Ã 10 Faire
Ce qu’il faut faire
FinPour
Fin
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
L’instruction ifL’instruction if - elseif - else multipleL’instruction whileL’instruction for
L’instruction for 2/10
Traduction Python
>>> print "Cubes des 10 premiers nombres nonnuls :"
2 Cubes des 10 premiers nombres non nuls :>>> for c in range (1 ,11): # les entiers de 1 à
11, 11 non compris... print c**3,...1 8 27 64 125 216 343 512 729 1000
7 >>>
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
L’instruction ifL’instruction if - elseif - else multipleL’instruction whileL’instruction for
L’instruction for 3/10
Traduction algorithmique : instruction for
Variable
c:entierDébut
Pour c variantDe 1 10 parPasDe 2 Faire
Afficher(Le triple de c)
FinPour
Fin
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
L’instruction ifL’instruction if - elseif - else multipleL’instruction whileL’instruction for
L’instruction for 4/10
Traduction Python
>>> range (1,11,2) # les nombres de 1 à 11 noncompris par pas de 2
[1, 3, 5, 7, 9]3 >>> range(-5,-13,-3)[-5, -8, -11]>>> for c in range (1,11,2) :... print 3*c,...
8 3 9 15 21 27>>>
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
L’instruction ifL’instruction if - elseif - else multipleL’instruction whileL’instruction for
L’instruction for 5/10
Traduction algorithmique : instruction for
Début
Pour chaque élément e dans liste Faire
décoder eexécuter e
FinPour
Fin
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
L’instruction ifL’instruction if - elseif - else multipleL’instruction whileL’instruction for
L’instruction for 6/10
Traduction Python : parcours par élément 1/2
>>> liste=[’Lundi’,’Mardi ’,’Mercredi ’,’Jeudi ’,’Vendredi ’]
>>> for jour in liste :... print jour , "boulot"...
5 Lundi boulotMardi boulotMercredi boulotJeudi boulotVendredi boulot
10 >>>
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
L’instruction ifL’instruction if - elseif - else multipleL’instruction whileL’instruction for
L’instruction for 7/10
Traduction Python : parcours par élément 2/2
>>> tuple = ((1, 2), (1, 3), (2, 4), (3, 2))>>> for (x,y) in tuple :
3 ... print (x,y)," : la somme des carrés ducouple vaut ", x**2+y**2
...(1, 2) : la somme des carrés du couple vaut 5(1, 3) : la somme des carrés du couple vaut 10(2, 4) : la somme des carrés du couple vaut 20
8 (3, 2) : la somme des carrés du couple vaut 13>>>
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
L’instruction ifL’instruction if - elseif - else multipleL’instruction whileL’instruction for
L’instruction for 8/10
Traduction Python : parcours par indice
1 >>> liste=[’Lundi’,’Mardi ’,’Mercredi ’,’Jeudi ’,’Vendredi ’]
>>> for i in range(len(liste)):... print i+1, liste[i]...1 Lundi
6 2 Mardi3 Mercredi4 Jeudi5 Vendredi>>>
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
L’instruction ifL’instruction if - elseif - else multipleL’instruction whileL’instruction for
L’instruction for 9/10
Traduction algorithmique : instruction for
Début
PourChaque clefBval De mondictionnaire Faire
Faire_truc_avec(clef,val)
FinPourChaque
Fin
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
L’instruction ifL’instruction if - elseif - else multipleL’instruction whileL’instruction for
L’instruction for 10/10
Traduction Python : parcours par clé valeur
>>> dico ={13:2 ,15:1 ,11:3 ,8:1 ,20:0}>>> dico{8: 1, 11: 3, 13: 2, 20: 0}
4 >>> for i in dico.keys():... print "La note ",i, " a été obtenue",
dico[i],"fois"...La note 8 a été obtenue 1 foisLa note 11 a été obtenue 3 fois
9 La note 13 a été obtenue 2 foisLa note 20 a été obtenue 0 fois
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
L’instruction ifL’instruction if - elseif - else multipleL’instruction whileL’instruction for
• l’instruction break : permet de sortir immédiatement de la bouclefor ou while en cours contenant l’instruction et passe outre le elseéventuel.
Traduction algorithmique
Début
count← num-1
TantQue nombre count strictement positif Faire
Si Si count divise num Alors
Afficher count
Quitter { sortie de la boucle TanQue }
FinSi
FinTantQue
FinBOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
L’instruction ifL’instruction if - elseif - else multipleL’instruction whileL’instruction for
L’instruction break
Traduction Python
>>> num = 735>>> count = num - 1>>> while count > 0 :... if num % count == 0 :
5 ... print count , "est le plus granddiviseur de", num
... break
... count = count - 1
...245 est le plus grand diviseur de 735
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
L’instruction ifL’instruction if - elseif - else multipleL’instruction whileL’instruction for
L’instruction continue
• Passe immédiatement au début de la boucle for ou while en courscontenant l’instruction ; reprend à la ligne de l’en-tête de la boucle.
Traduction Python
>>> i = 0>>> while i < 5 :... i = i + 1... if i == 2 :
5 ... continue... print i,...1 3 4 5>>>
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
L’instruction ifL’instruction if - elseif - else multipleL’instruction whileL’instruction for
Liste en compréhension (1/3)
DéfinitionUne liste en compréhension est une expression qui permet degénérer une liste d’une manière très compacte. Elle est équivalenteà une boucle for associée à la méthode append qui construirait lamême liste.
Traduction Python
1 >>> [n**2 for n in range (11)][0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100]>>> [c for c in ’pizza’][’p’, ’i’, ’z’, ’z’, ’a’]
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
L’instruction ifL’instruction if - elseif - else multipleL’instruction whileL’instruction for
Liste en compréhension (2/3)
Traduction Python
1 >>> [2*n+7 for n in range (1,11)][9, 11, 13, 15, 17, 19, 21, 23, 25, 27]>>> [x for x in range (21) if x % 2 == 0][0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20]>>> [x**2 for x in range (8) if not x % 2]
6 [0, 4, 16, 36]>>> [x for x in range (1,31) if x % 2 == 0 and x
% 3 == 0][6, 12, 18, 24, 30]>>> [x**2+y**2 for x in range (3) for y in range
(5) if x < y][1, 4, 9, 16, 5, 10, 17, 13, 20]
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
L’instruction ifL’instruction if - elseif - else multipleL’instruction whileL’instruction for
Liste en compréhension (3/3)
La méthode append associée à une boucle for
>>> liste =[]>>> for x in range (3):... for y in range (5):... if x < y :
5 ... liste.append(x**2 + y**2)
...>>> liste[1, 4, 9, 16, 5, 10, 17, 13, 20]>>>
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Directive lambdaLes fonctions map et filter
Les fonctions
DéfinitionGroupe d’instructions regroupé sous un nom et s’exécutant à lademande (appel). Les fonctions sont les éléments structurants debase de tout langage procédural. Une fonction peut afficher quelquechose ou renvoyer une valeur. Le mot clé pour définir une fonctionest def.
Syntaxe Python
def nomDeFonction(arguments) :"chaîneDeDocumentation"<corpsDeLaFonction>
• Le bloc d’instructions est obligatoire. La documentation estfortement conseillée.
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Directive lambdaLes fonctions map et filter
Les fonctions
DéfinitionGroupe d’instructions regroupé sous un nom et s’exécutant à lademande (appel). Les fonctions sont les éléments structurants debase de tout langage procédural. Une fonction peut afficher quelquechose ou renvoyer une valeur. Le mot clé pour définir une fonctionest def.
Syntaxe Python
def nomDeFonction(arguments) :"chaîneDeDocumentation"<corpsDeLaFonction>
• Le bloc d’instructions est obligatoire. La documentation estfortement conseillée.
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Directive lambdaLes fonctions map et filter
Traduction algorithmique
Fonction somme( x,y:entier ):entierDébut
Retourner x+y
Fin
L’instruction returnreturn [expression] arrête la fonction concernée et renvoie la valeurde expression comme résultat de l’appel à la fonction.
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Directive lambdaLes fonctions map et filter
Exemples : (1/4)
>>> def somme(x,y) :... return (x + y)...>>> somme (5,7)
5 12>>> def cube(x) :... return x**3...>>> cube (5)
10 125>>>
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Directive lambdaLes fonctions map et filter
Exemples : (2/4)
>>> def absolue(x):... if x<0:... return -x
4 ... else :... return x...>>> print absolue ( -13.57)13.57
9 >>> print absolue (5.3)5.3
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Directive lambdaLes fonctions map et filter
Exemples : (3/4)
>>> def factorielle(n):... if (n==0 or n==1):... return 1... else:
5 ... return n*factorielle(n-1)...>>> (factorielle (0),factorielle (1))(1, 1)>>> factorielle (3)
10 6>>> factorielle (13)6227020800L>>>
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Directive lambdaLes fonctions map et filter
Exemples : (4/4)
1 >>> def somme_produit(x,y):... s=x+y... p=x*y... return (s,p)...
6 >>> somme_produit (9,7)(16, 63)>>> somme_produit (10**3 ,10**5)(101000 , 100000000)>>>
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Directive lambdaLes fonctions map et filter
Directive lambda
• Pour des fonctions simples se limitant à une seule expression, onpeut utiliser le mot clé lambda pour les définir.
Exemples (1/2)
>>> f = lambda x : x**3-3*x+1>>> f(1)
3 -1>>> f(f(2))19>>> f(f(f(3)))314848323219L
8 >>>
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Directive lambdaLes fonctions map et filter
Directive lambda
Exemples (2/2)
>>> from math import sqrt>>> f = lambda x, y, z : pow(x,2) + pow(y,2) +
pow(z,2)>>> f(1,2,3)14
5 >>> f(sqrt (13),sqrt(sqrt (5)) ,11)136.2360679774998>>>
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Directive lambdaLes fonctions map et filter
Fonction intégrée map
Exemples (1/2)
>>> def f(x):... if x<=0:... return x+3... else:
5 ... return 3*x...>>> map(f,liste)[1, -2, 18, 0, 39, 21, -4]>>> seq=(1,3,-3,6,7,-5)
10 >>> map(f,seq)[3, 9, 0, 18, 21, -2]
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Directive lambdaLes fonctions map et filter
Fonction intégrée map
Exemples (2/2)
1 >>> dico ={1:5 ,3:6 ,15:7}>>> def g(i):... return 3*dico[i]...>>> map(g,dico) # ce sont les clés qui seront
parcourues par g6 [15, 18, 21]>>>
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Directive lambdaLes fonctions map et filter
Fonction intégrée filter
Exemples (1/2)
>>> def f(x):2 ... return x%2...>>> liste =[3,5,12,13,25 ,11 ,78]>>> filter(f,liste) # seuls sont conservés les
éléments pour lesquels f retourne vrai.[3, 5, 13, 25, 11]
7 >>>
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Directive lambdaLes fonctions map et filter
Fonction intégrée filter
Exemples (2/2)
1 >>> from math import sqrt , floor>>> def f(x):... if (floor(sqrt(x)))**2 == x :... return x...
6 >>> liste=range (101)>>> filter(f,liste)[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]>>>
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Directive lambdaLes fonctions map et filter
Procédures
Définitionune procédure, appelée dans d’autres langages subroutine, estune fonction qui ne retourne pas de valeur,sous Python, elle a la même syntaxe qu’une fonction,elle peut admettre des paramètres ou ne pas en admettre.
Traduction algorithmique
Procédure pond( D© x,y:entier ; R© s: liste )Début
s ← x**2 + y**2
Fin
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Directive lambdaLes fonctions map et filter
Procédures
Définitionune procédure, appelée dans d’autres langages subroutine, estune fonction qui ne retourne pas de valeur,sous Python, elle a la même syntaxe qu’une fonction,elle peut admettre des paramètres ou ne pas en admettre.
Traduction algorithmique
Procédure pond( D© x,y:entier ; R© s: liste )Début
s ← x**2 + y**2
Fin
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Directive lambdaLes fonctions map et filter
Procédures
Définitionune procédure, appelée dans d’autres langages subroutine, estune fonction qui ne retourne pas de valeur,sous Python, elle a la même syntaxe qu’une fonction,elle peut admettre des paramètres ou ne pas en admettre.
Traduction algorithmique
Procédure pond( D© x,y:entier ; R© s: liste )Début
s ← x**2 + y**2
Fin
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Directive lambdaLes fonctions map et filter
Procédures
Définitionune procédure, appelée dans d’autres langages subroutine, estune fonction qui ne retourne pas de valeur,sous Python, elle a la même syntaxe qu’une fonction,elle peut admettre des paramètres ou ne pas en admettre.
Traduction algorithmique
Procédure pond( D© x,y:entier ; R© s: liste )Début
s ← x**2 + y**2
Fin
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Directive lambdaLes fonctions map et filter
• On part d’une liste vide et on lui adjoint la somme des carrés desdeux premiers arguments.
Exemple
1 >>> def affectation(x,y,s=[]) :... s.append(x**2 + y**2)... print s...>>> affectation (3,4)
6 [25]>>> affectation (6,8)[25, 100]>>>
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
Le module random
• Le module random fournit des fonctions de génération de valeurspesudo-aléatoires, basées sur une implémentation en C del’algorithme déterministe Mersenne Twister.http://www.techno-science.net/?onglet=glossaire&definition=6166• Pour pouvoir l’utiliser, comme pour tout module, on l’imported’abord au moyen de la syntaxe :
>>> from random import * # cela permet d’importer toutes les fonctions du module
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
Le module random
• Le module random fournit des fonctions de génération de valeurspesudo-aléatoires, basées sur une implémentation en C del’algorithme déterministe Mersenne Twister.http://www.techno-science.net/?onglet=glossaire&definition=6166• Pour pouvoir l’utiliser, comme pour tout module, on l’imported’abord au moyen de la syntaxe :
>>> from random import * # cela permet d’importer toutes les fonctions du module
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
Les fonctions les plus couramment utilisées :
randint(a,b) Accepte des valeurs entières et retourne unnombre aléatoire compris entre ces deux valeurs (celles-ciincluses),randrange() Accepte les mêmes paramètres que range() etretourne un entier aléatoire dans ce même intervalle,uniform(a,b) Renvoie un réel (un flottant) compris entre a etb, b non compris,random() Fonctionne comme uniform() mais en fixant la pluspetite valeur à 0.0 et la plus grande à 1.0choice(séquence) Retourne un élément de la séquence choisieau hasard.
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
Les fonctions les plus couramment utilisées :
randint(a,b) Accepte des valeurs entières et retourne unnombre aléatoire compris entre ces deux valeurs (celles-ciincluses),randrange() Accepte les mêmes paramètres que range() etretourne un entier aléatoire dans ce même intervalle,uniform(a,b) Renvoie un réel (un flottant) compris entre a etb, b non compris,random() Fonctionne comme uniform() mais en fixant la pluspetite valeur à 0.0 et la plus grande à 1.0choice(séquence) Retourne un élément de la séquence choisieau hasard.
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
Les fonctions les plus couramment utilisées :
randint(a,b) Accepte des valeurs entières et retourne unnombre aléatoire compris entre ces deux valeurs (celles-ciincluses),randrange() Accepte les mêmes paramètres que range() etretourne un entier aléatoire dans ce même intervalle,uniform(a,b) Renvoie un réel (un flottant) compris entre a etb, b non compris,random() Fonctionne comme uniform() mais en fixant la pluspetite valeur à 0.0 et la plus grande à 1.0choice(séquence) Retourne un élément de la séquence choisieau hasard.
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
Les fonctions les plus couramment utilisées :
randint(a,b) Accepte des valeurs entières et retourne unnombre aléatoire compris entre ces deux valeurs (celles-ciincluses),randrange() Accepte les mêmes paramètres que range() etretourne un entier aléatoire dans ce même intervalle,uniform(a,b) Renvoie un réel (un flottant) compris entre a etb, b non compris,random() Fonctionne comme uniform() mais en fixant la pluspetite valeur à 0.0 et la plus grande à 1.0choice(séquence) Retourne un élément de la séquence choisieau hasard.
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
Les fonctions les plus couramment utilisées :
randint(a,b) Accepte des valeurs entières et retourne unnombre aléatoire compris entre ces deux valeurs (celles-ciincluses),randrange() Accepte les mêmes paramètres que range() etretourne un entier aléatoire dans ce même intervalle,uniform(a,b) Renvoie un réel (un flottant) compris entre a etb, b non compris,random() Fonctionne comme uniform() mais en fixant la pluspetite valeur à 0.0 et la plus grande à 1.0choice(séquence) Retourne un élément de la séquence choisieau hasard.
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
Les fonctions les plus couramment utilisées :
randint(a,b) Accepte des valeurs entières et retourne unnombre aléatoire compris entre ces deux valeurs (celles-ciincluses),randrange() Accepte les mêmes paramètres que range() etretourne un entier aléatoire dans ce même intervalle,uniform(a,b) Renvoie un réel (un flottant) compris entre a etb, b non compris,random() Fonctionne comme uniform() mais en fixant la pluspetite valeur à 0.0 et la plus grande à 1.0choice(séquence) Retourne un élément de la séquence choisieau hasard.
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
Exemples (1/3)
>>> from random import*
>>> randint (1,6)2
4 >>> randint (1,6)1>>> randint (1,6)3>>> randint (1,6)
9 6>>> randint (1,6)5
>>> randrange (2,10,2)8>>> randrange (2,10,2)
4 4>>> randrange (2,10,2)2>>> randrange (2,10,2)8
9 >>> randrange (2,10,2)6>>> randrange (2,10,2)2
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
Exemples (2/3)
>>> uniform (1.5 ,3.5)3.2827879801560855
3 >>> uniform (1.5 ,3.5)1.5052587269306894>>> uniform (1.5 ,3.5)3.2254716635364065>>> uniform (1.5 ,3.5)
8 2.0335964155922568>>> uniform (1.5 ,3.5)2.4078379595721637>>> uniform (1.5 ,3.5)1.9805535858175478
>>> random ()0.47139191424142779
3 >>> random ()0.586817478290934>>> random ()0.81362753205481708>>> random ()
8 0.19706882300658135>>> random ()0.46341508690911837>>> random ()0.81362753205481708
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
Exemples (3/3)
>>> choice ([’Valet’,’Dame’,’Roi’,’As’])’As’
3 >>> choice ([’Valet’,’Dame’,’Roi’,’As’])’Valet ’>>> choice ([’Valet’,’Dame’,’Roi’,’As’])’Valet ’>>> choice ([’Valet’,’Dame’,’Roi’,’As’])
8 ’As’>>> choice ([’Valet’,’Dame’,’Roi’,’As’])’Dame’>>> choice ([’Valet’,’Dame’,’Roi’,’As’])’Roi’
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
Le module numpy
• Le module scientifique numpy permet, entre autres, lamanipulation et le calcul matriciel.• Pour plus d’informations, consulter le site :http://docs.scipy.org/doc/
>>> from numpy import *>>> x = array ([[1 ,2 ,3]])
3 >>> print x, x.shape[[1 2 3]] (1, 3)
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
Le module numpy
• Le module scientifique numpy permet, entre autres, lamanipulation et le calcul matriciel.• Pour plus d’informations, consulter le site :http://docs.scipy.org/doc/
1 >>> from numpy import *>>> x = array ([[1 ,2 ,3]])>>> print x, x.shape[[1 2 3]] (1, 3)
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
Calcul matriciel 1/3
1 >>> M=array([[1 ,2 ,3] ,[4 ,5 ,6]])
>>> print M, M.shape[[1 2 3][4 5 6]] (2, 3)
>>> P=array([[5 ,6 ,7] ,[8 ,9 ,10]])
6 >>> print P , P.shape[[ 5 6 7][ 8 9 10]] (2, 3)
>>> N=array ([[0 ,1 ,2]])
1 >>> M+Parray ([[ 6, 8, 10],
[12, 14, 16]])>>> M-Parray([[-4, -4, -4],
6 [-4, -4, -4]])>>> M*Parray ([[ 5, 12, 21],
[32, 45, 60]])>>> N=array ([[0 ,1 ,2]])
11 >>> exp(N)array ([[ 1. ,
2.71828183 ,7.3890561 ]])
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
Calcul matriciel 2/3
>>> x = array([[1 ,2 ,3]])
>>> print x, x.shape3 [[1 2 3]] (1, 3)>>> y=array
([[3] ,[4] ,[5]])>>> print y, y.shape[[3][4]
8 [5]] (3, 1)>>> P=array
([[5 ,6 ,7] ,[8 ,9 ,10]])
1 >>> Q=array([[1 ,2] ,[3 ,4] ,[5 ,6]])
>>> dot(x,y)array ([[26]])>>> dot(P,Q)array ([[ 58, 76],
6 [ 85, 112]])>>> dot(P,Q).max() ,
dot(P,Q).min()(112, 58)>>> size(dot(P,Q))4
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
Calcul matriciel (3/3)
>>> a=array ([[4,1,-2],[2,-3,3],[-6,-2,1]], dtype=’float’)
>>> ainv= linalg.inv(a)>>> print ainv[[ 0.08333333 0.08333333 -0.08333333]
5 [ -0.55555556 -0.22222222 -0.44444444][ -0.61111111 0.05555556 -0.38888889]]
>>> dot(a,ainv)array ([[ 1.00000000e+00, 1.38777878e-17,
0.00000000e+00],[ 3.33066907e-16, 1.00000000e+00,
2.22044605e-16],10 [ 1.11022302e-16, 7.63278329e-17,
1.00000000e+00]])
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
Calcul sur les polynômes (1/3)
>>> from pylab import *>>> P = poly1d ([3 ,4 ,5])>>> Q = poly1d ([6 ,7])>>> print P, Q
5 23 x + 4 x + 56 x + 7>>> print P*Q
3 210 18 x + 45 x + 58 x + 35
>>>
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
Calcul sur les polynômes (2/3)
>>> from pylab import *>>> P = poly1d ([3 ,4 ,5])
3 >>> Q = poly1d ([6 ,7])>>> R = P*Q + 5>>> Quotient = R/P>>> print Quotient [0], Quotient [1]6 x + 7
8 5>>>
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
Calcul sur les polynômes (3/3)
>>> from pylab import *>>> P = poly1d ([3 ,4 ,5])>>> print P
25 3 x + 4 x + 5>>> print P.deriv()6 x + 4>>> print P.integ()
3 210 1 x + 2 x + 5 x
>>>
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
Le module matplotlib
Courbes 1D et 2D• Le module matplotlib, avec son interface pylab, permet d’afficherdes nuages de points, des courbes et des images. La documentationcomplète est disponible à l’adresse suivante :http://matplotlib.sourceforge.net/users/
• Les courbes et les surfaces en dimension 3 nécessitent le modulemplot3D dont le tutoriel est lisible à l’adresse :http://matplotlib.sourceforge.net/mpl_toolkits/mplot3d/tutorial.html
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
>>> from pylab import*
2 >>> x=[1,2,5]>>> y=[4,5,6]>>> plot(x,y)>>> show()
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
>>> from pylab import*
>>> x=[1,2,5]>>> y=[4,5,6]
4 >>> plot(x,y,’ro’)>>> xlabel(’Axe (Ox)’)>>> ylabel(’Axe (Oy)’)>>> axis ([0,6,1,7])[0, 6, 1, 7]
9 >>> show()>>>
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
>>> from pylab import*
>>> t=arange(0.0 ,5.0 ,0.2)
>>> plot(t, t**2, ’x’)>>> plot(t, t**3, ’ro’
)5 >>> show()
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
>>> from pylab import*
>>> a=2>>> b=3>>> t=linspace (0,2*pi
,100)5 >>> x=a*sin(t)>>> y=b*cos(t)>>> plot(x,y)
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
>>> from pylab import *>>> t=linspace (0,2*pi ,100)
3 >>> for k in range (1,4):... plot(t,sin(k*t),
linewidth =2)...[<matplotlib.lines.Line2D
object at 0x8c6908c >][<matplotlib.lines.Line2D
object at 0x8c6938c >]8 [<matplotlib.lines.Line2D
object at 0x8c696cc >]>>> show()
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
>>> from pylab import *>>> from numpy import *>>> x=y=linspace (-3,3,100)>>> X,Y=meshgrid(x,y)
5 >>> imshow(exp(-X**2-Y**2))<matplotlib.image.AxesImage
object at 0xa2fe66c >>>> show()
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
>>> from pylab import *>>> from numpy import *
3 >>> x=y=linspace (-3,3,100)>>> X,Y=meshgrid(x,y)>>> imshow(exp(-X**2-Y**2))<matplotlib.image.AxesImage
object at 0xa8d246c >>>> contour(X,Y,exp(-X**2-Y
**2))8 <matplotlib.contour.
ContourSet instance at0xa59bd2c >
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
1 >>> from pylab import *>>> from numpy import *>>> x=y=linspace (-3,3,100)>>> X,Y=meshgrid(x,y)>>> imshow(exp(-X**2-Y**2))
6 <matplotlib.image.AxesImageobject at 0xa8d246c >
>>> contourf(X,Y,exp(-X**2-Y**2))
<matplotlib.contour.ContourSet instance at0xa327fec >
>>>
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
>>> from scitools.allimport *
scitools.easyvizbackend is gnuplot
>>> x = y = linspace(-5, 5, 21)
>>> xv, yv = ndgrid(x,y)
5 >>> values = sin(sqrt(xv**2 + yv**2))
>>> surf(xv , yv ,values)
<scitools.easyviz.common.Surfaceobject at 0x872caac>
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
Traduction sous AlgoBox (1/4)
Exemple1 VARIABLES2 A EST_DU_TYPE NOMBRE3 B EST_DU_TYPE NOMBRE4 R EST_DU_TYPE NOMBRE5 DEBUT_ALGORITHME6 LIRE A7 LIRE B8 AFFICHER "Le PGCD de "9 AFFICHER A10 AFFICHER " et "11 AFFICHER B12 AFFICHER " est : "13 TANT_QUE (B!=0) FAIRE14 DEBUT_TANT_QUE15 R PREND_LA_VALEUR A%B16 A PREND_LA_VALEUR B17 B PREND_LA_VALEUR R18 FIN_TANT_QUE19 AFFICHER A20 FIN_ALGORITHME
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
A=input("Entrer un nombre A : ")B=input("Entrer un nombre B : ")
3 print "Le PGCD de",A, "et",B, "est : "while B != 0 :
R=A%BA=BB=R
8 print A
IDLE 1.2.2 ==== No Subprocess ====2 >>>
Entrer la valeur de A : 13*17*3*121Entrer la valeur de B : 13*17*3*49Le PGCD de 80223 et 32487 est :
663
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
A=input("Entrer un nombre A : ")B=input("Entrer un nombre B : ")print "Le PGCD de",A, "et",B, "est : "
4 while B != 0 :R=A%BA=BB=R
print A
IDLE 1.2.2 ==== No Subprocess ====2 >>>
Entrer la valeur de A : 13*17*3*121Entrer la valeur de B : 13*17*3*49Le PGCD de 80223 et 32487 est :
663
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
AlgoBox vers Python
Algorithme sous AlgoBox (2/4)1 VARIABLES2 i EST_DU_TYPE NOMBRE3 res EST_DU_TYPE NOMBRE4 DEBUT_ALGORITHME5 res PREND_LA_VALEUR 16 i PREND_LA_VALEUR 17 TANT_QUE (i<=10) FAIRE8 DEBUT_TANT_QUE9 res PREND_LA_VALEUR res*i10 i PREND_LA_VALEUR i+111 FIN_TANT_QUE12 AFFICHER res13 FIN_ALGORITHME
• La déclaration des variablesn’existe pas sous Python
Traduction sous Python
>>> res=1>>> i=1>>> while (i <=10):
4 ... res=res*i... i=i+1...>>> print res3628800
9 >>>
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
AlgoBox vers Python
Algorithme sous AlgoBox (2/4)1 VARIABLES2 i EST_DU_TYPE NOMBRE3 res EST_DU_TYPE NOMBRE4 DEBUT_ALGORITHME5 res PREND_LA_VALEUR 16 i PREND_LA_VALEUR 17 TANT_QUE (i<=10) FAIRE8 DEBUT_TANT_QUE9 res PREND_LA_VALEUR res*i10 i PREND_LA_VALEUR i+111 FIN_TANT_QUE12 AFFICHER res13 FIN_ALGORITHME
• La déclaration des variablesn’existe pas sous Python
Traduction sous Python
1 >>> res=1>>> i=1>>> while (i <=10):... res=res*i... i=i+1
6 ...>>> print res3628800>>>
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
Algorithme sous AlgoBox (3/4)
1 VARIABLES2 X EST_DU_TYPE NOMBRE3 Y EST_DU_TYPE NOMBRE4 DEBUT_ALGORITHME5 AFFICHER "Valeur de x ?"6 LIRE X7 Y PREND_LA_VALEUR X**2-2*X+18 AFFICHER "f(x) = "9 AFFICHER Y10 FIN_ALGORITHME
1 # -*- Coding : latin -1-*-
x = float(raw_input("Donner la valeur dex : "))
y= x**2 -2*x +1print "f(",x,")=",y
6 >>>Donner la valeur de x
: 13f( 13.0 )= 144.0>>>
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
Algorithme sous AlgoBox (3/4)
1 VARIABLES2 X EST_DU_TYPE NOMBRE3 Y EST_DU_TYPE NOMBRE4 DEBUT_ALGORITHME5 AFFICHER "Valeur de x ?"6 LIRE X7 Y PREND_LA_VALEUR X**2-2*X+18 AFFICHER "f(x) = "9 AFFICHER Y10 FIN_ALGORITHME
1 # -*- Coding : latin -1-*-
x = float(raw_input("Donner la valeur dex : "))
y= x**2 -2*x +1print "f(",x,")=",y
6 >>>Donner la valeur de x
: 13f( 13.0 )= 144.0>>>
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
Algorithme sous AlgoBox (4/4)1 VARIABLES2 semaine EST_DU_TYPE NOMBRE3 semaine_info EST_DU_TYPE NOMBRE4 DEBUT_ALGORITHME5 LIRE semaine6 semaine_info PREND_LA_VALEUR semaine%47 SI (semaine_info==0) ALORS8 DEBUT_SI9 semaine_info PREND_LA_VALEUR 410 FIN_SI11 AFFICHER semaine_info12 FIN_ALGORITHME
1 semaine=input( "Entrerle rang de la
semaine : ")semaine_info=semaine %4if semaine_info ==0:
semaine_info =4print "semaine_info
est : ",semaine_info
6
>>>Entrer le rang de la
semaine : 15seamine_info est : 3>>>
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
Algorithme sous AlgoBox (4/4)1 VARIABLES2 semaine EST_DU_TYPE NOMBRE3 semaine_info EST_DU_TYPE NOMBRE4 DEBUT_ALGORITHME5 LIRE semaine6 semaine_info PREND_LA_VALEUR semaine%47 SI (semaine_info==0) ALORS8 DEBUT_SI9 semaine_info PREND_LA_VALEUR 410 FIN_SI11 AFFICHER semaine_info12 FIN_ALGORITHME
semaine=input( "Entrerle rang de la
semaine : ")semaine_info=semaine %4if semaine_info ==0:
semaine_info =45 print "semaine_info
est : ",semaine_info
>>>Entrer le rang de la
semaine : 15seamine_info est : 3
10 >>>
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
Le module SymPy
DescriptionAvec le module SymPy, on peut faire du calcul symbolique de toutesorte, par exemple :
calcul exact sur les fractions et les radicaux,calculs algébriques sur les polynômes et les fractionsrationnelles,calculs trigonométriques,calculs de limites,calculs de dérivées,calculs de primitives et d’intégrales définies,résolution d’équations, de systèmes linéaires et d’équationsdifférentielles.
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
Le module SymPy
DescriptionAvec le module SymPy, on peut faire du calcul symbolique de toutesorte, par exemple :
calcul exact sur les fractions et les radicaux,calculs algébriques sur les polynômes et les fractionsrationnelles,calculs trigonométriques,calculs de limites,calculs de dérivées,calculs de primitives et d’intégrales définies,résolution d’équations, de systèmes linéaires et d’équationsdifférentielles.
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
Le module SymPy
DescriptionAvec le module SymPy, on peut faire du calcul symbolique de toutesorte, par exemple :
calcul exact sur les fractions et les radicaux,calculs algébriques sur les polynômes et les fractionsrationnelles,calculs trigonométriques,calculs de limites,calculs de dérivées,calculs de primitives et d’intégrales définies,résolution d’équations, de systèmes linéaires et d’équationsdifférentielles.
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
Le module SymPy
DescriptionAvec le module SymPy, on peut faire du calcul symbolique de toutesorte, par exemple :
calcul exact sur les fractions et les radicaux,calculs algébriques sur les polynômes et les fractionsrationnelles,calculs trigonométriques,calculs de limites,calculs de dérivées,calculs de primitives et d’intégrales définies,résolution d’équations, de systèmes linéaires et d’équationsdifférentielles.
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
Le module SymPy
DescriptionAvec le module SymPy, on peut faire du calcul symbolique de toutesorte, par exemple :
calcul exact sur les fractions et les radicaux,calculs algébriques sur les polynômes et les fractionsrationnelles,calculs trigonométriques,calculs de limites,calculs de dérivées,calculs de primitives et d’intégrales définies,résolution d’équations, de systèmes linéaires et d’équationsdifférentielles.
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
Le module SymPy
DescriptionAvec le module SymPy, on peut faire du calcul symbolique de toutesorte, par exemple :
calcul exact sur les fractions et les radicaux,calculs algébriques sur les polynômes et les fractionsrationnelles,calculs trigonométriques,calculs de limites,calculs de dérivées,calculs de primitives et d’intégrales définies,résolution d’équations, de systèmes linéaires et d’équationsdifférentielles.
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
Le module SymPy
DescriptionAvec le module SymPy, on peut faire du calcul symbolique de toutesorte, par exemple :
calcul exact sur les fractions et les radicaux,calculs algébriques sur les polynômes et les fractionsrationnelles,calculs trigonométriques,calculs de limites,calculs de dérivées,calculs de primitives et d’intégrales définies,résolution d’équations, de systèmes linéaires et d’équationsdifférentielles.
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
Les fractions et les radicaux
>>> from sympy import *>>> a=Rational (1,3)>>> a1/3
5 >>> Rational (3,7)+Rational (13 ,67)292/469>>> a**2 , a+3/7, (a-2/7) /(13/7+3)(1/9, 1/3, 1/12)>>> Rational (3) **13/ Rational (27) **13, Rational
(1,9) **1310 (1/2541865828329 , 1/2541865828329)
>>> sqrt (18), simplify(sqrt (24)/sqrt (3))3*2**(1/2) ,2*2**(1/2)>>>
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
Les polynômes
1 >>> from sympy import *>>> xy=Symbol(’xy’)>>> ((x-3) **2).expand (), ((x-y)**3).expand ()(9 - 6*x + x**2, -3*y*x**2 + 3*x*y**2 + x**3 - y
**3)>>> factor(x**2-3*x+2,x)
6 (1 - x)*(2 - x)>>> ((x+y)**2).subs(x,2).expand ()4 + 4*y + y**2>>> ((3*x+5*y)**4).expand ()1350*x**2*y**2 + 540*y*x**3 + 1500*x*y**3 + 81*x
**4 + 625*y**411 >>> ((x+y)**2).subs(y,x)
4*x**2
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
Les fractions rationnelles
>>> from sympy import *>>> xyz=Symbol(’xyz’)
3 >>> together (1/x+1/y+1/z)1/x/y/z*(x*y + x*z + y*z)>>> apart (1/((x+2)*(x-3)),x)-1/5/(2 + x) - 1/5/(3 - x)>>> apart ((3*x**2 -5*x+7)/(x-4),x)
8 7 + 3*x - 35/(4 - x)>>> simplify ((1/x+1/(2*x**2)))(1/2)*x**( -2) *(1 + 2*x)>>> simplify ((x-3) /(3*x-1)+x/(x+1))1/(-3 + 6*x + 9*x**2)*(-9 - 9*x + 12*x**2)
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
Le calcul trigonométrique (1/2)
>>> from sympy import *>>> xy=Symbol(’xy’)
3 >>> cos(0) , cos(pi/6), cos(pi/4), cos(pi/3),cos(pi)
(1, (1/2) *3**(1/2) , (1/2) *2**(1/2) , 1/2, -1)>>> sin(0), sin(pi/6), sin(pi/4), sin(pi/3), sin
(pi)(0, 1/2, (1/2) *2**(1/2) , (1/2) *3**(1/2) , 0)>>> sin(x+y).expand(trig=True)
8 cos(x)*sin(y) + cos(y)*sin(x)>>> sin(x+y).expand(trig=True)cos(x)*sin(y) + cos(y)*sin(x)>>> sin(x+pi).expand(trig=True)-sin(x)
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
Le calcul trigonométrique (2/2)
>>> from sympy import *>>> x=Symbol(’x’)
3 >>> cos(x+pi/2).expand(trig=True)-sin(x)>>> sin(2*x).expand(trig=True), cos(2*x).expand(
trig=True)(2* cos(x)*sin(x), (-1) + 2*cos(x)**2)>>> simplify(tan(pi/3))
8 3**(1/2)>>> tan(pi/3)3**(1/2)>>> tan(pi/6)(1/3) *3**(1/2)
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
Calcul de limites
>>> limit(x**2+2*x+1,x,sqrt (3))4 + 2*3**(1/2)
3 >>> limit ((3*x**2 -3*x)/(5*x**2+1) ,x,oo)3/5>>> limit((x+1)/(x**2+2) ,x,oo)0>>> limit((-x**2+1) /(x+1),x,oo)
8 -oo>>> limit((1-cos(x))/x**2,x,0)1/2>>> limit((exp(x) -1)/x,x,0), limit(log(x)/(x-1),
x,1)(1,1)
13 >>>
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
Calcul de dérivées
>>> diff(a*x**2+b*x+c,x), diff (1/x,x)2 (b + 2*a*x, -x**(-2))>>> diff(cos(x),x)-sin(x)>>> diff(tan(x),x), diff(sin(x)**2,x)(1 + tan(x)**2, 2*cos(x)*sin(x))
7 >>> diff(x**n,x), diff(log(x),x), diff(exp(a*x),x)
>>> n=Symbol(’n’)>>> diff(x**n,x), diff( log(x),x), diff(exp(a*x)
,x)(n*x**(( -1) + n), 1/x, a*exp(a*x))>>>
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
Calcul de dérivées d’ordre supérieur
>>> diff(sin(3*x),x,1)3*cos(3*x)
3 >>> diff(sin(3*x),x,2)-9*sin (3*x)>>> diff(sin(3*x),x,3)-27*cos(3*x)>>> diff(x**3 - 3*x**2 +5*x + 1,x,1)
8 5 - 6*x + 3*x**2>>> diff(x**3 - 3*x**2 +5*x + 1,x,2)(-6) + 6*x>>>
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
Calcul de primitives
>>> integrate(n*x**(n-1),x)x**n
3 >>> integrate(cos(x),x), integrate(tan(x),x)(sin(x), (1/2)*log(1 + tan(x)**2))>>> integrate(exp(a*x),x)1/a*exp(a*x)>>> integrate(log(x),x)
8 -x + x*log(x)>>> integrate (1/x,x)log(x)>>>
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
Calcul d’integrales définies
>>> integrate(x**2,(x,-1,1))2/3>>> integrate(log(x),(x,1,3))
4 (-2) + 3*log(3)>>> integrate(sin(x),(x,-pi,pi))0>>> integrate(exp(-x) ,(x,0,oo))1
9 >>> integrate(log(x),(x,0,1))-1>>>
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
Equations algébriques
>>> a=Symbol(’a’); b=Symbol(’b’)>>> solve (3*x**2 -4*x+1,x)
3 [1/3, 1]>>> solve(x**2-a**2,x)[-abs(a), abs(a)]>>> solve(x**2-81,x)[9, -9]
8 >>> solve(x**2+3*x-b**2,x)[( -3/2) - 1/2*(9 + 4*b**2) **(1/2) , (-3/2) +
(1/2) *(9 + 4*b**2) **(1/2)]>>> solve(x**2+1,x)[I, -I]
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
Systèmes d’équations
>>> a=Symbol(’a’); b=Symbol(’b’); xyz=Symbol(’xyz’)
>>> solve ([3*x - 5*y - 7, -5*x + 13*y - 3], [x,y])
{y: 22/7, x: 53/7}4 >>> solve([a*x + y - 6, 3*x - 2*b -1],[x, y]){y: 6 - 1/3*a - 2/3*a*b, x: 1/3 + (2/3)*b}>>> solve([x*2 - 3*y + z + 1, 3*x - 5*y + 7*z -
1],[x, y, z]){y: (-5) + 11*z, x: -8 + 16*z}>>> solve([x - y + z - 7, x + y - z, 7*x - 3*y
+2*z - 1],[x, y, z])9 {z: 34, y: 61/2, x: 7/2}>>>
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
Calcul symbolique avec les matrices
>>> from sympy import Matrix>>> Matrix ([1 ,0] ,[0 ,1])[1, 0]
4 [0, 1]>>> A=Matrix ([[1,x],[y,1]])>>> A[1, x][y, 1]
9 >>> A**2[1 + x*y, 2*x][ 2*y, 1 + x*y]>>>
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
Equations différentielles
>>> from sympy import *>>> x=Symbol(’x’)
3 >>> f=Function(’f’)>>> dsolve(f(x).diff(x)+f(x),f(x))C1*exp(-x)>>> a=Symbol(’a’)>>> b=Symbol(’b’)
8 >>> dsolve(a*f(x).diff(x)+b*f(x),f(x))C1*exp(-b*x/a)>>> dsolve(f(x).diff(x,x)+f(x),f(x))C1*sin(x) + C2*cos(x)>>>
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
Le module NetworkX
>>> import networkx as nx>>> G=nx.Graph()>>> G.add_node (1); G.add_node("A")>>> G.add_nodes_from("BCDE")
5 >>> G.add_edge("A","D")>>> G.add_edges_from ([("A","B"),("B","D")])>>> G.number_of_nodes () # ordre du graphe6>>> G.number_of_edges () # nombre d’arêtes
10 3>>>
• Pour une documentation complète ou pourra consulter :http://networkx.lanl.gov/contents.html
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
Le module NetworkX
>>> G.nodes()2 [’A’, 1, ’C’, ’B’, ’E’, ’D’]>>> G.edges()[(’A’, ’B’), (’A’, ’D’), (’B’, ’D’)]>>> G.degree (1) # nombre d’arêtes dont ce
sommet est une extrémité0
7 >>> G.degree("A")2>>> G.degree("B")2>>> import matplotlib.pyplot as plt
12 >>> plt.show() # on obtient le graphe du slidesuivant
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
Le module NetworkX
>>> G[1] # liste des arêtes reliant le sommet 1aux autres sommets
2 []>>> G["A"] # ce qui permet de calculer la
matrice associée au graphe G[’B’, ’D’]>>> G["B"][’A’, ’D’]
7 >>> G["D"][’A’, ’B’]>>> G["C"][]>>> G["E"]
12 []
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
Le module NetworkX
• Une méthode plus rapide, lorsque l’ordre du graphe est plusgrand, est d’utiliser une boucle sur les sommets.
>>> for x in G.nodes ():... print (x,G[x])
3 ...(’A’, [’B’, ’D’])(1, [])(’C’, [])(’B’, [’A’, ’D’])
8 (’E’, [])(’D’, [’A’, ’B’])>>>
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
Le module NetworkX
>>> DG.clear()>>> DG.add_nodes_from("ABCD")>>> DG.add_edges_from ([(1 ,2) ,(1,3) ,(3,"A") ,(4,"B
") ,(4,3)])4 >>> DG.edges()[(1, 2), (1, 3), (4, 3), (4, ’B’), (3, ’A’)]>>> DG.nodes()[’A’, 1, ’C’, ’B’, 4, ’D’, 2, 3]>>> DG.successors (1)
9 [2, 3]>>> DG.predecessors (1)[]>>> DG.predecessors (3)[1, 4]
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
Le module NetworkX
>>> len(DG)2 8>>> DG.order()8>>> DG.neighbors (1)[2, 3]
7 >>> DG.neighbors (3)[’A’]>>> import matplotlib.pyplot as plt>>> plt.show()>>> nx.draw_random(DG)
12 >>>
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
Le module turtle 1/2
• Le module turtle permet de réaliser des figures géométriquescorrespondant à la trace laissée derrière elle par une petite tortuevirtuelle dont les dépalcements sont contrôlées à l’aided’instructions simples.reset() On efface tout et on recommence,goto(x ,y) Aller à l’endroit de coordonnées x et y ,forward(distance) Avancer d’une distance donnée,backward(distance) Reculer,up() Relever le crayon (pour avancer sans dessiner),down() Abaisser le crayon (pour recommencer à dessiner),color(couleur) couleur peut être une chaîne prédéfinie(’red’,etc)
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
Le module turtle 2/2
left(angle) Tourner à gauche d’un angle donné en degrés,right(angle) Tourner à droite,width(épaisseur) Choisir l’épaisseur du tracé,fill(1) Remplir un contour fermé,write(texte) texte doit être une chaîne de caractères .
Remarques• Le remplissage du contour fermée se fait à l’aide de la couleurchoisie. (’red’,’blue’,’green’,etc)• La chaîne de caractères dans le texte doit être délimitée avec des" ou des ’.
Pour une documentation complète, on se référera à l’adresse :http://docs.python.org/library/turtle.html
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
>>> from turtle import *2 >>> for i in range (4) :... forward (100)... left (90)...>>>
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
>>> def carre(c):... for i in range (4):... forward(c)
4 ... left (90)...>>> def tournecarre(n):... i=0... while i < n:
9 ... carre (150)... left (360/n)... i=i+1...>>> tournecarre (20)
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
Le module time
• Le module time permet de calculer le temps d’exécution d’unscript Python et ainsi de comparer les performances de deuxalgorithmes traitant le même problème.
1 import timetic = time.time()5**100000tac = time.time() - ticprint tac
>>>7.15255737305e-06>>>
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
Quelques exemples de scripts
Procédé• Sous IDLE, dans fichier, on ouvre une nouvelle fenêtre danslaquelle on saisit le code du script.• On enregistre le fichier.• Pour exécuter le programme, on sélectionne "Run Module" dansle menu déroulant "Run". Si aucune erreur n’est détectée, lerésultat est affiché dans une autre fenêtre.• Certains des exemples de programmes qui suivent sont saisidirectement dans l’interpréteur Python.
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
#-*- coding: utf -8 -*-2 from math import *a=float(raw_input("a : "))b=float(raw_input("b : "))c=float(raw_input("c : "))delta=b*b-4*a*c
7 if delta >0:x1=(-b+sqrt(delta))/(2*a)x2=(-b-sqrt(delta))/(2*a)print ’deux solutions :’, x1, ’et’, x2
elif delta ==0:12 x=-b/(2*a)
print ’une solution double : ’, xelse:
print ’pas de solution réelle ’
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
IDLE 1.2.2 ==== No Subprocess ====>>>a : 3b : 5
5 c : 2deux solutions: -0.666666666667 et -1.0>>>a : 1b : 2
10 c : 1une solution: -1.0>>>a : 5b : 3
15 c : 2pas de solution réelle
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
from math import *print("Déterminer si un nombre est premier")n=int(raw_input("Entrer le nombre : "))
4 a=sqrt(n)l=0c=2while (c<=a):
d=(n%c)9 if (d==0):
print (n, " n’est pas un nombre premier ,il est divisible par ", c)
l=1break
c=c+114 if (l==0):
print(n, "est un nombre premier")
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
IDLE 1.2.2 ==== No Subprocess ====>>>Déterminer si un nombre est premier
4 Entrer le nombre : 403(403, " n’est pas un nombre premier , il est
divisible par ", 13)>>>Déterminer si un nombre est premierEntrer le nombre : 18209
9 (18209 , " n’est pas un nombre premier , il estdivisible par ", 131)
>>>Déterminer si un nombre est premierEntrer le nombre : 7669(7669, ’est un nombre premier ’)
14 >>>
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
1 #-*- coding: utf -8 -*-# Un nombre n est dit parfait si la somme de ses
diviseurs stricts ,# (autre que n) est égale à lui même.n = int(raw_input("Entrer un nombre : "))liste =[]
6 for k in range(1,n+1):if n%k==0:
liste.append(k)print "La liste des diviseurs de ",n, "est",
listeif sum(liste) == 2*n :
11 print n, "est un nombre parfait"else :
print n,"n’est pas un nombre parfait"
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
IDLE 1.2.2 ==== No Subprocess ====2 >>>Entrer un nombre : 12La liste des diviseurs de 12 est [1, 2, 3, 4,
6, 12]12 n’est pas un nombre parfait>>>
7 Entrer un nombre : 6La liste des diviseurs de 6 est [1, 2, 3, 6]6 est un nombre parfait>>>Entrer un nombre : 496
12 La liste des diviseurs de 496 est [1, 2, 4, 8,16, 31, 62, 124, 248, 496]
496 est un nombre parfait>>>
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
1 seq="123321212321321212312321222221111212123233"Un=0Deux=0Trois=0for i in xrange(len(seq)):
6 if seq[i] == ’1’ :Un = Un + 1
if seq[i] == ’2’ :Deux = Deux + 1
if seq[i] == ’3’ :11 Trois = Trois + 1
print " Le nombre de ’1’ est : ", Unprint " Le nombre de ’2’ est : ", Deuxprint " Le nombre de ’3’ est : ", Troisprint " Le pourcentage des ’1’ et ’2’ est : %4.1
f" %(100.0*( Un + Deux)/len(seq)), "%"
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
IDLE 1.2.2 ==== No Subprocess ====>>>Le nombre de ’1’ est : 14Le nombre de ’2’ est : 19
5 Le nombre de ’3’ est : 9Le pourcentage des ’1’ et ’2’ est : 78.6 %
>>>
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
#-*- coding: utf -8 -*-2 def facto(n):
"Calcul de la factorielle de n"if n==0 :
u=1else:
7 u= n*facto(n-1)return u
# ---- appel -----n= input("Calcul des premières factorielles
jusqu’à : ")for i in range(n+1) :
12 print i,"! = ",facto(i)
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
IDLE 1.2.2 ==== No Subprocess ====>>>
3 Calcul des premières factorielles jusqu ’à : 130 ! = 11 ! = 12 ! = 23 ! = 6
8 4 ! = 245 ! = 1206 ! = 7207 ! = 50408 ! = 40320
13 9 ! = 36288010 ! = 362880011 ! = 3991680012 ! = 47900160013 ! = 6227020800
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
boukari@boukari -laptop :~$ pythonPython 2.5.2 (r252 :60911 , Oct 5 2008, 19:24:49)
3 [GCC 4.3.2] on linux2Type "help", "copyright", "credits" or "license"
for more information.$>>> def syracuse(n):... u=n... while u != 1:
8 ... if u%2==0:... u=u/2... else :... u=3*u+1... print u,
13 ...>>> syracuse (1876)938 469 1408 704 352 176 88 44 22 11 34 17 52 26
13 40 20 10 5 16 8 4 2 1BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
#-*- coding : utf -8 -*-from math import expdef F(y):
return y5 xinitiale ,yinitiale = 0., 1.h = 0.1niter = 10x ,y = xinitiale ,yinitialeprint " Methode d’Euler"
10 print "x y yExacte y-yExacte"for i in range(niter):
derive = F(y)x = x + dxy = y + derive*h
15 yExacte = yinitiale*exp(x)print x,y,yExacte ,y-yExacte
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
IDLE 1.2.2 ==== No Subprocess ====>>>>>>
4 Methode d’Eulerx y yExacte y-yExacte0.1 1.1 1.10517091808 -0.005170918075650.2 1.21 1.22140275816 -0.01140275816020.3 1.331 1.34985880758 -0.018858807576
9 0.4 1.4641 1.49182469764 -0.02772469764130.5 1.61051 1.6487212707 -0.03821127070010.6 1.771561 1.82211880039 -0.05055780039050.7 1.9487171 2.01375270747 -0.06503560747050.8 2.14358881 2.22554092849 -0.0819521184925
14 0.9 2.357947691 2.45960311116 -0.1016554201571.0 2.5937424601 2.71828182846 -0.124539368359>>>
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
# -*- coding: utf -8 -*-print " Méthode de dichotomie : "from math import *
4 def f(x):return x*x-2
def solution(f, a, b, epsilon):while abs(a-b) > epsilon:c=(a+b)/2.0
9 yc=f(c)ya=f(a)if yc * ya > 0:a = c
else:14 b = c
return aprint solution(cos ,1 ,3 ,0.000001)print solution(f,0 ,2 ,0.000001)
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
IDLE 1.2.2 ==== No Subprocess ====>>>
3 Méthode par dichotomie :1.570796012881.41421318054
>>>
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
# -*- coding: utf -8 -*-print " Méthode par balayage : "
4 def f(x) :return x-1-1/x
x=1while x <= 2:
9 y=f(x)print x, " --> " , yx=x+0.1
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
IDLE 1.2.2 ==== No Subprocess ====>>>Méthode par balayage :
4 1 --> -11.1 --> -0.8090909090911.2 --> -0.6333333333331.3 --> -0.4692307692311.4 --> -0.314285714286
9 1.5 --> -0.1666666666671.6 --> -0.0251.7 --> 0.1117647058821.8 --> 0.2444444444441.9 --> 0.373684210526
14 >>>
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
# -*- coding: utf -8 -*-print " Calcul de x puissance n : "
def p(x,n):5 if n==0 :
return 1else :
return x*p(x,n-1)
10 n=int(raw_input("Entrer n : "))x=int(raw_input("Entrer x : "))print x, " à la puissance ",n," vaut ", p(x,n)
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
>>>Calcul de x puissance n :
3 Entrer n : 12Entrer x : 1313 à la puissance 12 vaut 23298085122481>>>Calcul de x puissance n :
8 Entrer n : 13Entrer x : 11 à la puissance 13 vaut 1>>>Calcul de x puissance n :
13 Entrer n : 0Entrer x : 1313 à la puissance 0 vaut 1>>>
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
# -*- coding: utf -8 -*-a=1s=0
4 print ’Entrer un nombre à ajouter à la somme.’print ’Entrer 0 pour quitter ’while a !=0:
print ’La somme courante est : ’,sa=raw_input(’Nombre ? : ’)
9 a=float(a)s+=a
print ’Totale de la somme est : S=’,s
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
IDLE 1.2.2 ==== No Subprocess ====>>>Entrer un nombre à ajouter à la somme.
4 Entrer 0 pour quitterLa somme courante est : 0Nombre ? : 1La somme courante est : 1.0Nombre ? : 13
9 La somme courante est : 14.0Nombre ? : 53La somme courante est : 67.0Nombre ? : 0Totale de la somme est : S= 67.0
14 >>>
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
1 # -*- coding: utf -8 -*-from random import *print " Simulation de lancers de pièce : "n=int(raw_input(" Donner le nombre de lancers :
"))liste =[]
6 for i in range(1,n+1):s=randint (0,1)liste.append(s)
p=liste.count (0)f=liste.count (1)
11 print "La fréquence de pile est : ",p/float(n)print "La fréquence de face est : ",f/float(n)
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
>>>Simulation de lancers de pièce :
3 Donner le nombre de lancers : 1000La fréquence de pile est : 0.496La fréquence de face est : 0.504>>>Simulation de lancers de pièce :
8 Donner le nombre de lancers : 10000La fréquence de pile est : 0.4956La fréquence de face est : 0.5044>>>Simulation de lancers de pièce :
13 Donner le nombre de lancers : 100000La fréquence de pile est : 0.49957La fréquence de face est : 0.50043>>>
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
# -*- coding: utf -8 -*-from random import *from math import *
4 print " Méthode de Monte -Carlo : "n = int(raw_input(" Donner le nombre n : "))k=0np1=n+1for i in range(np1):
9 a = random ()b = random ()if a <= sqrt(1-b**2): #intérieur du quart
de cerclek = k+1
print 4.* k/float(n) #valeur approchée depi
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
>>>2 Méthode de Monte -Carlo :
Donner le nombre n : 1000003.14072>>>Méthode de Monte -Carlo :
7 Donner le nombre n : 3000003.1368>>>Méthode de Monte -Carlo :Donner le nombre n : 1000000
12 3.143308>>>Méthode de Monte -Carlo :Donner le nombre n : 10000000
3.141440817 >>>
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
Python et sage
Sagemath
Sagemath (ou Sage) est un logiciel de mathématiques souslicence libre (GPL). Il combine la puissance de nombreuxprogrammes libres dans une interface commune basée sur lelangage de programmation Python.Sage a pour but de devenir une alternative libre aux logicielsMagma, Maple, Mathematica et Matlab. Sage permet de faire desmathématiques générales et avancées, pures et appliquées. Il couvreune vaste gamme de mathématiques, dont l’algèbre, l’analyse, lathéorie des nombres, la cryptographie, l’analyse numérique,l’algèbre commutative, la théorie des groupes, la combinatoire, lathéorie des graphes, l’algèbre linéaire formelle, etc ?
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
Sage et LATEX
• Pour se documenter et télécharger le logiciel, consulter le site :http://www.sagemath.org/fr/• Le lien suivant vous permet d’ouvrir un compte pour utiliser lelogiciel sage via un navigateur web. Aucune installation locale n’estnécessaire.http://www.sagenb.org/• Le package Sagetex permet d’inclure du code sage dans undocument LATEX. Le code est exécuté en lieu et place par sagemath.http://www.ctan.org/tex-archive/help/Catalogue/entries/sagetex.html
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
Python et LATEX
Package python.sty• Il est également possible, comme avec sagetex, d’inclure du codePython dans un document LATEX et ce, en utilisant le packagepython.sty• Voir une documentation en suivant le lien :http://thewikiblog.appspot.com/blog/python-inside-latex
• Une référence de base pour apprendre à programmer avec Python,version 2 ou 3, est en téléchargement libre en suivant les liens :http://www.inforef.be/swi/download/apprendre_python3.pdfhttp://www.inforef.be/swi/download/apprendre_python.pdf
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python