snt
Sciences Numériques et Technologie en classe de seconde au Lycée Saint-Exupéry de La Rochelle.
Comme pour Scratch, on utilisera :
Le langage Python est un langage de programmation comme, le JavaScript ou Scratch.
La syntaxe (l’écriture des lignes de code) est simple mais n’utilise pas de blocs comme Scratch, tout doit être écrit !
Son usage est varié et polyvalent d’un niveau basique à expert dans des domaines tels que : gestion, de serveurs, de Bot ou de bases de données, calculs, retouche d’images ou de fichiers audio, lecture et écriture de fichiers, gestion d’Interaction
Homme-Machine. . .
Pour programmer en Python, on utilise un logiciel qui permet de saisir un script en Python et de l’exécuter. Le choix est vaste : PyCharm, EduPython. . . Certains éditeurs de texte avancés (VS Code. . .) permettent d’exécuter du code écrit en Python.
Il existe également des interpréteurs Python sur calculatrice ou en ligne (numworks.com, vittascience.com, basthon.fr. . .) qui permettent de programmer en Python sans rien installer, parfois même sans inscription.
L’interface pour programmer se décompose en deux parties : un éditeur de texte et une console.
Sur calculatrice, l’affichage est alterné entre éditeur de texte et console, en raison de la taille d’écran réduite.
L'indentation :
Exemple : une structure conditionnelle
On observe la même indentation (décalage vers la droite) de l’instruction en Python dans la structure conditionnelle que dans le contrôle Scratch. La dernière instruction ne fait pas partie de cette structure.
Script Python
Script Scratch
Le langage Python peut être utilisé pour effectuer des calculs (+, -, ×, ÷, puissances, racines, division euclidienne. . .) comme sur une calculatrice.
On peut également affecter (stocker) une valeur à une variable (un contenant)
puis effectuer des opérations avec cette variable.
Voici la syntaxe de quelques commandes :
round(a,n)abs(a)La fonction print() :
Dans l'éditeur de texte, il faut utiliser la fonction pour afficher une valeur.
print()m = m + 1L'instruction :
a pour effet d'ajouter 1 à la valeur contenue dans la variable m
L1
round(5.45*3.63,2)1.2/(2+3.5)6**2ou
6*62*(4.8+6.1)(4*2.5)/2a=10a=a-2a=2*aCréer une variable nommée nouveau_prix ; calculer la différence entre le contenu de la variable prix et
le contenu de la variable remise donc 45 − 5, et affecter le résultat à la variable nouveau_prix.
P contient 12.
A contient 9.
P représente le périmètre et A l’aire du carré.
La valeur de x est 25.
Donc a = 1 et b = 6 ; a = 2 et b = 3 ; a = 3 et b = 2 ; a = 6 et b = 1.
En programmation on a parfois besoin de répéter un même traitement mais appliqué à des valeurs différentes, tout en récupérant le résultat de ce traitement pour l’afficher ou le transformer de nouveau.
On crée alors des fonctions, en utilisant la syntaxe suivante :
def nom(argument1, argument2):
traitement
return resultat
Remarques :
def. return.def f(x):
return 3*x + 2
Exemple 1 : une fonction « comme en math »
• La fonction Python f définie ci-contre correspond à la fonction affine \(x\mapsto 3x+2\).
• L’exécution de f(4) renvoie la valeur de \(3x+2\)
pour \(x\) valant 4, c’est-à-dire 14. On dit que l’appel f(4) renvoie 14.
• On peut réutiliser l’écriture f(4) dans d’autres calculs, comme en math.
>>> f(4)
14
>>> f(4) + 6
20
Exemple 2 : La fonction Python définie ci-contre a pour nom carres et pour arguments a et b.
Elle renvoie deux résultats.
Quand on exécute carres(4,1), diff vaut \(4^2-1^2\), soit 15 et somme vaut \(4^2+1^2\), soit 17.
Donc carres(4,1) renvoie (15, 17).
def carres(a,b):
diff = a**2 - b**2
somme = a**2 + b**2
return diff, somme>>> carres(4,1)
(15,17)
L2
Son nom est puissances.
(b,h):Un véhicule qui parcourt 150 km en 2 h a une vitesse moyenne de 75 km/h.
b*h/2Il manque les deux points à la 1ère ligne. L’argument s’appelant t, la ligne 2 est à corriger en x = t**3.
L’instruction return x doit être indentée (décalée vers la droite comme la 2ème ligne.
En maths : Un nombre ne peut pas avoir plusieurs images par une fonction donnée.
En Python : Une fonction peut renvoyer plusieurs résultats.
En maths : Les fonctions en seconde sont à une variable.
En Python : Une fonction peut avoir plusieurs arguments.
En maths : Les fonctions du lycée travaillent uniquement sur des nombres réels
En Python : Les paramètres et les valeurs renvoyées ne sont pas limités aux nombres.
En programmation, on peut avoir besoin d’effectuer un traitement ou un autre suivant si une condition est vérifiée ou non. Pour cela, en Python on utilise le mot clé if avec la syntaxe suivante :
if condition 1:
traitement 1
else:
traitement 2Remarques :
else est facultative.elif condition 2 pour un traitement exécuté si condition1 n’est pas vérifié mais que condition 2 est vérifié.== , != , > , < , >= ou <= et des opérateurs logiques commeand , or ou not .Attention à l'indentation :
Exemple 1 :
if p > 50:
p = p − 10
print(p)L’instruction print(p) est exécutée uniquement si la condition p > 50 est Vraie.
if p > 50:
p = p − 10
print(p)Exemple 2 :
L’instruction print(p) est exécutée pour toute valeur de p.
Exemple 3 :
if p > 50:
p = p − 10
else:
p = p - 5
print(p)if p > 50:
p = p − 10
elif p < 10:
p = p - 2
else:
p = p - 5
print(p)Exemple 4 :
Opérateurs de comparaison :
L3
if n > 10:
n = n*2
print(n)m a pour valeur 10
m a pour valeur 3
m a pour valeur 9
m a pour valeur 34
Les chaînes de caractères sont entre guillemets contrairement aux noms de variables
4 × 7,50 €, soit 30 €
5 × 7,50 + 2 × 3, soit 43,5 €
h*7.55*7.5+h_supplementaires*3h-532 € × 0,6 = 19,20 €
32 € × 0,9 = 28,80 €
32 € × 0,2 = 6,40 €
En programmation, on a parfois besoin de répéter l’exécution de certaines instructions, éventuellement avec des valeurs différentes. Pour cela, on utilise l’instruction for et la fonction range() avec l'une des syntaxes suivantes :
for i in range(n):
instructionsfor k in range(m,n):
instructionsfor j in range(m,n,pas):
instructionsPour k allant de m à n-1, on répète les instructions qui figurent dans le bloc indenté.
On répète n fois les instructions qui figurent dans le bloc indenté.
Exemples : la fonction range
Remarque :
i, j ou k, si besoin. Attention à l'indentation :
Exemple 1 :
p = 100
for i in range(10):
p = p*1,02
print(p)L’instruction print(p) est exécutée 10 fois car elle est dans la boucle. Le script affiche successivement les 10 nouvelles valeurs de la variable p.
p = 100
for i in range(10):
p = p*1,02
print(p)Exemple 2 :
L’instruction print(p) est exécutée 1 fois car elle est en dehors de la boucle. Le script affiche la valeur finale de la variable p.
Exemple 3 : la table de 5
a = 5
for k in range(1,11):
a = a*k
print(a)Ce script affiche successivement 5, 10, 15 ... 45, 50 (\(5\times1\) jusqu'à \(5\times10\)).
def somme(n):
S = 0
for k in range(1, n + 1):
S = S + k
return SExemple 4 :
L'appel somme(6) renvoie 21 : S prend successivement les valeurs 1 (0+1), 3 (1+2), 6 (3+3), 10 (6+4), 15 (10+5), 21 (15+6).
L4
a = a + 11
a = a + 12
a = a + 13a = a**2
a = a**2
a = a**2for i in range(1,13):
cube = i**3
print(cube)1, 1
2, 4
3, 9
4, 16
5, 25
fact(101)En programmation, lorsque l’on a besoin de répéter des instructions un certain nombre de fois, on ne sait pas toujours à l’avance combien de fois il va falloir les répéter.
La boucle while permet de répéter des instructions tant qu’une condition est vérifiée (ou au contraire tant qu’elle ne l’est pas, en la précédant de not). On utilise la syntaxe :
while condition:
traitementRemarques :
False, les instructions indentées ne sont pas traitées et on sort de la boucle.while est par exemple utilisée dans les algorithmes de recherche de seuil. On répète les instructions tant que le seuil n’est pas atteint.Exemple 1 :
a = 1
while a<=8:
a = 3*a
print(a)def seuil (n):
S = 3
while S <= n:
S = 2*S
return SExemple 2 :
a prend la valeur 1
On effectue le test a ≤ 8 : True (Vrai)
Donc a vaut 3 et on affiche 3
On effectue le test a ≤ 8 : True (Vrai)
Donc a vaut 9 et on affiche 9
On effectue le test a ≤ 8 : False (Faux)
On sort de la boucle.
On exécute seuil(20).
La variable S et le test S<=120 prennent successivement les valeurs suivantes :
L’appel seuil(20) renvoie donc 24, qui est la 1ère valeur de S strictement supérieure à 20.
L5
By snt