Les bases de la programmation en Python 

Comme pour Scratch, on utilisera :

  • des variables qui auront un nom et une valeur (un nombre, un texte, une liste...) ;
  • des opérateurs et des commandes (calculer le quotient décimal ou entier, la racine carrée...) ;
  • la structure conditionnelle (Si … Alors … Sinon en Scratch)
  • les deux boucles (Répéter… en Scratch).
  • Python offre en outre la possibilité de définir soi-même des fonctions informatiques au fur et à mesure des besoins.

Leçon 0 : présentation du langage
et interface du logiciel

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.

  • L’éditeur de texte est une partie de l’écran qui permet de saisir des lignes de code en Python, de les modifier, de les organiser et d’avoir une vision globale du script saisi.
  • La console est une partie de l’écran qui affiche le résultat de l’exécution des scripts ainsi que le résultat des calculs ou des commandes saisis. On peut y exécuter des commandes en les saisissant ligne par ligne.

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çon 1 : Variables et Opérations

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 :

 

  • Arrondir a à \(10^{-n}\) près : 
round(a,n)
  • Les nombres décimaux sont notés avec un point . et non pas une virgule , .
  • Un nom de variable peut contenir un tiret du bas _ mais pas de tiret du haut - et ne doit pas commencer par un chiffre.
  • Valeur absolue de a : 
abs(a)
  • Dans la console le résultat d'une instruction s'affiche automatiquement en appuyant sur la touche entrée

La fonction print() :

  • Dans l'éditeur de texte, il faut utiliser la fonction           pour afficher une valeur.

print()
m = m + 1

L'instruction :

a pour effet d'ajouter 1 à la valeur contenue dans la variable m 

Exercices

L1

31
8
18
10
round(5.45*3.63,2)
1.2/(2+3.5)
6**2

ou

6*6
36 \, ; \text{ l'aire est } 36 \text{ cm}^2.
2*(4.8+6.1)
21.8 \, ; \text{ le périmètre est } 21,8 \text{ cm}.
(4*2.5)/2
5.0 \, ; \text{ l'aire est } 5 \text{ cm}^2.
a=10
a=a-2
a=2*a
16
\text{ Créer une variable nommée prix et lui affecter 45.}
\text{ Créer une variable nommée remise et lui affecter 5.}

Cré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.

4
3
3
6
3
3
8
4
3
6
86
43
13
26
36
25
12
10
z=(a+b)^2-(a^2+b^2)=a^2+2ab+b^2-a^2-b^2=2ab
z=12\Leftrightarrow 2ab = 12\Leftrightarrow ab = 6

Donc a = 1 et b = 6 ; a = 2 et b = 3 ; a = 3 et b = 2 ; a = 6 et b = 1.

Leçon 2 : Fonctions en Python

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 :

  • Le mot clé pour définir une fonction est def. 
  • Le nom de la fonction suit les règles des noms de variables.
  • Entre parenthèses, on ajoute aucun, un ou plusieurs arguments, suivant les besoins.
  • Les : (deux points) à la fin de la ligne de la déclaration de la fonction sont obligatoires.
  • Le mot clé pour renvoyer un ou plusieurs résultat(s) est return.
  • On appelle une fonction en écrivant son nom dans un script ou dans la console, suivi des arguments souhaités placés entre parenthèses.
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)

Exercices

L2

\text{ Son nom est g.}
\text{ Elle a un seul argument nommé x. }
10
24
34
64

Son nom est puissances.

\text{ Elle a un seul argument nommé a. }
\text{ On obtient (3, 9, 27). }
45
32
46
(b,h):
\text{ Elle renvoie le périmètre du rectangle.}
\text{ Elle renvoie la vitesse moyenne du véhicule en km/h.}

Un véhicule qui parcourt 150 km en 2 h a une vitesse moyenne de 75 km/h.

\text{ Elle doit avoir deux arguments b et h.}
\text{ Elle doit renvoyer l’aire a du triangle.}
b*h/2
\text{ Cette fonction est nommée imc.}
\text{ Elle possède deux arguments nommés taille et poids.}
\text{ On appelle imc(1.8, 70).}
\text{ On entre l’instruction return round(imc,1).}

Il 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. 

Leçon 3 : Structure conditionnelle

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 2

Remarques :

  • La partie avec else est facultative.
  • On peut insérer elif condition 2 pour un traitement exécuté si condition1 n’est pas vérifié mais que condition 2 est vérifié.
  • Dans la condition, on peut utiliser des opérateurs de comparaison
    comme == , != , > , < , >= ou <= et des opérateurs logiques comme
    and , 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 :

Exercices

L3

if n > 10:
    n = n*2
print(n)
16
13

m a pour valeur 10

m a pour valeur 3

m a pour valeur 9

m a pour valeur 34 

150
72
90

Les chaînes de caractères sont entre guillemets contrairement aux noms de variables

\text{pair}
\text{impair}
(3,6)
(4,5)
(10,10)
\text{Elle range les nombres a et b dans l’ordre croissant.}
0.5 \text{ est affiché }
\text{'impossible' est affiché}

4 × 7,50 €, soit 30 € 

5 × 7,50 + 2 × 3, soit 43,5 € 

h*7.5
5*7.5+h_supplementaires*3
h-5

32 € × 0,6 = 19,20 €

32 € × 0,9 = 28,80 €

32 € × 0,2 = 6,40 €

Leçon 4 : Boucle for

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):
    instructions
for k in range(m,n):
    instructions
for j in range(m,n,pas):
    instructions

Pour 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 :

  • Les instructions répétées peuvent utiliser la valeur des variables 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 S

Exemple 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).

Exercices

L4

0,1,2,3,4
10,13,16,19,22
0,2,4,6
1,3,5,7,9
3
8
1
8
2
9
a = a + 11
a = a + 12
a = a + 13
a = a**2
a = a**2
a = a**2
6
1\newline 2\newline 6
for i in range(1,13):
    cube = i**3
    print(cube)

1, 1

2, 4

3, 9

4, 16

5, 25

2
3
4
6
10
3
1
10
0+1+2+3+4
49
1+3+5+7+9+11+13
120
\text{ La factorielle de 5 :\quad }5! = 1\times 2 \times 3\times 4\times 5
fact(101)

Leçon 5 : Boucle while

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:
    traitement

Remarques :

  • Lorsque la condition n’est plus vérifiée et que le test renvoie False, les instructions indentées ne sont pas traitées et on sort de la boucle.
  • 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 S

Exemple 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.

Exercices

L5

En construction

Made with Slides.com