Bandeau

Initiation à Python

Découvrir Python en 15 minutes...

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.

repl it 001

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

 repl it 004 

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.

repl it 005

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