Accueil site MathGraph32 Images Activités Tableur Téléchargements Informations



Algorithmique

Avec Python

L'essentiel 
 
Introduction
Initiation
  Généralités
  Première activité
  Calcul d'une racine carrée
  Exemple en géométrie
  Exemple avec Logo
Prolongement
  Symétrie centrale
  Parallélogramme
  Procédures avec Logo
  Récursivité avec Logo
Avec Algobox
  Fraction irréductible
  Fonction monotone
  Résolution d'équation 1
  Résolution d'équation 2
Avec Python
  Environnement
  Autres environnements
  L'essentiel
  Premier exemple
  Addition de fractions
  Cryptographie
  Statistiques / Probabilité
Avec Java
  Environnement
  L'essentiel
  Premier exemple
  Avec des classes
 
Avec Python un commentaire doit être précédé du signe # (dans ce cas l'interpréteur ignore la suite de la ligne)
Les variables
Contrairement à d'autres langages, il n'y a pas de déclaration préalable de variables car elles sont dynamiquement typées, c'est à dire que leur type est déterminé par la valeur affectée à la variable.
Exemples :
a = 10                # a est de type int (entier)
a = "Bonjour"     # a est de type string (chaine de caractères)
a = 0.1               # a est de type float (nombre à virgule flottante pour les nombres réels)
Le type d'une variable peut changer au cours du programme.
Les Entrées/Sorties
Entrées
L'entrée d'une valeur par la fonction input() qui renvoie une valeur de type string (à partir de la version 3.1, l'instruction raw_input n'existe plus)
Exemple 1 :
a = input("donner un mot : ")
Si on tape Bonjour, a aura pour valeur : "Bonjour"

Exemple 2 :
a = input("Entrer un entier naturel : ")
Si on tape 10, la variable a aura pour valeur : "10" (chaîne composée des caractères 1 et 0). La variable a sera donc de type string.
On peut convertir cette chaîne en entier par la fonction int (et la variable a sera de type entier) :
a = int(input("Entrer un entier naturel"))
On peut également convertir la chaîne en décimal par la fonction float (et la variable a sera de type flottant) :
a = float(input("Entrer un nombre décimal")).
Attention, dans ce cas, la virgule doit être le point.

On peut également ouvrir un fichier pour la lecture de données par la fonction open(), cette fonction renvoie un objet (voir plus loin)
Sorties
Un affichage à l'écran se fait par l'instruction print.
Exemples :
a = 10
print(a)               # affiche la valeur de a, ici : 10
a="Bonjour"
print(a)               # affiche la valeur de a, ici : Bonjour
a = 10
print("La valeur de a est : ", a)    # affiche : La valeur de a est : 10

On peut également ouvrir un fichier pour l'écriture de données par la fonction open(), cette fonction renvoie un objet (voir plus loin)
Expression vraie / fausse
Python, tout comme de nombreux autres langages de programmation, considère que toute valeur numérique autre que zéro est « vraie ». Seule la valeur zéro est « fausse ».
La fonction intégrée bool() renvoie la valeur logique d'une expression.
Exemple :
a = float(input("Taper 0 ou un autre nombre : "))
print(bool(a))                 # affiche False si a=0, True si a<>0
Les opérateurs
Opérateurs numériques
+, -, *, /, **
// pour la division entière
% pour le reste dans la division entière
Opérateurs textuels
+ pour concaténer deux chaines de caractères
* pour répéter une chaine de caractères
Opérateurs logiques
<, >, <=, >=,
== pour égal
!= pour différent
Exemple :
print(bool(5<6))           # affiche True
Opérateurs booléens
or, and, not
Exemple :
print(bool(not(5<6)))    # affiche False
Les structures de boucle et de test
La première ligne d'une structure doit se terminer par : (deux points) ce qui provoque une indentation automatique (et obligatoire) de la ligne suivante. Pour finir le bloc, il suffit de revenir à l'indentation initiale.

Boucle dans un intervalle : for ... in ...range(...):
Pour désigner la plage de la variable de boucle, on utilise ici la fonction range(), on peut également utiliser une liste (voir plus loin)
Exemple 1 :
a = 5
for i in range(3):              # i prend les valeurs sucessives des entiers contenus dans l'intervalle [0 ; 3[
             a=a*a
print(a)                           # affiche 390625 (i = 0, a = 25 ; i = 1, a = 25*25; i = 2, a=625*625)

Exemple 2 :
a = 5
for i in range(1,6,2):       # i prend les valeurs sucessives des entiers contenus dans l'intervalle [1 ; 6[ par pas de deux
             a=a*i
print(a)                           # affiche 75 (i = 1, a = 5*1 ; i = 3, a = 5*3 ; i = 5, a = 15*5)

Boucle Tant que : while ...:
Exemple :
while i<10:
             i=i+1
print(i)                       # affiche 10 (i commence par prendre la valeur 0 et finit par 9 mais la boucle se termine par i = 9 + 1)

Test Si : if ...: elif: ... else: ...
Exemple 1 :
n=float(input("Donner un entier : "))
if n%1>0:
             print("ce n'est pas un entier")      # première condition
elif n<0:
             print("c'est un entier relatif")        # Sinon Si deuxième condition
else:
             print("c'est un entier naturel")      # Sinon dans tous les autres cas

Exemple 2 (exploite le fait que toute valeur autre que 0 est vraie) :
a = float(input("Taper 0 ou un autre nombre : "))
if a:
     print("condition vraie car a <> 0")
else:
     print("condition fausse car a = 0")
Les fonctions intégrées
Il y existe de multiples fonctions fournies avec la version de base de Python.
Des fonctions numériques : int(), float(), pow(), abs(), min(), max(), round(), complex(), hex(), bin(), ...
Des fonctions de traitement de chaines de caractères ou de liste : ch(), len(), del(), str(), ascii(), format(), sorted(), index(), zip()...
D'autres fonctions : input(), open(), print(), type(), ...
Les listes
Les listes sont des collections ordonnées d'objets. Une liste peut contenir des objets de type différent, un élément d'une liste peut même être une autre liste. De ce point de vue, une liste diffère du concept de tableau propre à certains autres langages. On peut accéder directement à un élément d'une liste par son index.
On peut définir une liste en donnant tous ses éléments séparés par une virgule, l'ensemble étant entre crochets.

Exemple :

code = ["01ABG", 45678, "KLYTR", "RW56A"]
On peut afficher l'ensemble de la liste ou certains éléments.
Exemple (en reprenant la liste précédente) :
print(code)            # affiche ['01ABG', 45678, 'KLYTR', 'RW56A']
print(code[3])        # affiche RW56A , l'index commençant à zéro
On peut modifier ou remplacer un élément de la liste.
Exemple :
code[1] = code[1] + 50
code [3] = "RW100"
print code             # affiche ['01ABG', 45728, 'KLYTR', 'RW100']
On peut également supprimer un élément de la liste par la fonction intégrée del().
Exemple :
del(code[1])
print(code)    # affiche ['01ABG', 'KLYTR', 'RW100'] et les index sont modifiés
Boucle avec une liste, exemple :
code = |"ABC", "DEFG", "12345"]
for c in code:
                print(len(c), end=",")    # affiche 3, 4, 5,
Les modules
Les fonctions intégrées au langage sont relativement peu nombreuses. D'autres sont regroupées dans des fichiers séparés que l'on appelle des modules. Il existe un grand nombre de modules pré-programmés qui sont fournis d'office avec Python. Souvent on essaie de regrouper dans un même module des ensembles de fonctions apparentées que l'on appelle des bibliothèques.
Le module math, par exemple, contient les définitions de nombreuses fonctions mathématiques telles que sinus, cosinus, tangente, racine carrée, etc.
Pour pouvoir utiliser ces fonctions, il suffit d'incorporer la ligne suivante au début du programme :
from math import *     # importe toutes les fonctions du module
Exemple :
from math import *
angle = pi/6                                               # pi est défini dans le module maths
print("Le sinus 30° vaut : ", sin(angle))     # affiche Le sinus 30° vaut : 0.5
Remarque :
Les modules peuvent aussi contenir des variables et des classes (voir plus loin).
Définition de fonctions et procédures
Pour définir dans un programme une fonction il faut utiliser le mot clé def suivi du nom de la fonction suivi des paramètres éventuels entre parenthèes puis par deux points. La valeur éventuellement retournée se désigne par l'instruction return. Une fonction qui ne retourne aucune valeur n'est pas une vraie fonction mais une procédure;
Exemple 1 : fonction f1()
def f1(a):
               y=3*a + 2
               return y
print(f1(10))                                   # affiche la valeur 32

Exemple 2 : procédure table9()
def table9():
               n=1
               while n<11:
                             print(n*9, end=",")
                             n=n+1
table9()                                        # affiche 9, 18, 27, 36, 45, 54, 63, 72, 81, 90,
Variables locales, variables globales
Lorsque les variables sont définies à l'intérieur du corps d'une fonction, ces variables ne sont accessibles qu'à la fonction elle-même. On dit que ces variables sont des variables locales à la fonction.
Les variables définies à l'extérieur d'une fonction sont des variables globales. Leur contenu est « visible » de l'intérieur d'une fonction, mais la fonction ne peut pas le modifier
Objets, propiétés et méthodes
Un objet est créé par instanciation d'une classe (une classe est une « catégorie » d'objets ou si l'on veut une sorte de modèle). Avec Python, on peut instancier une classe à l'aide d'une simple instruction d'affectation. D'autres langages imposent l'emploi d'une instruction spéciale, souvent appelée New pour bien montrer que l'on crée un nouvel objet à partir d'une classe.
Exemple : si Uneclasse est une classe
MonObjet = Uneclasse( )   # MonObjet est une variable qui contient un objet créé à partir de la classe Uneclasse
Remarque : la syntaxe de Python exige d'ajouter des parenthèses vides à la fin du nom de la classe

Les classes peuvent contenir des définitions de propriétés (ou attributs) et de méthodes qui pourront être appliquées aux objets.
La syntaxe est la suivante
objet.NomMéthode ou objet.NomAttribut
Les chaînes de caractères
Dans Python, une chaine de caractères (type string) est un objet possédant des méthodes. ainsi, la méthode find permet de rechercher une chaîne dans une autre, elle renvoie la première position à partir de laquelle la chaîne est trouvée.
Exemple :
phrase="Voici un programme simple"
p=phrase.find("prog")
print(p)                         # affiche 9 car commence à la position 0 et les espaces sont comptés
De nombreuses autres méthodes sont disponibles pour les chaines (split, join, count, lower, upper, capitalize, strip, replace, index ...)
Les listes
Dans Python, une liste peut être aussi considérée comme étant un objet particulier qui possède des méthodes.
Ainsi, il est possible d'ajouter des éléments un par un dans une liste (au départ vide) par la méthode append.

Exemple :

code=[ ]                                   # code est une liste vide
code.append = ["01ABG"]       # cet élément est ajouté à la liste vide
code.append[TR89B]              # cet élément sera ajouté à la fin de la liste code.
print(code);                              # affiche ['01ABG', 'TR89B']
D'autres méthodes sont disponibles pour les listes (sort, reverse, index, remove, ...)
Remarque :
Il existe aussi les Tuples et les Dictionnaires qui sont moins utilisés que les listes.
Ouverture d'un fichier
La fonction open() renvoie un objet auquel on peut appliquer la méthode read pour lire le fichier ou write pour écrire dans le fichier.
Exemple : écriture
objetFichier = open("Monfichier.txt",'a')     # "w" pour l'écriture (write)
objetFichier.write("Le code est : ")
objetFichier.write("ABC123K")
objetFichier.close()

Exemple : lecture
objetfichier = open("Monfichier.txt", "r")    # "r" pour la lecture (read)
contenu = objetfichier.read()
print(contenu)                                           # affiche Le code est : ABC123K
objetfichier.close()

Remarque :
Il exite d'autres méthodes pour écrire/lire sucessivement des lignes dans un fichier.
Interface graphique (GUI : Graphical User Interface)
Phyton permet de créer une interface graphique pour une application en utilisant, par exemple, la bibliothèque tkinter. Toutefois il faut faire un peu de programmation objet.

© Matabu mars 2020 - Tous droits réservés. Limitation à l'usage non commercial, privé ou scolaire.