Premiers pas
Se lancer dans la programmation avec Python peut faire peur : si les documentations qu’on trouve un peu partout proposent des choses intéressantes, elles ne sont pas toujours claires et parfois mal adaptées au niveau de quelqu’un qui débute.
Un bon moyen de commencer avec Python est de s’affranchir des problèmes d’installation en utilisant un environnement en ligne.
L’interface de programmation de repl.it est divisée en deux parties :
- à gauche, sur fond clair, la fenêtre de script où nous allons pouvoir écrire des programmes complets qui pourront être sauvegardés plus tard ;
- à droite, sur fond sombre, la console dans laquelle le code est exécuté comme sur une calculatrice.
Essayez vous-même de saisir les commandes suivantes dans la console (fenêtre de droite, sur fond sombre) :
- 2 - 2 * 5
- 1 / ( 0.5 - 1/2 )
- 5**2
- 10 / 3
- print ( " 3/2 = ", 3/2)
C’est simple, mais c’est limité, en effet les commandes suivantes renvoient des erreurs :
- cos(0)
- exp(1)
- log(1)
Pour aller plus loin et disposer de fonctions mathématiques sérieuses, il va falloir charger une bibliothèque nommée "math" en saisissant la commande "from math import * ".
Les commandes ci-dessus fonctionnent alors comme on s’y attend.
Un premier programme
Maintenant que nous avons vu les premières instructions dans la console, allons dans la fenêtre de script, à gauche, pour écrire un programme permettant de calculer le périmètre ou l'aire d'un disque en fonction de son rayon.
Nous définissons deux fonctions "perim" et "aire" à l'aide du mot clé "def" avec, en fin de ligne, le symbole ":", obligatoire. La définition de chaque fonction se trouve dans le bloc d'instructions délimité par l'indentation - le décalage -, elle aussi obligatoire.
La constante "pi" est fournie par la librairie "math", elle nous sera utile.
from math import * def perim(r): p = 2 * pi * r return p
On définit de même la fonction "aire", ici sans utiliser de variable intermédiaire puisque ce n'est en réalité pas nécessaire.
Pour calculer le carré de r, on utilise "r**2".
def aire(r): return pi * r**2
Pour utiliser ce programme, il faut l'exécuter puis lancer un appel à chacune des fonctions, comme on le voit sur la copie d'écran suivante
Puisque repl.it permet le partage, voici un lien permettant d'accéder à ce programme prêt à exécuter en cliquant sur le bouton «Run |>».
Remarque : le partage est une fonctionnalité particulièrement intéressante pour une utilisation pédagogique de repl.it en classe. Nous en reparlerons dans un prochain article.
Pour terminer cette initiation
Voici un programme qui détermine les éventuelles racines réelles d’un polynôme de degré 2 à coefficients réels. Il y a ici une structure conditionnelle pour distinguer les cas selon le signe du discriminant.
Pour calculer les racines carrées, nous utiliserons la fonction "sqrt" (square root) fournie par la bibliothèque "math".
Le symbole "=" est utilisé pour affecter une valeur à une variable.
Les lignes commençant par le symbole "#" sont des commentaires qui ne sont pas exécutés par le programme.
from math import * def secondDeg(a,b,c): # Calcul de discriminant D = b**2 - 4*a*c # Deux cas se présentent : # soit Delta est strictement négatif if D < 0 : return D # soit il ne l'est pas else : return D, (-b - sqrt(D))/(2*a), (-b + sqrt(D))/(2*a)
Vous pouvez retrouver ce programme en cliquant ici.
Analysons les deux lignes suivantes :
if D < 0 : return D
Le mot "if" est suivi de la condition "D < 0" puis du signe ":", qui est indispensable et qui signifie en quelque sorte "alors".
Nous avons donc : "si D est strictement négatif, alors".
La ligne suivante est décalée horizontalement de deux espaces par rapport à la condition précédente. C’est obligatoire. Ce décalage constitue le bloc d’instructions qui sera exécuté lorsque la condition qui le précède est vraie :
"si D est strictement négatif, alors renvoyer la valeur du discriminant".
Les lignes qui suivent permettent d'afficher les deux racines, éventuellement égales, de ce polynôme du second degré.
Le programme n'est pas complètement satisfaisant puisqu'il traite ensemble les cas Delta = 0 et Delta > 0. On va donc l'améliorer en utilisant "elif", contraction de "else if", qui ajoute un test dans notre structure conditionnelle
Remarque : le "==" est utilisé dans le cas d'une instruction conditionnelle, pour un test d'égalité.
from math import * def secondDeg(a,b,c): # Calcul de discriminant D = b**2 - 4*a*c # Trois cas se présentent : # soit Delta est strictement négatif if D < 0 : return D # soit Delta est nul elif D==0 : return D, -b/(2*a) # soit Delta est strictement positif else : return D, (-b - sqrt(D))/(2*a), (-b + sqrt(D))/(2*a)
Exercice : Dans le cas où a est nul, le programme va afficher des erreurs ou un résultat faux. Modifier le programme pour éviter cela.
Article proposé par Nicolas Poulain
Membre du Giptic de Mathématiques