0% ont trouvé ce document utile (0 vote)
30 vues10 pages

2 Python

Transféré par

arthur.brun12
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
30 vues10 pages

2 Python

Transféré par

arthur.brun12
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
Vous êtes sur la page 1/ 10

Document crée par Yann MOBIAN

1 Présentation
1 1 Pourquoi un tel nom ?

Le langage Python est un langage de programmation apparu vers 1990. Développé


au départ par Guido van Rossum, un développeur néerlandais, il porte son nom en
référence à la troupe d’humoristes britanniques des années 80 des Monty Python.

1 2 Le plus d’EduPython téléchargeable ici: https://edupython.tuxfamily.org

Il existe plusieurs logiciels qui utilisent le langage Python. Cependant, EduPython pos-
sède des avantages non négligeables pour démarrer la programmation avec un nouveau
langage :
? une interface traduite en français pour une plus grande convivialité.
? une bibliothèque lycee qui regroupe les bibliothèques les plus courantes ainsi que
de nouvelles fonctions pouvant servir au lycée.
? Une documentation en français contenant des exemples simples et plus complexes
de programmes.

Si vous utilisez une version portable de Python, votre ordinateur ne saura pas
ouvrir lui-même les programmes Python (.py)

1 3 Une interface conviviale


Dans un premier programme, nous afficherons l’affichage du texte « Hello World ». L’in-
terface choisie pour EduPython est un dérivé de Pyscripter, interface conviviale traduite
en français. Voici comment elle se présente :

Remarque.
Nous ne détaillerons pas davantage ici la barre d’outils très riche qui nous semble relati-
vement intuitive à utiliser. Enfin, pour utiliser la bibliothèque « lycee », un programme
Python devra commencer par from lycee import *(Pas d’accent à lycee et un espace
après import). Enfin, la première exécution peut parfois prendre du temps.

3
2 Les instructions de base

2 1 La gestion des espaces


Dans le langage Python, on peut passer des lignes pour plus de clarté, ce qui n’est pas
pris en compte lors de l’exécution du programme. Par contre, vous ne pouvez pas ajou-
ter un espace en début de ligne comme bon vous semble, car cela a une signification.
On appelle indentation ce décalage d’un cran d’une ou de plusieurs lignes d’un pro-
gramme. Elle permet de délimiter un bloc d’instructions dans une boucle ou lors d’une
exécution conditionnelle. La ligne précédent l’indentation se finit t oujours p ar deux
points. Quand vous appuyez sur la touche après avoir tapé « : », l’indentation est
automatiquement effectuée en même temps que le passage à la ligne.
1 a=2
2 b=6
3 if a != 0 :
4 print ( " Il y a une unique solution : " )
5 print ( b / a )

Remarque. Afin que le programme fonctionne, nous avons attribué à a et b des valeurs
arbitraires. Il est évidemment plus intéressant de demander des valeurs à l’utilisateur.

résultat de la console
Il y a une unique solution
3.0

2 2 Majuscule ou minuscule ?
Les instructions Python s’écrivent en minuscules. On peut utiliser des majuscules
dans les noms de variables. Par contre, il faudra l’écrire exactement de la même façon
dans la suite du programme, en recopiant bien minuscules et majuscules.
1 C o e ff i ci e n t D i r e c t e u r = 2
2 ord onneeAlOrigi ne = 6
3 print ( " y = " , CoefficientDirecteur , " x + " , ordon neeAlOrigine )

résultat de la console
y = 2x + 6

2 3 Commentaires
Le symbole # (se lit « croisillon », « hash » en anglais , symbole proche du « dièse »)
permet de faire figurer d ans l e c orps d u p rogramme u n c ommentaire q ui n e sera
pas pris en compte lors de son exécution. # porte sur le reste de la ligne.
1 a=2
2 b=6
3 if a != 0 : # cas où a est différent de zéro
4 print ( " Il y a une unique solution : " )
5 print ( b / a )

4
2 4 Le rôle du symbole =
Le symbole = n’est pas celui de l’égalité mathématique. Il s’agit d’affecter une valeur
à une variable : on stocke une valeur numérique ou du texte dans une mémoire. La
syntaxe est NomDeLaVariable = valeur.
1 a = 2 # a vaut 2
2 b = 3 # b vaut 3
3 s = b + 3 # s vaut 6
4 e = " bonjour " # e vaut " bonjour " ( chaine de caractères )
5 f = " prêt à faire des mathématiques ? "
6 # f vaut " prêt à faire des mathématiques ?" ( chaine de
caractères )

Remarque.
Évidemment si vous exécutez ce programme rien de visible ne se passe puisqu’aucun
affichage n’est demandé.

Quand on veut définir une chaine de caractères, on la délimite soit à l’aide de


guillemets " " soit d’apostrophes ’ ’. Si la chaine de caractères que l’on veut définir est
Vous avez ”gagné”., on utilisera les apostrophes pour la délimiter puisqu’elle contient
des guillemets. On écrira par exemple : reponse=’Vous avez ”gagné”.’ De même quand
la chaine de caractères contient une apostrophe, on la délimite par des guillemets. Que
fait le programme suivant ?
1 from lycee import *
2 x = demande ( ' Entrez une valeur pour x ')
3 y = demande ( ' Entrez une valeur pour y ')
4 x , y = x +y ,x - y
5 x , y = x +y ,x - y
6 print ( " maintenant , x = " ,x , " et y = " ,y )

3 Les entrées et les sorties

3 1 Affichage et calculs simples


print(valeur ou chaîne de caractères)

print affiche la valeur numérique ou le texte qui suit.


print (a, b) affiche à la suite sans passer à la ligne les éléments a et b.
print (a, end = "") affiche l’élément a et ne passe pas à la ligne : le prochain affichage
continuera sur cette ligne.
1 print ( " Bonjour ," )
2 print ( " ce programme calcule 2 + 3 = " , end = " " )
3 print (2+3)
4 print ( " et 3 ( - 2 ) = " ,3 * - 2 )

résultat de la console
Bonjour,
ce programme calcule 2+3=5
et 3(-2)= -6

5
Remarques.
? Quand on veut afficher plusieurs choses à la suite qui ne sont pas dans la même
ligne de programme, on indique de ne pas passer à la ligne suivante après l’affi-
chage en finissant par ,end = "".
? Quand un programme ne produit pas le résultat attendu, il est important de
penser à ajouter l’affichage des valeurs prises par les variables à chaque étape.
Cela permet de comprendre ce que fait réellement le programme, et facilite la
recherche d’erreurs, quitte ensuite à supprimer cette ligne ou la transformer en
commentaire.
? Pour un produit, le symbole ∗ est indispensable, même s’il y a des parenthèses.

3 2 Les variables
Les noms de variables commencent par une lettre, puis on peut se faire succéder les
caractères que l’on veut, minuscules, majuscules, chiffres, etc. sans espace. Il est toujours
commode d’employer des noms de variables explicites.
1 from lycee import *
2 nb6 = 0
3 for i in range ( 10 ) :
4 if randint (1 , 6 ) == 6 :
5 nb6 = nb6 + 1
6 print ( " Sur les 10 lancers , on a obtenu " , nb6 , ' fois le
numéro " 6 ". ')

résultat de la console
Sur les 10 lancers, on a obtenu 3 fois le numéro "6".

3 3 Demande d’un nombre


var=demande(question) affiche une fenêtre où figure l e t exte q uestion e t u n cadre
blanc dans lequel on entrera ce qui est demandé. La réponse est alors affectée à la
variable var, et contrairement à la fonction input, var contient un nombre et non une
chaîne de caractères.
1 from lycee import *
2 x = demande ( " Entrez un nombre pour obtenir son opposé " )
3 print ( " L ' opposé de " , x , " est " , -x )

résultat de la console
l’opposé de -8 est 8
Remarque.
Même si on veut demander l’entrée d’un nombre par l’utilisateur, il est conseillé d’écrire
d’abord un code en affectant des valeurs bien choisies dans le corps du programme.
Calcul de l’IMC d’un individu :
1 from lycee import *
2 m = demande ( " masse en kilo : " )
3 t = demande ( " taille en mètre : " )
4 IMC = m /( t * t )
5 print ( " L ' IMC est de : " , IMC )

On peut demander aux élèves de se renseigner sur les valeurs conseillées de l’IMC et
connaissant sa taille, donner l’intervalle dans lequel le poids « idéal devrait être » .

6
3 4 Demande d’un texte
chaine=input(question)

Affiche une fenêtre où figure le texte question et un cadre blanc dans lequel on entrera
la réponse, qui sera considérée comme une chaine de caractères. Cette valeur est ensuite
affectée à la variable chaine.
1 from lycee import *
2 nb = demande ( " Entrez 3 + 2 " )
3 tex = input ( " Pourriez - vous répéter , svp ? " )
4 print ( nb )
5 print ( tex )
6 print ( nb + 1 )
7 print ( tex + " 1 " )

résultat de la console
5
3+2
6
3+21

Remarques.
? nb + 1 est une addition alors que tex + ”1” est une concaténation.
? input renvoie une chaîne de caractère. Si vous effectuez des opérations : soustrac-
tion, division, l’erreur sera repérée, mais pas pour une addition (concaténation)
ni une multiplication par un entier.
? Essayez de remplacer "demande" par "input" dans le programme opposé (3 pro-
grammes avant) et demandez l’opposé de -8.

4 Test et conditions

4 1 Si. . . alors
if test :
effectue (une fois) les instructions indentées qui suivent lorsque le test est vérifié.
Le ”alors” n’apparaît pas en Python, c’est l’indentation qui délimite le bloc à
exécuter.
On peut imbriquer les boucles, à la manière d’un arbre qui se dessinerait avec les
indentations.

4 2 Si. . . alors. . . sinon . . .


if test : ... else : ... effectue les instructions indentées lorsque le test est vérifié, sinon
effectue les instructions alternatives indentées.

7
1 a = demande ( " Entrez a de l ' équation ax + b = 0 " )
2 b = demande ( " Entrez maintenant b de l ' équation ax + b = 0 " )
3 if a != 0 :
4 print ( " Il y a une unique solution : " , end = " " )
5 print ( - b / a )
6 else :
7 if b == 0 :
8 print ( " Il y a une infinité de solutions . " )
9 print ( " Tous les réels sont solutions . " )
10 else :
11 print ( " Il n 'y a aucune solution . " )

Le ”else” est aligné avec le ”if” qui lui correspond.


Taper ” :” puis appuyer sur la touche ”entrée” pour passer à la ligne, provoque l’inden-
tation automatique.

4 3 Comparateurs
1. Le symbole ==
Ce symbole désigne l’égalité dans un test.
Recherche d’un triplet pythagoricien d’entiers consécutifs :
1 for i in range ( 100000 ) :
2 a = i * i +( i + 1 ) *( i + 1 )
3 r =( i + 2 ) *( i + 2 )
4 if r == a :
5 print ( " les nombres " ,i , " ," ,i +1 , " et " ,i +2 , "
forment un triplet pythagoricien " )

résultat de la console
les nombres 3 , 4 et 5 forment un triplet pythagoricien

2. < et >
Ces symboles désignent les inégalités strictes habituelles.
1 from lycee import *
2 xA = demande ( " Entrez l ' abscisse du point A " )
3 xB = demande ( " Entrez l ' abscisse du point B " )
4 if xA > xB :
5 dist = xA - xB
6 else :
7 dist = xB - xA
8 print ( " La distance AB est " , dist )

3. <= et >=
Ces combinaisons de symboles désignent les inégalités larges ≤ et ≥ habituelles.

On s’intéresse au volume d’eau contenu dans une cuve parallélépipédique de base rec-
tangulaire (2m par 3m) et de 80 cm de hauteur.

8
1 from lycee import *
2 h = demande ( " valeur de h en décimètres ? " )
3 if 0 > h :
4 print ( " h est impossible " )
5 if h >= 0 and h <= 8 :
6 V = 600 * h
7 print ( " le volume contenu dans la cuve est " ,V , " litres pour h
= " ,h )
8 if h > 8 :
9 print ( " la cuve déborde !!! " )

résultat de la console
le volume contenu dans la cuve est 3600 litres pour h=6

4. Le symbole !=
Cette combinaison de symboles signifie « différent de ».
1 from lycee import *
2 a = randint (1 , 100 )
3 n = demande ( ' Proposer une valeur ')
4 if n != a :
5 print ( " vous avez perdu , le nombre mystère n ' est pas
" ,n )
6 else :
7 print ( ' gagné , vous devriez jouer au LOTO ! ')

4 4 Opérateurs logiques
1. and
Permet d’effectuer une instruction si deux tests sont vérifiés simultanément.
1 from lycee import *
2 n = demande ( ' Proposer une valeur ')
3 if reste (n , 3 ) == 0 and reste (n , 2 ) == 0 :
4 print ( " n divisible par 6 " )
5 else :
6 print ( " n non divisible par 6 " )

2. or
Permet d’effectuer une instruction si au moins un test sur deux est vérifié.
1 from lycee import *
2 x = demande ( ' Proposer une valeur ')
3 if x >= 0 or x <= - 10 :
4 print ( 2 * x )
5 else :
6 print ( 5 * x )

5 Les boucles

Comme dans la plupart des langages, il existe en Python principalement deux manières
de réaliser une boucle, c’est à dire une répétition d’un bloc d’instructions. Comme pour

9
la commande si, la partie à répéter sera indentée vers la droite, ce qui permet en plus
une bonne visibilité de l’algorithme.

5 1 Boucle dont on connait le nombre d’itérations


1. for var in list
Réalise une boucle en faisant parcourir à la variable var toute la liste list.

2. range(debut,fin,pas)
(Les paramètres debut et pas sont optionnels.) Génère une liste d’entiers :
? Dans l’intervalle [0 ; fin[ si un seul paramètre est renseigné.
? Dans l’intervalle [debut ; fin[ si 2 paramètres sont renseignés.
? Dans l’intervalle [debut ; fin[ mais en réalisant une suite arithmétique de raison
pas si les 3 paramètres sont renseignés.
Voici un programme qui permet de calculer la somme des n premiers entiers naturels :
1 from lycee import *
2 n = demande ( ' Proposer une valeur ')
3 S=0
4 for I in range (1 , n + 1 ) :
5 S=S+I
6 print ( S )

5 2 Boucle conditionnelle
Dans la pratique, on ne connaît que rarement le nombre d’itérations pour arriver au
résultat (d’où l’intérêt d’un programme). On peut alors utiliser des boucles de type
TANT QUE . . . FAIRE . . .

while condition :
Exécute une instruction ou un bloc d’instructions tant que la condition est vérifiée. (La
boucle peut donc ne jamais être exécutée si, d’entrée la condition n’est pas remplie).
L’exemple classique est l’algorithme d’Euclide pour calculer le plus grand commun
diviseur PGCD de 2 entiers naturels :
1 from lycee import *
2 a , b = demande ( " Entrez deux entiers strictement positifs . " )
3 print ( " PGCD ( " ,a , " ," ,b , " ) = " , end = " " )
4 while b != 0 :
5 a , b = b , reste (a , b )
6 print ( a )

résultat de la console
PGCD(35,25)=5

6 Les fonctions Mathématiques

6 1 Puissance d’un entier


puissance(a,n) donne le résultat de an où a et n sont deux nombres entiers naturels.

10
1 from lycee import *
2 n = demande ( ' Proposer une valeur ')
3 print ( puissance (2 , n ) )

6 2 Quotient entier et reste d’une division euclidienne


reste(a,b) donne le reste de la division de a par b, c’est à dire l’unique entier r tel que
a = bq + r où q est un entier et r un entier naturel vérifiant 0 < r < |b|.

1 from lycee import *


2 a = demande ( ' Dividende ')
3 b = demande ( ' Diviseur ')
4 print ( quotient (a , b ) )
5 print ( reste (a , b ) )

6 3 La racine carrée

sqrt(x) retourne où x est un nombre positif.
Le mathématicien grec Héron d’Alexandrie (Ier siècle après J.-C.) a trouvé une formule
pour calculer l’aire d’un triangle connaissant la longueur de ces 3 côtés :
A = p(p − a)(p − b)(p − c) où a, b et c représentent les longueurs des 3 côtés de
p

ce triangle et p son demi-périmètre. Traduisons cette formule dans un programme en


Python.

1 from lycee import *


2 a ,b , c = demande ( ' Entrez les longueurs des 3 côtés ')
3 p =( a + b + c ) / 2
4 aire = sqrt ( p *( p - a ) *( p - b ) *( p - c ) )
5 print ( " L ' aire de ce triangle est " , aire )

6 4 Les constantes
pi désigne la constante qui vaut une valeur approchée du nombre π.

1 from lycee import *


2 r = demande ( " Entrer le rayon du cercle " )
3 print ( " La circonférence du cercle mesure " ,2 * pi * r )

6 5 Le hasard
Il existe différentes manières de tirer un nombre au hasard selon ce que l’on a besoin de
faire dans un programme. Voici 3 fonctions qui devraient déjà répondre à la majorité
de vos besoins :

1. random()
Cette fonction renvoie un nombre décimal de l’intervalle [0 ; 1[. Cette fonction ne né-
cessite pas d’argument, pensez cependant à ouvrir et fermer les parenthèses. (Comme
pour la fonction ALEA() sur le tableur).

11
2. uniform(min,max)
Cette fonction renvoie un nombre décimal de l’intervalle [min ; max[, choisi selon une
densité uniforme sur cet intervalle.

3. randint(min,max)
Renvoie un nombre entier de l’intervalle [min ; max], avec un tirage équiprobable.

7 Définir une fonction

Une fonction est un bloc d’instructions qui a reçu un nom, dont le fonctionnement
dépend d’un certain nombre de paramètres (les arguments de la fonction) et qui
renvoie un résultat (au moyen de l’instruction retourne).

Remarques.
? Les entrées d’une fonction se font en donnant des valeurs aux arguments.
? Une fonction peut n’avoir aucun argument.
? On peut utiliser l’instruction print dans une fonction. Contrairement à l’instruc-
tion retourne, le programme continue après print alors qu’il s’arrête après avoir
rencontré retourne.
? Une fonction peut être appelée dans un programme ou dans une autre fonc-
tion. Ainsi, les fonctions permettent d’éviter des redondances et de structurer les
programmes.

1 def f ( x ) :
2 return ( 3 *x - 1 )

résultat de la console
f (5)
14

12

Vous aimerez peut-être aussi