Programmation en Python
Structures algorithmiques de base
Condition et test if
Le traitement d'une condition peut se représenter par l'algorithme
La syntaxe en Python d'une instruction conditionnelle est, assez communément,
if test:
# instructions
Si le test
est vrai les instructions situées après if
et indentées
(c'est-à-dire espacées vers la droite) sont exécutées,
pas dans le cas contraire.
Essayer par exemple:
n=float(input("Entrer un nombre: "));
if n<100:
print("Ce n'est pas bien grand...")
Plus généralement, on peut compléter la structure conditionnelle précédente en indiquant aussi quoi faire si la condition n'est pas vraie, sinon, else
en anglais et en python:
La syntaxe en Python devient
if test:
# instructions
else:
# AUtres instructions
Essayer par exemple:
n=float(input("Entrer un nombre: "));
if n<100:
print("Ce n'est pas bien grand...")
else:
print("C'est assez grand...")
On peut aussi indiquer successivement plusieurs conditions "sinon si" (else if
en anglais, contracté en elif
en python).
En Python, la syntaxe complète est:
if test 1:
# instructions
elif test 2:
# instructions
elif test 3:
# instructions
…
else:
// instructions
Dès qu'un test est vrai, les instructions correspondantes sont effectuées puis on sort de l'ensemble des conditions,
même si une condition après un autre elseif
est vraie, elle est ignorée: l'ordre importe.
Par exemple:
n=float(input("Entrer un nombre: "));
if n<100:
print("Ce n'est pas bien grand...")
elif n<1000:
print("C'est assez grand...")
elif n<10000:
print("Interessant...")
else:
print("Beaucoup trop ?...")
Opérateurs logiques
Pour définir un test, on peut utiliser les opérateurs logiques:
if test:
# instructions
Si le test
est vrai les instructions situées après if
et indentées
(c'est-à-dire espacées vers la droite) sont exécutées,
pas dans le cas contraire.
n=float(input("Entrer un nombre: "));
if n<100:
print("Ce n'est pas bien grand...")
if test:
# instructions
else:
# AUtres instructions
n=float(input("Entrer un nombre: "));
if n<100:
print("Ce n'est pas bien grand...")
else:
print("C'est assez grand...")
else if
en anglais, contracté en elif
en python).
En Python, la syntaxe complète est:
if test 1:
# instructions
elif test 2:
# instructions
elif test 3:
# instructions
…
else:
// instructions
n=float(input("Entrer un nombre: "));
if n<100:
print("Ce n'est pas bien grand...")
elif n<1000:
print("C'est assez grand...")
elif n<10000:
print("Interessant...")
else:
print("Beaucoup trop ?...")
==
: égalité<
,>
,<=
et>=
: inférieur ou supérieur, strictement ou nonnot
ou~
: négation, par exempex~=4
pour le test x différent de 4, équivalent à~(x==4)
and
: "et" logiqueor
: "ou" logique
Par exemple:
n=float(input("Entrer un nombre: "));
if n>100 and n<110:
print("Grand juste comme il faut")
else:
print("Raté")
QCM
Boucle for
Syntaxe générale
La syntaxe générale d'une boucle for
est la suivante,
V étant une liste
for i in V:
# instructions
par exemple
V=[1,2,6,78];
for i in V:
print(i)
retourne
1
2
6
78
Toute liste
peut être utilisée, numérique ou non:
V=["a","b","cd","efg"];
for i in V:
print(i)
retourne
a
b
cd
efg
Boucle sur des entiers: fonction range
Un des cas le plus fréquent en pratique est celui où
V=[1,2,3,…,n]
: on balaye successivement tous les entiers.
En python, la fonction range
créé justement une liste d'entiers.
La syntaxe générale est range([start],stop,[step])
, les paramètres entre crochets étant optionnels.
start
, stop
et step
sont des entiers (integer);
stop
n'est pas inclus.
Essayer:
for i in range(5):
print(i)
print("***")
for i in range(3,7):
print(i)
print("***")
for i in range(8,16,2):
print(i)
print("***")
for i in range(21,8,-3):
print(i)
Boucle conditionnelle while
Le traitement d'une boucle conditionnelle, c'est-à-dire d'une boucle qui s'effectue sous certaines conditions,
peut se représenter par l'algorithme
En Python la syntaxe d'une boucle conditionnelle est:
while test:
# instructions
Là aussi, tous les opérateurs logiques sont utilisables dans le test.
Essayer:
from random import randint
#importe la fonction randint qui permet de tirer des nombres entiers au hasard
# voir modules et bibliothèques
a=randint(0,10)
b=randint(0,10)
r=int(input(str(a)+"*"+str(b)+"="))
while (r==a*b):
a=randint(0,10)
b=randint(0,10)
r=int(input(str(a)+"*"+str(b)+"="))
print("Perdu, revoir les tables de "+str(a)+" et "+str(b))
QCM
≡ Programmation en python
for
est la suivante,
V étant une liste
for i in V:
# instructions
V=[1,2,6,78];
for i in V:
print(i)
1
2
6
78
V=["a","b","cd","efg"];
for i in V:
print(i)
a
b
cd
efg
range
for i in range(5):
print(i)
print("***")
for i in range(3,7):
print(i)
print("***")
for i in range(8,16,2):
print(i)
print("***")
for i in range(21,8,-3):
print(i)
En Python la syntaxe d'une boucle conditionnelle est:
while test:
# instructions
Là aussi, tous les opérateurs logiques sont utilisables dans le test.Essayer:
from random import randint
#importe la fonction randint qui permet de tirer des nombres entiers au hasard
# voir modules et bibliothèques
a=randint(0,10)
b=randint(0,10)
r=int(input(str(a)+"*"+str(b)+"="))
while (r==a*b):
a=randint(0,10)
b=randint(0,10)
r=int(input(str(a)+"*"+str(b)+"="))
print("Perdu, revoir les tables de "+str(a)+" et "+str(b))
QCM
≡ Programmation en python