Dans cette partie, vous allez apprendre à écrire des programmes, c'est-à-dire à prendre le contrôle de l'ordinateur.
La première personne a avoir écrit un programme informatique est Ada Lovelace en 1843 sur un ordinateur mécanique à l'époque.
Il existe de nombreux langages de programmation. Nous allons apprendre les bases du langage python car :
Guido van Rossum a inventé et programmé une première version du langage python en 1989 pendant ses vacances de Noël. Étant un fan des Monthy Python, il a choisi d'appeler son langage "python".
.py
et de l'exécuter avec le bouton EXECUTER (flèche verte ▷).
print()
permet d'afficher une chaîne de caractères (un texte : "..."
) dans la console.
print("Hello World!")
4var
, Var
et var$
.var4
, x
et y_start
.=
.x = 2
et mot = "bonjour"
sont deux affectations ; la variable x
contient un nombre entier (2) et la variable mot
contient une chaîne de caractères (bonjour).print(...)
.
x = 2
et mot = "bonjour"
et utiliser les instructions print(...)
et type(...)
sur ces deux variables pour observer le résultat.nom (français) | entiers | flottants | textes | booléens |
---|---|---|---|---|
nom (anglais) | integers | floats | strings | booleans |
type (nom python) | int | float | str | bool |
exemples | 2 , 1003 , -42 | 2.5 , -32.194 , 5.0 | "34" , "num : 2" , 'e' | True , False |
description | entier relatif (avec signe) | nombre décimal (valeur approchée) séparateur : . (et pas , ) | texte encadré par "..." ou '...' | Vrai ou Faux (2 valeurs possibles) |
conversion (si possible sinon erreur) | int(3.6) →3 int("3") →3 | float(3) →3.0 float("3.05") →3.05 | str(3.6) →"3.6" str(3+5.0) →"8.0" | bool(0) →False bool(0.5) →True bool("v3") →True bool("") →False |
type(...)
, vérifier les types des éléments : -2
, -2.5
, -4.0
, False
et "False"
.opération | symbole | exemple |
---|---|---|
addition | + | 3+7 donne 10 |
soustraction | - | 3-7 donne -4 |
multiplication | * | 3*7 donne 21 |
division | / | 22/7 donne 3.142857142857143 |
quotient euclidien | // | 22//7 donne 3 |
reste euclidien | % | 22%7 donne 1 |
puissance | ** | 3**7 donne 2187 |
racine carrée (puissance 1/2) | **(1/2) | 3**(1/2) donne 1.7320508075688772 |
entier * chaîne
;
exemple : 3*"Bac"
donne "BacBacBac"
;+
;
exemple : "Bac"+"2025"
donne "Bac2025"
.input()
permet de demander à l'utilisateur d'entrer une chaîne de caractère. nom = input("Entrez votre nom : ")
permet de demander
à l'utilisateur de saisir son nom puis d'affecter sa réponse à la variable nom
.age = input("Quel est ton age ? ")
Ici la variable
age est une chaîne de caractère str
. int(age)
.n = int(input("Quel est ton age ?"))
input()
est donnée
directement à la fonction int()
pour qu'elle soit
convertie en un entier.nom
, age
et n
grâce à la fonction type()
.
n
et age
sans que l'ordinateur ne renvoie une erreur.
Si l'on veut vérifier une égalité ou une inégalité, on doit écrire un test ; la réponse à un test toujours un booléen (type
bool
), c'est à dire True
(vrai) ou bien False
(faux).
test | symbole | exemple |
---|---|---|
égalité | == | 3==7 donne False |
différent de | != | 3!=7 donne True |
strictement inférieur | < | 3<7 donne True |
strictement supérieur | > | 3>7 donne False |
inférieur ou égal | <= | 22<=7 donne False |
supérieur ou égal | >= | 22>=7 donne True |
and
(et), or
(ou) et not
:
not a
inverse le booléen a
. Vrai devient Faux et Faux devient Vrai.
a and b
Cette expression renvoie Vrai seulement quand les tests a
et b
sont vrais.
a or b
Cette expression renvoie Vrai quand a
ou b
ou les deux en même temps sont vrais.
not 3 == 2
3 != 2 and 4 < 7
3 != 2 or 4 > 7
Nous allons quitter la console python pour commencer à écrire nos premiers
programmes dans l'éditeur (partie supérieure) d'Edupython. Il nous sera
alors possible de les sauvegarder sous la forme d'un fichier texte avec
l'extension .py
et de les exécuter avec le bouton Executer
(flèche verte ▷).
if
/else
(si/sinon)if
:
else
(sinon) pour exécuter des
instructions dans le cas ou la condition n'est pas respectée (est fausse).
note = int(input("Entrez votre note : "))
if note >= 10 :
print("J'ai la moyenne !")
else :
print("Il faut travailler davantage !")
elif
qui est une contraction de "else if" (sinon si).
note = int(input("Entrez votre note : "))
if note >= 10 :
print("J'ai la moyenne !")
if note > 17 : # if imbriqué dans un bloc if
print("Et je suis au top !") # bloc indenté 2 fois !
print("Trop fort !")
elif note >= 12 : # condition supplémentaire
print("C'est assez bien !")
else :
print("Il faut réviser davantage !")
def
suivi du nom de la fonction et ses
paramètres entre parenthèses. Il est impératif de
terminer cette ligne par deux-points :
return
est placé avant ce
que doit renvoyer la fonction.
def tester_pair(nombre) :
if nombre % 2 == 0 :
return True
else :
return False
Appel de la fonction : tester_pair(5)
renvoie False
.while
(tant que)Une boucle while
permet de répéter des
instructions tant qu'une condition est vraie.
Comme le nombre de répétitions n'est pas connu dès le départ, on parle de boucle non-bornée.
Attention à bien modifier la condition à l'intérieur de la boucle pour éviter de tomber dans une boucle infinie.
Dans l'exemple ci-contre, on modifie n
dans la boucle grâce à l'instruction n = n - 1
.
Ainsi, lorsque n
devient nul, on ne peut plus rester dans la boucle puisque la condition d'entrée est devenue fausse n > 0
.
Pour stopper une boucle infinie, il faut stopper l'exécution du programme (croix rouge ×) et/ou réinitialiser le moteur python. (Pour EduPython : Menu Exécuter / Moteur Python / Réinitialiser).
import time # pour utiliser les mesures de temps
n = int(input("Durée du compte à rebours ? "))
print("Décollage dans " + str(n) + " secondes.")
while n > 0 :
time.sleep(1) # attendre 1 seconde
n = n - 1
print("Il reste " + str(n) + " secondes.")
print("Allumage des moteurs !")
Écrire un programme qui utilise une boucle while
.
Votre programme doit demander un nombre entier positif n
à l'utilisateur et afficher le résultat suivant, avec n
points sur sa première ligne.
Aide : L'opération *
est utilisable avec une chaine de caractères pour la répéter (par exemple 3*"houla"
renvoie "houlahoulahoula"
).
Faire valider par le professeur.
# n points au départ
.....
....
...
..
.
[...]
et regroupe des éléments séparés par des virgules. a = [12, 5, 9]
a[0]
renvoie 12
, a[1]
renvoie 5
et a[2]
renvoie 9
.
a[-1]
renvoie 9
et a[-2]
renvoie 5
. Les indices négatifs permettent de parcourir la liste à partir de la fin.
nom (en anglais) | syntaxe | renvoie |
---|---|---|
Longueur (length) | len(a) | 3 |
Somme (sum) | sum(a) | 26 |
Minimum (minimum) | min(a) | 5 |
Maximum (maximum) | max(a) | 12 |
nom (en ang.) | syntaxe | renvoie | état a = [12, 5, 9] après |
---|---|---|---|
Éjection (pop) | a.pop() | 9 | [12, 5] |
Indice (index) | a.index(12) | 0 | [12, 5, 4] |
Enlever (remove) | a.remove(5) | None | [12, 9] |
Trier (sort) | a.sort() | None | [5, 9, 12] |
Renverser (reverse) | a.reverse() | None | [9, 5, 12] |
for
(pour)Une boucle for
permet de répéter des instructions un certain nombre de fois.
Ce nombre de répétitions est connu dès le départ, on parle de boucle bornée.
range(n)
représente la liste des entiers partant de 0 et strictement inférieurs à n
.ls
dans l'exemple 2.for n in range(4) :
print(n)
Affichage obtenu :
0 1 2 3
ls = [5,2,7]
for n in ls :
print(n * "a")
Affichage obtenu :
aaaaa aa aaaaaaa
print
, python revient
à la ligne ; end=''
permet d'éviter ce comportement.
for chiffre in [1, 2, 3, 4, 5, 6, 7, 8] :
for lettre in 'ABCDEFGH' :
print('['+lettre+str(chiffre)+']', end='')
print()
[A1][B1][C1][D1][E1][F1][G1][H1] [A2][B2][C2][D2][E2][F2][G2][H2] [A3][B3][C3][D3][E3][F3][G3][H3] [A4][B4][C4][D4][E4][F4][G4][H4] [A5][B5][C5][D5][E5][F5][G5][H5] [A6][B6][C6][D6][E6][F6][G6][H6] [A7][B7][C7][D7][E7][F7][G7][H7] [A8][B8][C8][D8][E8][F8][G8][H8]
import nom_du_module
help(nom_fonction)
dans la console ;
import random
cartes = [7, 8, 9, 10, "valet", "dame", "roi"]