Un exemple pour débuter en Python

L’objectif du programme


Ce petit programme va nous permettre de voir les principales caractéristiques de ce langage.

On veut simuler un programme comme ceux que l’on rencontre au collège :
– on choisit une valeur ;
– on ajoute 2 ;
– on multiplie par 2;
– on obtient le résultat final.

Version 1


Pour l’instant, on suit pas à pas ce que nous demande l’exercice précédemment décrit.

On ouvre le programme Python (IDLE). On édite un nouveau programme que l’on nomme version1.py. Attention, tous les fichiers python doivent obligatoire avoir comme extension « .py ».

x=13
resultat=x+2
resultat=resultat*2
print(resultat)

On sauvegarde ce fichier version1.py et on le lance en appuyant sur F5.

On obtient dans la fenêtre d’exécution :

>>>
30
>>>

Pour l’instant, rien de très sensationnel. Les élèves sont déçus … Tout ça pour ça ?

A ce niveau, on peut juste parler des variables, notamment de qui se passe avec « resultat ».

Version 2


Tout d’abord, on va essayer de soigner la présentation du résultat :

x=13
resultat=x+2
resultat=resultat*2
print("Quand x vaut "+repr(x)+", le résultat vaut " +repr(resultat)+" !")

On sauvegarde ce fichier version2.py et on le lance en appuyant sur F5.

On obtient dans la fenêtre d’exécution :

>>>
Quand x vaut 13 , le résultat vaut 30 !
>>>

C’est déjà mieux ! Les élèves s’amusent à modifier la mise en forme du résultat :

>>>
Quand le mage dit 13 , l'écho répond 30 !
>>>

ou pour les matheux :

>>>
f( 13 )=30
>>>

Version 3


Le gros inconvénient pour l’instant est de devoir choisir la valeur de « x » dans le programme. Tentons d’y remédier :

x=int(input("Rentrer la valeur de x : "))
resultat=x+2
resultat=resultat*2
print("Quand x vaut "+repr(x)+", le résultat vaut " +repr(resultat)+" !")

On sauvegarde ce fichier version3.py et on le lance en appuyant sur F5. On me demande de rentrer la valeur de x. je choisis par exemple 7.

On obtient dans la fenêtre d’exécution :

>>>
Rentrer la valeur de x : 7
Quand x vaut 7 , le résultat vaut 18 !
>>>

Ça s’améliore. Pas vite, mais on progresse …

Une petite explication : x=int(raw_input("Rentrer la valeur de x : ")) signifie que l’on demande une valeur à l’utilisateur (raw_input) puis on la convertit en un entier. x est donc un entier.

Version 4


Créons maintenant une boucle pour continuer de calculer des résultats pour différentes valeurs de x.

"""
Le programme va vous demander de choisir en bouche des valeurs de x.
Pour sortir, il suffira de choisir la valeur 0.
"""

x=3 #il faut une valeur différente de 0 pour rentrer dans la boucle
while(x!=0):
x=int(input("Rentrer la valeur de x : "))
resultat=x+2
resultat=resultat*2
print("Quand x vaut "+repr(x)+", le résultat vaut "+repr(resultat)+" !\n")

print("Happy end !")

On sauvegarde ce fichier version4.py et on le lance en appuyant sur F5.

On obtient dans la fenêtre d’exécution :

>>>
Le programme va vous demander de choisir en bouche des valeurs de x.
Pour sortir, il suffira de choisir la valeur 0.

Rentrer la valeur de x : 4
Quand x vaut 4 , le résultat vaut 12 !

Rentrer la valeur de x : 3
Quand x vaut 3 , le résultat vaut 10 !

Rentrer la valeur de x : 0
Quand x vaut 0 , le résultat vaut 4 !

Happy end !
>>>

Une boucle ! Ça ressemble enfin à un programme.

Il faut vraiment ici insister sur les tabulations qui existent sur les lignes qui suivent le « while ». C’est ce décalage qui va indique jusqu’où le bloc va aller. Ainsi, la ligne finale n’est pas décalée. Elle est en dehors de la boucle.

Les lignes print "\n" servent à faire un saut de ligne pour améliorer la présentation.

Version 5


On peut rajouter des petits tests sur le résultat :

"""Le programme va vous demander de choisir en bouche des valeurs de x.
Pour sortir, il suffira de choisir la valeur 0.
"""

x=3 #il faut une valeur différente de 0 pour rentrer dans la boucle
while(x!=0):
    x=int(input("Rentrer la valeur de x : "))
    resultat=x+2
    resultat=resultat*2
    print("Quand x vaut "+repr(x)+", le résultat vaut "+repr(resultat)+" !\n")
    if (resultat >0):
        print("Ce résultat est positif.")
    elif (resultat<0):
        print("Ce résultat est négatif.")
    else :
        print("Ce résultat est nul.")
    print("\n")

print("Happy end !")

On sauvegarde ce fichier version5.py et on le lance en appuyant sur F5.

On obtient dans la fenêtre d’exécution :

>>>
Le programme va vous demander de choisir en bouche des valeurs de x.
Pour sortir, il suffira de choisir la valeur 0.

Rentrer la valeur de x : 10
Quand x vaut 10 , le résultat vaut 24 !
Ce résultat est positif.

Rentrer la valeur de x : -9
Quand x vaut -9 , le résultat vaut -14 !
Ce résultat est négatif.

Rentrer la valeur de x : -2
Quand x vaut -2 , le résultat vaut 0 !
Ce résultat est nul.

Rentrer la valeur de x : 0
Quand x vaut 0 , le résultat vaut 4 !
Ce résultat est positif.

Happy end !
>>>

A noter encore une fois l’importance des décalages pour délimiter les tests.

Version 6


Enfin, on peut séparer la définition de la fonction du reste du programme. ce sera plus simple pour la modifier.

#------------------- on définit la fonction
def mafonction(t):
    """ Je mets ici le commentaire sur ma fonction.
C'est une fonction de la variable t.
Elle renvoie son image.
Ainsi, remarquez les points pour signaler que l'on ne travaille pas avec des entiers.
C'est plus prudent !"""
    image=2.*(t+2.)
    return image

#-------------------- le programme principal
"""Le programme va vous demander de choisir en bouche des valeurs de x.
Pour sortir, il suffira de choisir la valeur 0.
"""
x=3 #il faut une valeur différente de 0 pour rentrer dans la boucle
while(x!=0):
    x=int(input("Rentrer la valeur de x : "))
    resultat=mafonction(x)
    print("Quand x vaut "+repr(x)+", le résultat vaut "+repr(resultat)+" !\n")
    if (resultat >0):
        print("Ce résultat est positif.")
    elif (resultat<0):
        print("Ce résultat est négatif.")
    else :
        print("Ce résultat est nul.")
    print("\n")

print("Happy end !")

On sauvegarde ce fichier version6.py et on le lance en appuyant sur F5.

On obtient dans la fenêtre d’exécution :

>>>
Le programme va vous demander de choisir en bouche des valeurs de x.
Pour sortir, il suffira de choisir la valeur 0.

Rentrer la valeur de x : 3
Quand x vaut 3.0 , le résultat vaut 10.0 !
Ce résultat est positif.

Rentrer la valeur de x : 0
Quand x vaut 0.0 , le résultat vaut 4.0 !
Ce résultat est positif.

Happy end !
>>>

A noter l’utilisation désormais du format de nombres « float » au lieu de « int ». C’est fortement recommandé pour éviter des soucis. En effet, si on demande à Python de faire une opérations entre des entiers, il donne un résultat entier comme « 5/3 » qui donne comme résultat « 1 ». Mieux vaut taper « 5./3. ».

Version 7


Une dernière version pour montrer l’utilisation de la librairie.

import math # pour rendre accessible la librairie mathématique

#------------------- on définit la fonction
def f(t):
    """ Un exemple de fonction faisant appel la la librairie des fonctions
mathématiques : la fonction racine carrée."""
    image=t**2-3*t+2
    return image

#-------------------- le programme principal
"""Le programme va vous demander de choisir en boucle des valeurs de x.
print "Pour sortir, il suffira de choisir la valeur 0."""

x=3 #il faut une valeur différente de 0 pour rentrer dans la boucle
while(x!=0):
    x=float(input("Rentrer la valeur de x : "))
    if (x<0):
        print("Il faut une valeur positive ou nulle !")
    else :
        resultat=f(x)
        print("f("+repr(x)+ ")="+repr(resultat))
    print("\n")

print("Happy end !")

On sauvegarde ce fichier version7.py et on le lance en appuyant sur F5.

On obtient dans la fenêtre d’exécution :

>>>
Le programme va vous demander de choisir en bouche des valeurs de x.
Pour sortir, il suffira de choisir la valeur 0.

Rentrer la valeur de x : -3
Il faut une valeur positive ou nulle !

Rentrer la valeur de x : 5
f( 5.0 )= 2.2360679775

Rentrer la valeur de x : 0
f( 0.0 )= 0.0

Happy end !
>>>