233
Les variables Les séquences Les instructions conditionnelles et itératives Les fonctions Les modules Algorithmique et traduction Python BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Stage d’établissement : Lycée Jean Lurçat Perpignan 19 mai 2010 19 août 2011 BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python

Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

  • Upload
    hakhanh

  • View
    219

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 2: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 3: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 4: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 5: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 6: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 7: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 8: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 9: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 10: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 11: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 12: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 13: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 14: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 15: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 16: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 17: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 18: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 19: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 20: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 21: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 22: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 23: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 24: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 25: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 26: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 27: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 28: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 29: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 30: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 31: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 32: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 33: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 34: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 35: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 36: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 37: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 38: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 39: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 40: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 41: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 42: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 43: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 44: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 45: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 46: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 47: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 48: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 49: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 50: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 51: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 52: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 53: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 54: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 55: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 56: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 57: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 58: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 59: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 60: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 61: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 62: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 63: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 64: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 65: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 66: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 67: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 68: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 69: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 70: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 71: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 72: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 73: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 74: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 75: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 76: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 77: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 78: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 79: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 80: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 81: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 82: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 83: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 84: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 85: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 86: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 87: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 88: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 89: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 90: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 91: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 92: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 93: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 94: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 95: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 96: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 97: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 98: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 99: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 100: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 101: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 102: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 103: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 104: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 105: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 106: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 107: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 108: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 109: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 110: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 111: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 112: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 113: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 114: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 115: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 116: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 117: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 118: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 119: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 120: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 121: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 122: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 123: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 124: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 125: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 126: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 127: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 128: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 129: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 130: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 131: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 132: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 133: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 134: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 135: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 136: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 137: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 138: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 139: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 140: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 141: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 142: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 143: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 144: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 145: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 146: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 147: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 148: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 149: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 150: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 151: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 152: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 153: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 154: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 155: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 156: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 157: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 158: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 159: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 160: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 161: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 162: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 163: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 164: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 165: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 166: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 167: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 168: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 169: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 170: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 171: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 172: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 173: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 174: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 175: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 176: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 177: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 178: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 179: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 180: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 181: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 182: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 183: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 184: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 185: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 186: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 187: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 188: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 189: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 190: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 191: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 192: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 193: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 194: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 195: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 196: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 197: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 198: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 199: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 200: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 201: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 202: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 203: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 204: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 205: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 206: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 207: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 208: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 209: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 210: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 211: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 212: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 213: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 214: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 215: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 216: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 217: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 218: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 219: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 220: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 221: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 222: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 223: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 224: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 225: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 226: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 227: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 228: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 229: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 230: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 231: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 232: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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

Page 233: Algorithmique et traduction Python - Freeboukari.abdelilah.free.fr/documents/cours/bts/stage_python.pdf · Lesvariables Lesséquences Lesinstructionsconditionnellesetitératives Lesfonctions

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