Vous êtes sur la page 1sur 6

Initiation à l’algorithmique et au langage de programmation PYTHON – 1ère partie

Préambule : Présentation d’EduPython


 Python est un langage de programmation inventé dans les années 1990 (par le programmeur Guido Van
Rossum), son usage est maintenant largement répandu.
 EduPython est une version de Python dans laquelle plusieurs modules supplémentaires sont installés et
prêts à l’emploi, notamment un module « lycee » spécialement créé pour le lycée !
EduPython est un logiciel libre : il fonctionne sans installation et fonctionne même sur une clé USB.

 Voici la fenêtre qui s’ouvre lorsque l’on ouvre EduPython

La fenêtre de l’éditeur est composée de


plusieurs zones :

A : Zone de saisie du programme,


B : Zone de l’explorateur Windows
pour aller chercher les fichiers,

C : Zone où le programme s’exécute,


cette zone s’appelle aussi la console
Python,

D : La barre de menu,
E : La barre d’outils.

 Pour écrire un programme,


cliquer sur « Nouveau fichier » et
sélectionner le modèle Python 3.4.

I – Algorithme – Variables - Affectation


1. Algorithme et notion de variables
Un algorithme est une suite finie d’instructions à appliquer dans un ordre déterminé à un nombre fini de
données pour arriver, en un nombre fini d’étapes, à un certain résultat.
Pour stocker un résultat, on utilise une variable. On peut se représenter une variable comme une « boîte »,
un emplacement de la mémoire d’un ordinateur… Pour pouvoir accéder à son contenu, on lui donne un nom.

1
Exemple 1 :
On peut ici utiliser une variable, que l’on nomme X, qui contient les
Choisir le nombre 7
résultats obtenus à la fin de chaque étape du programme de calcul.
Multiplier ce nombre par 2
Ajouter 3 au résultat.

Dans un algorithme ou un programme, les variables peuvent être de différents types :


- Les entiers quand les valeurs possibles de la variable sont des entiers (int sous Python);
- Les flottants quand les valeurs possibles de la variable sont des réels (float sous Python);
- Les chaînes de caractères quand les valeurs possibles de la variable sont des mots (str sous Python).
- Des booléens quand les variables ne peuvent prendre que deux valeurs True ou False (vrai ou faux). On les
rencontre avec les opérateurs de comparaison (est-ce égal ? est-ce inférieur ?...)

Exemple : Pour écrire un programme effectuant des statistiques sur des équipes sportives, il sera nécessaire
d’utiliser trois variables qu’on peut nommer : nom qui correspond au nom de l’équipe, effectif qui
correspond à son effectif et moyenne_age qui correspond à sa moyenne d’âge. Les valeurs possibles prises
par :
 nom sont des mots : elles sont donc de type chaînes de caractères.
 Effectif sont des nombres entiers ; elles sont donc de type entier.
 Moyenne_age sont des nombres réels, non entier en général ; elles sont donc de type flottant.

Les noms de variables peuvent-être constitués de lettres (minuscules ou majuscules mais la syntaxe doit-être
respectée : toto≠ TOTO ≠ Toto … )et de chiffres. Les lettres avec accents, les cédilles, les espaces et les
caractères spéciaux ($ ,@ ,? , % …) sont interdits.

Remarque : En Python, il n’est pas utile de déclarer les variables contrairement à Scratch par exemple.

Méthode et exercices 1 et 2 p24


………………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………………

2. Affectation d’une valeur à une variable


L’affectation est l’instruction qui permet d’affecter une valeur à une variable : on stocke une valeur
numérique ou du texte dans une mémoire.
Pour affecter la valeur 7 à un nombre a : En langage naturel : a ← 7 En langage Python : a=7.

Application 1 : On considère la suite des affectations ci-dessous.


Pour déterminer les valeurs prises par les variables en fin de programme, on exécute pas à pas la succession
des instructions en complétant le tableau ci-dessous.
a←2 a b
b←6 Initialisation
2
a ← 7 ×a −3× b 3ème ligne
b ← a−b 4ème ligne

Quelles sont les valeurs des variables a et b en fin de programme ?.................................................


Application 2 : On donne les algorithmes ci-dessous.
1. A ← Z−1 2. Z ← Z−1 3. Z ← Z−1
B← A∗A A ← Z∗Z B← Z∗Z
C ← Z +1 Z ← Z +1 A ← Z +1
D ←C∗C B← Z∗Z C ← A∗A
Z ← B+ D Z ← A +B Z ← B+C

2
Au début de l’algorithme, Z prend la valeur 5.
Dans chaque cas, déterminer la valeur de la variable Z à la fin de l’exécution de l’algorithme.
1. Z =……………..…… 2. Z = ………………….…. 3. Z = ………………………….

Dans votre dossier perso, créer un dossier maths, puis dans ce dossier créer un dossier SNT, puis un dossier
Python. Chaque programme « Python », des exercices ci-dessous, sera nommé ainsi : « pnom_appli...py »,
Exemple : Si l’élève Antoine Dumont écrit le programme de l’application 5, alors il le nommera
Adumont_appli5.py
Remarque : En cas de « bug » avec le logiciel Edupython, fermer le logiciel, ouvrir le dossier Maths, puis
double cliquer sur le fichier Repare Python. Ouvrir à nouveau Edupython.
3. Python: Les entrées/sorties
Activité 1 p 14

Application 3 : On considère l’algorithme ci-dessous.


(Remarque : Plutôt que d’affecter une valeur à une variable, on peut laisser l’utilisateur affecter la valeur de
son choix à la variable).
En langage naturel En PYTHON
x ← valeur saisie x=float ( input ( ' 'saisir une valeur' ' ) )
y ←5+ x y=5+ x Elévation à la
z ← 5−x z=5−x puissance 2 :
2
t ← y 2−z ² t= y ** 2−z ** 2 « y **= y
u ←20 x u=20∗x
x ← t−u x=t −u
Afficher x print( x )

i) Quelle est la valeur prise par la variable x en fin d’algorithme si l’utilisateur saisit 3 pour valeur de x en
début d’algorithme : ……………………………………..
ii) Appliquer le programme à une autre valeur entière de x . Exemple : x = ……………, on trouve : ………………
iii) Ecrire le programme et le tester pour d’autres valeurs. Quelle conjecture peut-on faire ? ………………………….
……………………………………………………………………………………………………………………………………………………………………..

iv) Appliquer le programme à quelques valeurs non entières de x . Que remarquez-vous ?


…………………………………………………………………………………………………………………………………………………………………………..
Remarque : Les nombres manipulés étant traités en base 2 par l’ordinateur (langage binaire), cela induit des
approximations problématiques dans les calculs avec des nombres non entiers. On évitera les tests sur des flottants.
Pour les curieux : cf activité 4 p37.

3
Application 4 :
i) Ecrire les programmes ci-dessous et expliquer la différence des affichages.

Programme 1 Programme 2
x= float(input(‘’ saisir une valeur ‘’)) x= float(input(‘’saisir une valeur ‘’))
n= int(input(‘’saisir une valeur ‘’)) n= int(input(‘’saisir une valeur ‘’))
z=x ** n z=x ** n
print (‘’z‘’) print ( z )

…………………………………………………………………………………………………………………………………………………………………………..
…………………………………………………………………………………………………………………………………………………………………………..
…………………………………………………………………………………………………………………………………………………………………………..
ii) On donne ci-dessous un programme écrit en langage Python. Permet-il d’obtenir l’affichage proposé ? Si non,
que faut-il modifier ? (L’affichage doit-être cohérent avec les valeurs des variables choisies).
………………………………………………………………………………………………………………………………………………………………………

Programme Affichage

ce programme calcule :
10.0 puissance 5 = 100000.0

Indication pour la suite :


Certaines fonctions mathématiques (comme la racine carrée) ne sont pas disponibles directement dans
Python. Il faut les importer. Pour cela, dans EduPython, il faut insérer la ligne suivante en début de
programme :
from lycee import * (attention: pas d'accent à lycee et un espace après import en terminant par *) et toutes
les librairies utiles seront chargées :
 sqrt(a ) renvoie la racine carrée de a , cos(a ), sin(a ) etc…
 randint(a , b ) renvoie à un entier aléatoire entre a et b inclus.

Programme
Application 5 :
Ecrire un algorithme en langage Python simulant le
lancer de deux dés dont les faces sont numérotées
de 1 à 6 et effectuant la somme des chiffres
obtenus sur les faces supérieures de chaque dé.

4
II – Instructions conditionnelles
a. Définition
Une condition est une proposition qui peut être vraie ou fausse.
Une instruction conditionnelle « si ... alors ... » indique les instructions à appliquer dans le cas
où la condition est vérifiée.
Une instruction conditionnelle peut aussi indiquer, dans un second temps, les instructions à
appliquer dans le cas où la condition n’est pas vérifiée : « si … alors … sinon… ».

Application 6 :
Un club sportif fait fabriquer des tee-shirts au nom du club. Chaque tee-shirt est facturé 4 € mais ils sont
facturés 3,50 € l’un si la commande est d’au moins 100 unités du produit. Soit n la variable égale au nombre de
tee-shirts commandés et p le pris payé par le club.
n ← valeur saisie
Calculer pdans les cas suivants : a. Si n=40 alors p = ………………
Si n<100
b. n=130 alors p = ………………
|Sinon
Alors p ←… … … ..
p ←… … … …
1. Compléter l'algorithme ci-contre pour qu'il donne le prix payé p en Fin Si
fonction du nombre n de tee-shirts commandés. Afficher p

Remarques :
 Dans le langage Python, Le « SI » est remplacé par « if » et le « ALORS » par les deux points « : ». Il n’y a
pas non plus dans Python, les lignes DEBUT_SI et FIN_SI. C’est une particularité importante de Python :
Les blocs d’instruction se signalent par des indentations (décalages du texte).
 Après avoir tapé la ligne « if n<100 : » et appuyé sur la touche « entrée », la ligne suivante est indentée.
On écrit alors la ligne « p=……. ». On procède de même pour « else : » .
 L’instruction « if » peut être complétée par « else » mais aussi par « elif » (contraction de else if).
L’algorithme ci-contre est la traduction de l’algorithme en n=int(input(« Saisir n »))
langage Python. Le compléter puis le taper sur la console if n<100 :
EduPython. p=… … .
else :
p=… …
print( p)
Les comparateurs :

< Strictement inférieur >= Supérieur ou égal


Egal (différent du « = » qui permet
> Strictement supérieure ==
d’affecter une valeur à une variable)
<= Inférieur ou égal != Différent

5
Application 7 :
Le programme ci-dessous calcule le prix à payer pour un voyage en fonction de l’âge du passager et du prix du
billet plein tarif.
Si le prix du billet plein tarif est 32€, combien paie un passager :
a) Agé de 10 ans ?
…………………………………………………
b) Agé de 65 ans ?
…………………………………………………
c) Agé de 15 ans ?
…………………………………………………..

Application 8 :
On veut déterminer si un entier naturel n est
un multiple de 7 .
Proposer un programme en Python qui détermine si
pour une valeur n saisie, n est un multiple de 7 .
NB : En langage Python, le reste de la division
euclidienne de a par b qui s’écrit a%b (dans la librairie
lycee).
Tester le programme pour n=529 et n=210.

Application 9 :
Un groupe de personnes souhaite réserver un chalet (dont la
capacité maximale est de 12 personnes) pour les sports
d’hiver. Le prix de la location à la semaine est 700€. Le forfait
pour skier est de 210€ par personne. Il existe aussi un tarif de
groupe à 170€ par personne à partir de 5 personnes d’un
même groupe.
Ecrire un programme en Python qui calcule le prix total
du séjour puis le prix par personne en fonction du
nombre de participants.

Si tu as fini :
 Exercices 37 et 38 p30.
 Exercices 40 à 42 p30 et 31.
 Exercices 92 et 93 p155.

Vous aimerez peut-être aussi