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 une 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 ▷).
Remarque : Vous avez aussi la possibilité d'éditer et d'exécuter du code python dans des EDI directement en ligne sur Internet :
print
« Bonjour Monde »print()
permet d'afficher une chaîne de caractères (un texte : "..."
) dans la console.
print("Hello World !")
dans la console python (partie inférieure d'Edupython) et appuyer sur "Entrée" pour l'exécuter.
4var
, Var
, var$
.var4
, x
, 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(...)
.
print(...)
et type(...)
sur les deux variables enregistrées.
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"
.
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 | // |
3//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 |
racine cubique (puissance 1/3) | **(1/3) |
5**(1/3) donne 1.7099759466766968 |
entier * chaîne
;
exemple : 3*"Bac"
donne "BacBacBac"
;+
;
exemple : "Bac"+"2025"
donne "Bac2025"
.input()
permet de demander à l'utilisateur
du programme 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()
.
Remarque : Le terme bug a été inventé par Grace Hopper en référence à un insecte coincé dans un ordinateur en 1974 et qui avait généré un problème.
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
arguments 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)
→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"
→"houlahoulahoula"
).
# n points au départ
.....
....
...
..
.
Une liste s'écrit entre deux crochets [...]
et regroupe des éléments séparés par des virgules.
a = [12, 5, 9]
a[0] →12 |
a[1] →5 |
a[2] →9 |
a[-1] →9 |
a[-2] →5 |
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)
0 1 2 3
ls = [5,2,7]
for n in ls :
print(n * "a")
aaaaa aa aaaaaaa
print
, python revient
à la ligne ; sep=''
évite ce comportement.
for chiffre in [1, 2, 3, 4, 5, 6, 7, 8] :
for lettre in ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'] :
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
Remarques :
help(nom_fonction)
dans la console ;
import random
syntaxe | utilisation | doc |
---|---|---|
random.randint(a, b) |
entier aléatoire entre a et b |
🕮 |
random.choice(liste) |
élément aléatoire dans liste |
🕮 |
cartes = [7, 8, 9, 10, "valet", "dame", "roi"]