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
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Les variablesLes séquences
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Introduction
DescriptionPython est un langage de programmation facile à utiliser etpuissant,il peut être utilisé en tant que langage de programmationfonctionnelle qu’orienté objet,son typage est dynamique,il est multiplateforme,idéal pour écrire de petits scripts et vérifier au fur et à mesureles erreurs éventuelles de syntaxes ou de logique,open-source et extensible.
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Introduction
DescriptionPython est un langage de programmation facile à utiliser etpuissant,il peut être utilisé en tant que langage de programmationfonctionnelle qu’orienté objet,son typage est dynamique,il est multiplateforme,idéal pour écrire de petits scripts et vérifier au fur et à mesureles erreurs éventuelles de syntaxes ou de logique,open-source et extensible.
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Introduction
DescriptionPython est un langage de programmation facile à utiliser etpuissant,il peut être utilisé en tant que langage de programmationfonctionnelle qu’orienté objet,son typage est dynamique,il est multiplateforme,idéal pour écrire de petits scripts et vérifier au fur et à mesureles erreurs éventuelles de syntaxes ou de logique,open-source et extensible.
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Introduction
DescriptionPython est un langage de programmation facile à utiliser etpuissant,il peut être utilisé en tant que langage de programmationfonctionnelle qu’orienté objet,son typage est dynamique,il est multiplateforme,idéal pour écrire de petits scripts et vérifier au fur et à mesureles erreurs éventuelles de syntaxes ou de logique,open-source et extensible.
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Introduction
DescriptionPython est un langage de programmation facile à utiliser etpuissant,il peut être utilisé en tant que langage de programmationfonctionnelle qu’orienté objet,son typage est dynamique,il est multiplateforme,idéal pour écrire de petits scripts et vérifier au fur et à mesureles erreurs éventuelles de syntaxes ou de logique,open-source et extensible.
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Introduction
DescriptionPython est un langage de programmation facile à utiliser etpuissant,il peut être utilisé en tant que langage de programmationfonctionnelle qu’orienté objet,son typage est dynamique,il est multiplateforme,idéal pour écrire de petits scripts et vérifier au fur et à mesureles erreurs éventuelles de syntaxes ou de logique,open-source et extensible.
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les différents typesaffectation multipleLes entrées, sortiesLes variables numériquesLes opérateurs booléens
DéfinitionLes informations (numériques ou chaînes) peuvent être mémoriséessous forme de constantes (numériques ou chaînes) dans diverses"boîtes" appelées variables. Chaque variable a un nom pourl’identifier : c’est l’identificateur de la variable.
Un nom de variable est une séquence de lettres et de chiffres,qui doit toujours commencer par une lettre.Les lettres accentuées, les cédilles, les espaces, les caractèresspéciaux sont interdits, à l’exception du caractère (souligné).vaR et var sont deux noms de variables différentes. (La casseest significative)Certains mots sont interdits, car réservés à Python : and -assert - break - class - continue - def - del - elif - else - except- exec - finally - for - from - global - if - import - is - lambda -not - or - pass - raise - return - try - while - yield
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les différents typesaffectation multipleLes entrées, sortiesLes variables numériquesLes opérateurs booléens
DéfinitionLes informations (numériques ou chaînes) peuvent être mémoriséessous forme de constantes (numériques ou chaînes) dans diverses"boîtes" appelées variables. Chaque variable a un nom pourl’identifier : c’est l’identificateur de la variable.
Un nom de variable est une séquence de lettres et de chiffres,qui doit toujours commencer par une lettre.Les lettres accentuées, les cédilles, les espaces, les caractèresspéciaux sont interdits, à l’exception du caractère (souligné).vaR et var sont deux noms de variables différentes. (La casseest significative)Certains mots sont interdits, car réservés à Python : and -assert - break - class - continue - def - del - elif - else - except- exec - finally - for - from - global - if - import - is - lambda -not - or - pass - raise - return - try - while - yield
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les différents typesaffectation multipleLes entrées, sortiesLes variables numériquesLes opérateurs booléens
DéfinitionLes informations (numériques ou chaînes) peuvent être mémoriséessous forme de constantes (numériques ou chaînes) dans diverses"boîtes" appelées variables. Chaque variable a un nom pourl’identifier : c’est l’identificateur de la variable.
Un nom de variable est une séquence de lettres et de chiffres,qui doit toujours commencer par une lettre.Les lettres accentuées, les cédilles, les espaces, les caractèresspéciaux sont interdits, à l’exception du caractère (souligné).vaR et var sont deux noms de variables différentes. (La casseest significative)Certains mots sont interdits, car réservés à Python : and -assert - break - class - continue - def - del - elif - else - except- exec - finally - for - from - global - if - import - is - lambda -not - or - pass - raise - return - try - while - yield
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les différents typesaffectation multipleLes entrées, sortiesLes variables numériquesLes opérateurs booléens
DéfinitionLes informations (numériques ou chaînes) peuvent être mémoriséessous forme de constantes (numériques ou chaînes) dans diverses"boîtes" appelées variables. Chaque variable a un nom pourl’identifier : c’est l’identificateur de la variable.
Un nom de variable est une séquence de lettres et de chiffres,qui doit toujours commencer par une lettre.Les lettres accentuées, les cédilles, les espaces, les caractèresspéciaux sont interdits, à l’exception du caractère (souligné).vaR et var sont deux noms de variables différentes. (La casseest significative)Certains mots sont interdits, car réservés à Python : and -assert - break - class - continue - def - del - elif - else - except- exec - finally - for - from - global - if - import - is - lambda -not - or - pass - raise - return - try - while - yield
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les différents typesaffectation multipleLes entrées, sortiesLes variables numériquesLes opérateurs booléens
Les variables : les différents types
On distingue essentiellement, sous Python, les types suivants :le type entier,le type entier long,le type complexe,le type chaîne,le type booléen,le type liste,le type tuple,le type dictionnaire,le type ensemble.
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les différents typesaffectation multipleLes entrées, sortiesLes variables numériquesLes opérateurs booléens
Les variables : les différents types
On distingue essentiellement, sous Python, les types suivants :le type entier,le type entier long,le type complexe,le type chaîne,le type booléen,le type liste,le type tuple,le type dictionnaire,le type ensemble.
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les différents typesaffectation multipleLes entrées, sortiesLes variables numériquesLes opérateurs booléens
Les variables : les différents types
On distingue essentiellement, sous Python, les types suivants :le type entier,le type entier long,le type complexe,le type chaîne,le type booléen,le type liste,le type tuple,le type dictionnaire,le type ensemble.
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les différents typesaffectation multipleLes entrées, sortiesLes variables numériquesLes opérateurs booléens
Les variables : les différents types
On distingue essentiellement, sous Python, les types suivants :le type entier,le type entier long,le type complexe,le type chaîne,le type booléen,le type liste,le type tuple,le type dictionnaire,le type ensemble.
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les différents typesaffectation multipleLes entrées, sortiesLes variables numériquesLes opérateurs booléens
Les variables : les différents types
On distingue essentiellement, sous Python, les types suivants :le type entier,le type entier long,le type complexe,le type chaîne,le type booléen,le type liste,le type tuple,le type dictionnaire,le type ensemble.
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les différents typesaffectation multipleLes entrées, sortiesLes variables numériquesLes opérateurs booléens
Les variables : les différents types
On distingue essentiellement, sous Python, les types suivants :le type entier,le type entier long,le type complexe,le type chaîne,le type booléen,le type liste,le type tuple,le type dictionnaire,le type ensemble.
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les différents typesaffectation multipleLes entrées, sortiesLes variables numériquesLes opérateurs booléens
Les variables : les différents types
On distingue essentiellement, sous Python, les types suivants :le type entier,le type entier long,le type complexe,le type chaîne,le type booléen,le type liste,le type tuple,le type dictionnaire,le type ensemble.
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les différents typesaffectation multipleLes entrées, sortiesLes variables numériquesLes opérateurs booléens
Les variables : les différents types
On distingue essentiellement, sous Python, les types suivants :le type entier,le type entier long,le type complexe,le type chaîne,le type booléen,le type liste,le type tuple,le type dictionnaire,le type ensemble.
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les différents typesaffectation multipleLes entrées, sortiesLes variables numériquesLes opérateurs booléens
Les variables : les différents types
On distingue essentiellement, sous Python, les types suivants :le type entier,le type entier long,le type complexe,le type chaîne,le type booléen,le type liste,le type tuple,le type dictionnaire,le type ensemble.
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les différents typesaffectation multipleLes entrées, sortiesLes variables numériquesLes opérateurs booléens
Les variables : l’affectation 1/5
Traduction algorithmique
Variable
i,j:entierbidule:flottant
Début
j ← 20
i ← 2*j
Fin
Traduction sous PythonOn affecte une variable par unevaleur en utilisant le signe =(qui n’a rien à voir avecl’égalité en math !).Dans une affectation, lemembre de gauche reçoit lemembre de droite (ce quinécessite deux temps d’horlogedifférents). Sous Python, letypage est dynamique.
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les différents typesaffectation multipleLes entrées, sortiesLes variables numériquesLes opérateurs booléens
Les variables : l’affectation 1/5
Traduction algorithmique
Variable
i,j:entierbidule:flottant
Début
j ← 20
i ← 2*j
Fin
Traduction sous PythonOn affecte une variable par unevaleur en utilisant le signe =(qui n’a rien à voir avecl’égalité en math !).Dans une affectation, lemembre de gauche reçoit lemembre de droite (ce quinécessite deux temps d’horlogedifférents). Sous Python, letypage est dynamique.
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les différents typesaffectation multipleLes entrées, sortiesLes variables numériquesLes opérateurs booléens
Les variables : l’affectation 1/5
Traduction algorithmique
Variable
i,j:entierbidule:flottant
Début
j ← 20
i ← 2*j
Fin
Traduction sous PythonOn affecte une variable par unevaleur en utilisant le signe =(qui n’a rien à voir avecl’égalité en math !).Dans une affectation, lemembre de gauche reçoit lemembre de droite (ce quinécessite deux temps d’horlogedifférents). Sous Python, letypage est dynamique.
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les 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.
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les différents typesaffectation multipleLes entrées, sortiesLes variables numériquesLes opérateurs booléens
Variables numériques :
Les priorités opératoires sur les variables numériques sontrespectées. Le symbole de la multiplication est noté (*). Celui del’exponentiation est noté (**). Le nombre complexe i est noté 1j(Notation des physiciens). Pour utiliser les fonctions mathématiquescourantes il faut d’abord importer un module dédié à cà : c’est lemodule (ou bibliothèque) math.
>>> 3 - 7*(5 - 3)**2-25>>> 7/2 # Division entière
4 3>>> 7/2.03.5
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les différents typesaffectation multipleLes entrées, sortiesLes variables numériquesLes opérateurs booléens
Variables numériques :
Les priorités opératoires sur les variables numériques sontrespectées. Le symbole de la multiplication est noté (*). Celui del’exponentiation est noté (**). Le nombre complexe i est noté 1j(Notation des physiciens). Pour utiliser les fonctions mathématiquescourantes il faut d’abord importer un module dédié à cà : c’est lemodule (ou bibliothèque) math.
>>> 3 - 7*(5 - 3)**2-25>>> 7/2 # Division entière
4 3>>> 7/2.03.5
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les différents typesaffectation multipleLes entrées, sortiesLes variables numériquesLes opérateurs booléens
Variables numériques :
Les priorités opératoires sur les variables numériques sontrespectées. Le symbole de la multiplication est noté (*). Celui del’exponentiation est noté (**). Le nombre complexe i est noté 1j(Notation des physiciens). Pour utiliser les fonctions mathématiquescourantes il faut d’abord importer un module dédié à cà : c’est lemodule (ou bibliothèque) math.
>>> 3 - 7*(5 - 3)**2-25>>> 7/2 # Division entière
4 3>>> 7/2.03.5
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Les différents typesaffectation multipleLes entrées, sortiesLes variables numériquesLes opérateurs booléens
Variables numériques :
Les priorités opératoires sur les variables numériques sontrespectées. Le symbole de la multiplication est noté (*). Celui del’exponentiation est noté (**). Le nombre complexe i est noté 1j(Notation des physiciens). Pour utiliser les fonctions mathématiquescourantes il faut d’abord importer un module dédié à cà : c’est lemodule (ou bibliothèque) math.
>>> 3 - 7*(5 - 3)**2-25>>> 7/2 # Division entière
4 3>>> 7/2.03.5
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
• Les dictionnaires ne sont pas ordonnés. On ne peut pas les indicer.BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
• Les dictionnaires ne sont pas ordonnés. On ne peut pas les indicer.BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les instructions conditionnelles et itérativesLes fonctionsLes modules
L’instruction ifL’instruction if - elseif - else multipleL’instruction whileL’instruction for
L’instruction if
• L’instuction if est constituée de trois composantes : le mot clé,l’expression dont on veut tester la véracité et une suite de codes àexécuter si l’expression booléenne est évaluée à 1 ou vraie.
Traduction algorithmique
Début
Si i=0 Alors
Afficher("i est nul")
FinSi
Fin
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les instructions conditionnelles et itérativesLes fonctionsLes modules
L’instruction ifL’instruction if - elseif - else multipleL’instruction whileL’instruction for
Traduction sous Python
>>> i=0 # typage dynamique>>> if i == 0 :... print " i est nul "
4 ...i est nul
>>>
Remarques :Les deux points après la fin de l’instruction ifL’indentation du bloc associé à celle-ci. Là où d’autreslangages de programmation utilisent des accolades pourdélimiter les blocs d’instuctions, Python utilise l’indentation.
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les instructions conditionnelles et itérativesLes fonctionsLes modules
L’instruction ifL’instruction if - elseif - else multipleL’instruction whileL’instruction for
Traduction sous Python
>>> i=0 # typage dynamique2 >>> if i == 0 :... print " i est nul "...i est nul
>>>
Remarques :Les deux points après la fin de l’instruction ifL’indentation du bloc associé à celle-ci. Là où d’autreslangages de programmation utilisent des accolades pourdélimiter les blocs d’instuctions, Python utilise l’indentation.
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les 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
• Remarquez la présence des deux points : après l’instruction whileet l’indentation au même niveau du bloc qui suit et la virgule aprèscpt**2 qui évite le retour à ligne.
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les instructions conditionnelles et itérativesLes fonctionsLes modules
L’instruction ifL’instruction if - elseif - else multipleL’instruction whileL’instruction for
Liste en compréhension (1/3)
DéfinitionUne liste en compréhension est une expression qui permet degénérer une liste d’une manière très compacte. Elle est équivalenteà une boucle for associée à la méthode append qui construirait lamême liste.
Traduction Python
1 >>> [n**2 for n in range (11)][0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100]>>> [c for c in ’pizza’][’p’, ’i’, ’z’, ’z’, ’a’]
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les instructions conditionnelles et itérativesLes fonctionsLes modules
L’instruction ifL’instruction if - elseif - else multipleL’instruction whileL’instruction for
Liste en compréhension (2/3)
Traduction Python
1 >>> [2*n+7 for n in range (1,11)][9, 11, 13, 15, 17, 19, 21, 23, 25, 27]>>> [x for x in range (21) if x % 2 == 0][0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20]>>> [x**2 for x in range (8) if not x % 2]
6 [0, 4, 16, 36]>>> [x for x in range (1,31) if x % 2 == 0 and x
% 3 == 0][6, 12, 18, 24, 30]>>> [x**2+y**2 for x in range (3) for y in range
(5) if x < y][1, 4, 9, 16, 5, 10, 17, 13, 20]
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les 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.
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.
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.
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.
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.
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.
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
Le module random
• Le module random fournit des fonctions de génération de valeurspesudo-aléatoires, basées sur une implémentation en C del’algorithme déterministe Mersenne Twister.http://www.techno-science.net/?onglet=glossaire&definition=6166• Pour pouvoir l’utiliser, comme pour tout module, on l’imported’abord au moyen de la syntaxe :
>>> from random import * # cela permet d’importer toutes les fonctions du module
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
Le module random
• Le module random fournit des fonctions de génération de valeurspesudo-aléatoires, basées sur une implémentation en C del’algorithme déterministe Mersenne Twister.http://www.techno-science.net/?onglet=glossaire&definition=6166• Pour pouvoir l’utiliser, comme pour tout module, on l’imported’abord au moyen de la syntaxe :
>>> from random import * # cela permet d’importer toutes les fonctions du module
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
Les fonctions les plus couramment utilisées :
randint(a,b) Accepte des valeurs entières et retourne unnombre aléatoire compris entre ces deux valeurs (celles-ciincluses),randrange() Accepte les mêmes paramètres que range() etretourne un entier aléatoire dans ce même intervalle,uniform(a,b) Renvoie un réel (un flottant) compris entre a etb, b non compris,random() Fonctionne comme uniform() mais en fixant la pluspetite valeur à 0.0 et la plus grande à 1.0choice(séquence) Retourne un élément de la séquence choisieau hasard.
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
Les fonctions les plus couramment utilisées :
randint(a,b) Accepte des valeurs entières et retourne unnombre aléatoire compris entre ces deux valeurs (celles-ciincluses),randrange() Accepte les mêmes paramètres que range() etretourne un entier aléatoire dans ce même intervalle,uniform(a,b) Renvoie un réel (un flottant) compris entre a etb, b non compris,random() Fonctionne comme uniform() mais en fixant la pluspetite valeur à 0.0 et la plus grande à 1.0choice(séquence) Retourne un élément de la séquence choisieau hasard.
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
Les fonctions les plus couramment utilisées :
randint(a,b) Accepte des valeurs entières et retourne unnombre aléatoire compris entre ces deux valeurs (celles-ciincluses),randrange() Accepte les mêmes paramètres que range() etretourne un entier aléatoire dans ce même intervalle,uniform(a,b) Renvoie un réel (un flottant) compris entre a etb, b non compris,random() Fonctionne comme uniform() mais en fixant la pluspetite valeur à 0.0 et la plus grande à 1.0choice(séquence) Retourne un élément de la séquence choisieau hasard.
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
Les fonctions les plus couramment utilisées :
randint(a,b) Accepte des valeurs entières et retourne unnombre aléatoire compris entre ces deux valeurs (celles-ciincluses),randrange() Accepte les mêmes paramètres que range() etretourne un entier aléatoire dans ce même intervalle,uniform(a,b) Renvoie un réel (un flottant) compris entre a etb, b non compris,random() Fonctionne comme uniform() mais en fixant la pluspetite valeur à 0.0 et la plus grande à 1.0choice(séquence) Retourne un élément de la séquence choisieau hasard.
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
Les fonctions les plus couramment utilisées :
randint(a,b) Accepte des valeurs entières et retourne unnombre aléatoire compris entre ces deux valeurs (celles-ciincluses),randrange() Accepte les mêmes paramètres que range() etretourne un entier aléatoire dans ce même intervalle,uniform(a,b) Renvoie un réel (un flottant) compris entre a etb, b non compris,random() Fonctionne comme uniform() mais en fixant la pluspetite valeur à 0.0 et la plus grande à 1.0choice(séquence) Retourne un élément de la séquence choisieau hasard.
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
Les fonctions les plus couramment utilisées :
randint(a,b) Accepte des valeurs entières et retourne unnombre aléatoire compris entre ces deux valeurs (celles-ciincluses),randrange() Accepte les mêmes paramètres que range() etretourne un entier aléatoire dans ce même intervalle,uniform(a,b) Renvoie un réel (un flottant) compris entre a etb, b non compris,random() Fonctionne comme uniform() mais en fixant la pluspetite valeur à 0.0 et la plus grande à 1.0choice(séquence) Retourne un élément de la séquence choisieau hasard.
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
Le module numpy
• Le module scientifique numpy permet, entre autres, lamanipulation et le calcul matriciel.• Pour plus d’informations, consulter le site :http://docs.scipy.org/doc/
>>> from numpy import *>>> x = array ([[1 ,2 ,3]])
3 >>> print x, x.shape[[1 2 3]] (1, 3)
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
Le module numpy
• Le module scientifique numpy permet, entre autres, lamanipulation et le calcul matriciel.• Pour plus d’informations, consulter le site :http://docs.scipy.org/doc/
1 >>> from numpy import *>>> x = array ([[1 ,2 ,3]])>>> print x, x.shape[[1 2 3]] (1, 3)
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
Le module matplotlib
Courbes 1D et 2D• Le module matplotlib, avec son interface pylab, permet d’afficherdes nuages de points, des courbes et des images. La documentationcomplète est disponible à l’adresse suivante :http://matplotlib.sourceforge.net/users/
• Les courbes et les surfaces en dimension 3 nécessitent le modulemplot3D dont le tutoriel est lisible à l’adresse :http://matplotlib.sourceforge.net/mpl_toolkits/mplot3d/tutorial.html
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
AlgoBox vers Python
Algorithme sous AlgoBox (2/4)1 VARIABLES2 i EST_DU_TYPE NOMBRE3 res EST_DU_TYPE NOMBRE4 DEBUT_ALGORITHME5 res PREND_LA_VALEUR 16 i PREND_LA_VALEUR 17 TANT_QUE (i<=10) FAIRE8 DEBUT_TANT_QUE9 res PREND_LA_VALEUR res*i10 i PREND_LA_VALEUR i+111 FIN_TANT_QUE12 AFFICHER res13 FIN_ALGORITHME
• La déclaration des variablesn’existe pas sous Python
Traduction sous Python
>>> res=1>>> i=1>>> while (i <=10):
4 ... res=res*i... i=i+1...>>> print res3628800
9 >>>
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
AlgoBox vers Python
Algorithme sous AlgoBox (2/4)1 VARIABLES2 i EST_DU_TYPE NOMBRE3 res EST_DU_TYPE NOMBRE4 DEBUT_ALGORITHME5 res PREND_LA_VALEUR 16 i PREND_LA_VALEUR 17 TANT_QUE (i<=10) FAIRE8 DEBUT_TANT_QUE9 res PREND_LA_VALEUR res*i10 i PREND_LA_VALEUR i+111 FIN_TANT_QUE12 AFFICHER res13 FIN_ALGORITHME
• La déclaration des variablesn’existe pas sous Python
Traduction sous Python
1 >>> res=1>>> i=1>>> while (i <=10):... res=res*i... i=i+1
6 ...>>> print res3628800>>>
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
Le module SymPy
DescriptionAvec le module SymPy, on peut faire du calcul symbolique de toutesorte, par exemple :
calcul exact sur les fractions et les radicaux,calculs algébriques sur les polynômes et les fractionsrationnelles,calculs trigonométriques,calculs de limites,calculs de dérivées,calculs de primitives et d’intégrales définies,résolution d’équations, de systèmes linéaires et d’équationsdifférentielles.
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
Le module SymPy
DescriptionAvec le module SymPy, on peut faire du calcul symbolique de toutesorte, par exemple :
calcul exact sur les fractions et les radicaux,calculs algébriques sur les polynômes et les fractionsrationnelles,calculs trigonométriques,calculs de limites,calculs de dérivées,calculs de primitives et d’intégrales définies,résolution d’équations, de systèmes linéaires et d’équationsdifférentielles.
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
Le module SymPy
DescriptionAvec le module SymPy, on peut faire du calcul symbolique de toutesorte, par exemple :
calcul exact sur les fractions et les radicaux,calculs algébriques sur les polynômes et les fractionsrationnelles,calculs trigonométriques,calculs de limites,calculs de dérivées,calculs de primitives et d’intégrales définies,résolution d’équations, de systèmes linéaires et d’équationsdifférentielles.
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
Le module SymPy
DescriptionAvec le module SymPy, on peut faire du calcul symbolique de toutesorte, par exemple :
calcul exact sur les fractions et les radicaux,calculs algébriques sur les polynômes et les fractionsrationnelles,calculs trigonométriques,calculs de limites,calculs de dérivées,calculs de primitives et d’intégrales définies,résolution d’équations, de systèmes linéaires et d’équationsdifférentielles.
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
Le module SymPy
DescriptionAvec le module SymPy, on peut faire du calcul symbolique de toutesorte, par exemple :
calcul exact sur les fractions et les radicaux,calculs algébriques sur les polynômes et les fractionsrationnelles,calculs trigonométriques,calculs de limites,calculs de dérivées,calculs de primitives et d’intégrales définies,résolution d’équations, de systèmes linéaires et d’équationsdifférentielles.
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
Le module SymPy
DescriptionAvec le module SymPy, on peut faire du calcul symbolique de toutesorte, par exemple :
calcul exact sur les fractions et les radicaux,calculs algébriques sur les polynômes et les fractionsrationnelles,calculs trigonométriques,calculs de limites,calculs de dérivées,calculs de primitives et d’intégrales définies,résolution d’équations, de systèmes linéaires et d’équationsdifférentielles.
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
Le module SymPy
DescriptionAvec le module SymPy, on peut faire du calcul symbolique de toutesorte, par exemple :
calcul exact sur les fractions et les radicaux,calculs algébriques sur les polynômes et les fractionsrationnelles,calculs trigonométriques,calculs de limites,calculs de dérivées,calculs de primitives et d’intégrales définies,résolution d’équations, de systèmes linéaires et d’équationsdifférentielles.
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
Le module turtle 1/2
• Le module turtle permet de réaliser des figures géométriquescorrespondant à la trace laissée derrière elle par une petite tortuevirtuelle dont les dépalcements sont contrôlées à l’aided’instructions simples.reset() On efface tout et on recommence,goto(x ,y) Aller à l’endroit de coordonnées x et y ,forward(distance) Avancer d’une distance donnée,backward(distance) Reculer,up() Relever le crayon (pour avancer sans dessiner),down() Abaisser le crayon (pour recommencer à dessiner),color(couleur) couleur peut être une chaîne prédéfinie(’red’,etc)
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
Le module turtle 2/2
left(angle) Tourner à gauche d’un angle donné en degrés,right(angle) Tourner à droite,width(épaisseur) Choisir l’épaisseur du tracé,fill(1) Remplir un contour fermé,write(texte) texte doit être une chaîne de caractères .
Remarques• Le remplissage du contour fermée se fait à l’aide de la couleurchoisie. (’red’,’blue’,’green’,etc)• La chaîne de caractères dans le texte doit être délimitée avec des" ou des ’.
Pour une documentation complète, on se référera à l’adresse :http://docs.python.org/library/turtle.html
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les 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.
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
Quelques exemples de scripts
Procédé• Sous IDLE, dans fichier, on ouvre une nouvelle fenêtre danslaquelle on saisit le code du script.• On enregistre le fichier.• Pour exécuter le programme, on sélectionne "Run Module" dansle menu déroulant "Run". Si aucune erreur n’est détectée, lerésultat est affiché dans une autre fenêtre.• Certains des exemples de programmes qui suivent sont saisidirectement dans l’interpréteur Python.
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
1 seq="123321212321321212312321222221111212123233"Un=0Deux=0Trois=0for i in xrange(len(seq)):
6 if seq[i] == ’1’ :Un = Un + 1
if seq[i] == ’2’ :Deux = Deux + 1
if seq[i] == ’3’ :11 Trois = Trois + 1
print " Le nombre de ’1’ est : ", Unprint " Le nombre de ’2’ est : ", Deuxprint " Le nombre de ’3’ est : ", Troisprint " Le pourcentage des ’1’ et ’2’ est : %4.1
f" %(100.0*( Un + Deux)/len(seq)), "%"
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
Python et sage
Sagemath
Sagemath (ou Sage) est un logiciel de mathématiques souslicence libre (GPL). Il combine la puissance de nombreuxprogrammes libres dans une interface commune basée sur lelangage de programmation Python.Sage a pour but de devenir une alternative libre aux logicielsMagma, Maple, Mathematica et Matlab. Sage permet de faire desmathématiques générales et avancées, pures et appliquées. Il couvreune vaste gamme de mathématiques, dont l’algèbre, l’analyse, lathéorie des nombres, la cryptographie, l’analyse numérique,l’algèbre commutative, la théorie des groupes, la combinatoire, lathéorie des graphes, l’algèbre linéaire formelle, etc ?
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les instructions conditionnelles et itérativesLes fonctionsLes modules
Le module randomnumpy, scipy et pylabSymPy, NetworkX
Sage et LATEX
• Pour se documenter et télécharger le logiciel, consulter le site :http://www.sagemath.org/fr/• Le lien suivant vous permet d’ouvrir un compte pour utiliser lelogiciel sage via un navigateur web. Aucune installation locale n’estnécessaire.http://www.sagenb.org/• Le package Sagetex permet d’inclure du code sage dans undocument LATEX. Le code est exécuté en lieu et place par sagemath.http://www.ctan.org/tex-archive/help/Catalogue/entries/sagetex.html
BOUKARI Abdel-Ilah http://boukari.abdelilah.free.fr Algorithmique et traduction Python
Les 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