Programmation en Python
Structures algorithmiques de base
≡ Programmation en python
Précédent
2 - Variables, affectation, types et opérations
Structures algorithmiques de base
Suivant 4 - Fonctions en python
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:
==
: égalité
<
, >
, <=
et >=
: inférieur ou supérieur, strictement ou non
not
ou ~
: négation, par exempe x~=4
pour le test x différent de 4, équivalent à ~(x==4)
and
: "et" logique
or
: "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 (int eger) ;
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
Exercices
Exercice 1:
Écrire un programme qui affiche les résultats suivants:
0
1
2
3
4
5
0
2
4
6
8
10
1
22
333
4444
55555
Je vais bien
Je vais très bien
Je vais très très bien
Je vais très très très bien
Je vais très très très très bien
Je vais très très très très très bien
Exercice 2:
Compteur
Qu'affiche le programme suivant:
c=0
for i in range(10):
n=int(input("Entrer un chiffre:"))
if (n==3):
c=c+1
print("c= ",c)
Remarque: la variable c
précédente s'appelle un compteur , et permet donc de compter à chaque fois que le programme "passe" par cette ligne.
Dans le programme suivant, la fonction randint(1,10)
permet d'obtenir un nombre entier aléatoire entre 1 et 10.
Que fait alors le programme suivant ?
from random import randint
a=randint(1,10)
b=randint(1,10)
r=int(input(str(a)+" * "+str(b)+" = ? "))
if r==a*b:
print("bien")
Compléter ce programme pour qu'il affiche un message d'erreur lorsque la réponse donnée n'est pas la bonne.
Modifier ce programme: en utilisant une boucle sur ce programme, répéter ce programme 5 fois et poser ainsi 5 questions.
Ajouter enfin un compteur au programme qui compte, et affiche à la fin, le nombre de bonnes réponses et la note obtenue.
Exercice 3:
Sur une carte magnétique est stocké le nombre d'entrées restantes dans une salle de sport. Lorsqu'on présente sa carte à la borne automatique d'entrée, une entrée doit être décomptée.
Écrire un programme qui demande le nombre d'entrées restantes puis affiche le nouveau nombre d'entrées restantes après en avoir retiré une. Le programme affichera de plus un message d'avertissement lorsque le nombre d'entrées restantes est plus petit que 3.
Exercice 4:
Qu'affiche le programme suivant:
c=0
for i in range(10):
n=int(input("Entrer un chiffre:"))
if (n==6):
c=c+1
print("c= ",c)
Qu'affiche le programme suivant ?
s="je vais travailler ce soir "
print(s[3])
print(s[3:7])
print(len(s))
for i in range (len(s)):
print(s[i])
Compléter le programme précédent de manière à ce qu'il compte et affiche le nombre de "a" dans la chaîne s
précédente.
Reprendre la question précédente pour compter et afficher le nombre de mots.
(Bien sûr, on pourra utiliser ce programme avec divers textes)
Exercice 5:
Rendre la monnaie
Qu'affiche le programme suivant:
n=33
c=0
while n>0:
n=n-7
c=c+1
print(c)
print(n)
En s'aidant de ce programme précédent, écrire un programme qui demande à l'utilisateur une somme d'argent et qui la décompose en un minimum de billets et pièces nécessaires.
Par exemple, la somme 125 euros sera décomposée en 2 billets de 50 euros, 1 billet de 20 euros, 2 pièces de 2 euros et 1 pièce de 1 euro.
(on peut se limiter pour simplfier à des sommes entières en euros, sans centimes).
Exercice 6:
Calculer des sommes
Que calcule et affiche le programme suivant:
n=int(input("Entrer n: "))
s=0
for i in range(1,n+1):
s=s+i
print("i= ",i, " - s= ",s)
Modifier le programme précédent pour qu'il calcule, et affiche, la somme
S = 12 + 12 + 22 + 32 + … + 102
puis la somme
S = 12 + 12 + 22 + 32 + … + 1002
Modifier de mĂŞme le programme pour qu'il calcule et affiche la valeur de la somme
S = 1 +
1 / 2
+ 1 / 3
+ 1 / 4
+ 1 / 5
puis de la somme
S = 1 +
1 / 2
+ 1 / 3
+…
+ 1 / 99
+ 1 / 100
Calculer de mĂŞme les sommes
S = 1 +
1 / 22
+ 1 / 32
+ 1 / 42
+ 1 / 52
puis la somme
S = 1 +
1 / 22
+ 1 / 32
+…
+ 1 / 992
+ 1 / 1002
Exercice 7:
Mes Ă©conomies
Je souhaite faire des quelques Ă©conomies.
Je mets pour cela de côté les 1000 euros que je possède, sur un compte en banque.
Chaque mois je vais en plus y déposer 200 euros.
Écrire un programme qui calcule le montant de mes économies au bout de 10 mois, puis au bout de 2 ans (en s'aidant du programme de l'exercice précédent, ou des autres exercices précédents)
Exercice 8:
Mes économies grâce à la banque
Je dépose 100 euros sur un compte en banque.
Ce compte a un taux d'intérêt de 3%, c'est-à -dire que chaque année, en début d'année, la banque ajoute sur ce compte 3% de la somme qui s'y trouve l'année précédente.
Écrire un programme qui calcule le montant de mes économies sur ce compte en banque au bout de 2 ans, puis au bout de 10 ans, puis au bout de 100 ans.
Exercice 9:
Le programme suivant permet de décomposer les chiffres qui composent un nombre: le nombre n
est converti en chaîne de caractères.
Cette chaîne s
peut alors être manipulée comme un tableau.
Qu'affiche le programme suivant ?
n=412
s=str(n)
print(s[2])
for i in s:
print(i)
print(s[0]+s[1])
print(int(s[0])+int(s[1]))
Écrire un programme qui, à un nombre donné (ou demandé à l'utilisateur), calcule et affiche la somme des chiffres qui le compose.
Par exemple, pour n=412, le programme calcule 4+1+2=7 et affiche 7, et pour n=21603 le programme affiche 12
Écrire un programme qui, à un nombre donné (ou demandé à l'utilisateur), retourne la somme des carrés des chiffres qui le compose.
Par exemple, pour n=412, le programme calcule 42 +12 +22 =21 et affiche 21, et pour n=21603 le programme affiche 50.
Exercice 10:
RĂ©duction d'un nombre Ă un chiffre
On réduit un nombre en ajoutant les chiffres qui le composent, puis si cette somme est un nombre à au moins deux chiffres en ajoutant à nouveau les chiffres qui le composent, et ainsi de suite jusqu'à n'obtenir plus qu'un seul chiffre.
Par exemple,
le nombre 35 se réduit au chiffre 3+5=8
le nombre 256 se réduit à 2+5+6=13 puis finalement au chiffre 1+3=4
le nombre 8432 se réduit à 9+5+5+9=28 puis à 2+8=10 puis finalement au chiffre 1+0=1
Écrire un programme qui à un nombre donné (ou demandé à l'utilisateur) calcule et affiche le chiffre réduit obtenu.
Écrire un programme qui affiche, parmi tous les nombres entiers inférieurs à 100, tous ceux qui se réduisent au chiffre 1.
Exercice 11:
Compter les Ă©toiles, et les espaces
Écrire un programme qui affiche les résultats suivants, pour un nombre n quelconque de lignes:
*
**
***
****
*****
******
*
**
***
****
*****
******
*
***
*****
*******
*********
Fonctions en python
≡ Programmation en python