Exercice Python
Exercice Python
SERIED’EXERCICESENPYTHON
Exercice1
Ecrire un programme en langage Python qui demande à l’utilisateur de saisir son nom et de lui afficher son nom
avec un message de bienvenue !
Corrigé :
nom=input(‘’Entrez votre nom : ‘’)
print(f’’Bienvenue, {nom} ! ‘’)
Exercice2
Ecrire un programme en Python qui demande à l’utilisateur de saisir deux nombres a et b et de lui afficher leur
somme : a + b
Corrigé :
Exercice3
Ecrire un programme en Python qui demande à l’utilisateur de saisir deux nombres a et b et de lui afficher leur
maximum.
Corrigé :
a=float(input(‘’veuillez entrer la valeur de a : ‘’))
b=float(input(‘’veuillez entrer la valeur de a : ‘’))
print(f‘’le maximum est max(a,b) .’’)
Exercice4
Ecrire un programme en langage Python qui affiche les 100 premiers nombres entiers
Exercice5
Ecrire un programme en langage Python qui demande à l’utilisateur de saisir son nombre entier et de lui afficher
si ce nombre est pair ou impair.
AMINEHASSEN
2|Page PYTHON
Exercice6
Ecrire un programme en langage Python qui demande à l’utilisateur de saisir son âge et de lui afficher le
message « vous êtes Majeur ! » si l’âge tapé est supérieur ou égale à 18 et le message « vous êtes mineur ! » si
l’âge tapé est inférieur à 18
Corrigé :
Age=int(input(‘’Entrer votre age :’’))
If age>=18 :
Print(‘’Vous etes majeur !’’ )
Else :
Print(‘’Vous etes mineur !’’)
Exercice7
Ecrire un programme en Python qui demande à l’utilisateur de saisir 3 nombre x, y et z et de lui afficher leur
maximum.
Exercice8
Ecrire un programme en Python qui demande à l’utilisateur de saisir un nombre entier n et de lui afficher la valeur
de la somme 1 + 2 + … + n = ?
Corrigé :
N=int(input(‘’Entrer un nombre entier :’’))
Somme=sum(range(1,N+1))
Print(‘’La somme des nombres de 1 a N est somme’’)
Exercice9.
Ecrire un programme en Python qui demande à l’utilisateur de saisir un nombre entier n et de lui afficher n !
Corrigé :
Import math
n=int(input(‘’Entrer un nombre entier positif :’’))
if n==0 :
print(‘’La factorielle de n est : 1)
else :
Exercice10
Ecrire un programme en Python qui demande à l’utilisateur de saisir le rayon d’un cercle et de lui renvoyer la
surface et le périmètre.
Corrigé :
import math
rayon=float(input(‘’Entrer le rayon du cercle : ‘’))
surface=math.pi * rayon ** 2
perimetre=2 * math.pi * rayon
print(‘’La surface du cercle est Surface .’’)
print(‘’Le perimetre du cercle est Perimetre.’’)
AMINEHASSEN
3|Page PYTHON
Exercice11
Ecrire un programme en Python qui demande à l’utilisateur de saisir un nombre entier n et de lui afficher tous les
diviseurs de ce nombre.
N=int(input(‘’Entrer un nombre entier : ‘’))
diviseurs=[i for i in range(1,n+1) if n%i==0]
print(‘’les diviseurs de n sont {diviseurs} ‘’)
Exercice12.
– Ecrire un programme en Python qui demande à l’utilisateur de saisir un nombre entier n et de lui afficher la
table de multiplication de ce nombre.
– Améliorez le programme afin qu’il affiche les tables de multiplications de tous les nombres compris entre 1 et 9
corrigé :
Lisp:
(defun table-de-multiplication ()
Prolog:
table_de_multiplication(N) :-
Result is N * I,
fail.
% ?- read(N), table_de_multiplication(N).
AMINEHASSEN
4|Page PYTHON
Python
def table_de_multiplication():
# Exécution de la fonction
table_de_multiplication()
Langage C :
int main()
{
int n ;
printf(‘’Entrer un nombre entier naturel :’’) ;
scanf(‘’%d’’,&n) ;
for(i=1 ;i<=10 ;i++) { print(‘’%d*%d = %d\n’’,n,i,n*i) ;} return 0}
Prolog :
table_de_multiplication(N) :- between(1,10,I), Result is N*I,format (‘’-w * -w =-w-n’’,[N,I,Result]),fail.
Table_de_multiplication(_).
%Excecution : % ?-table_de_multiplication(5).
Exercice13
Ecrire un programme en langage Python qui demande à l’utilisateur de saisir deux nombres entiers a et b et de
lui afficher le quotient et le reste de la division euclidienne de a par b.
Lisp:
(defun quotient-et-reste ()
(b (progn
(read))))
(if (> a b)
AMINEHASSEN
5|Page PYTHON
Prolog:
a et
quotient_et_reste :-
read(A),
read(B),
( A>B
-> Quotient is A // B,
Reste is A mod B,
).
AMINEHASSEN
6|Page PYTHON
Python:
En Python, vous pouvez utiliser la fonction input() pour saisir les valeurs et les convertir en entiers. Ensuite, vous
pouvez calculer le quotient et le reste avec les opérateurs // et %.
def quotient_et_reste():
if a > b:
quotient = a // b
reste = a % b
print(f"Quotient: {quotient}")
print(f"Reste: {reste}")
else:
# Exécution de la fonction
quotient_et_reste()
Langage C
#include <stdio.h>
int main() {
scanf("%d", &a);
scanf("%d", &b);
AMINEHASSEN
7|Page PYTHON
if (b == 0) {
quotient = a / b;
reste = a % b;
Exercice14
Ecrire un programme en langage Python qui demande à l’utilisateur de saisir un nombre entier n et de lui afficher
si ce nombre est carré parfait ou non.
Exercice15
Ecrire un programme en langage Python qui demande à l’utilisateur de saisir un nombre entier n et de lui afficher
si ce nombre est premier ou non.
### En Python
def est_premier(n):
if n <= 1:
if n <= 3:
if n % 2 == 0 or n % 3 == 0:
AMINEHASSEN
8|Page PYTHON
i=5
while i * i <= n:
if n % i == 0 or n % (i + 2) == 0:
i += 6
return True
def main():
try:
if est_premier(n):
else:
except ValueError:
if _name_ == "_main_":
main()
lisp
(cond
AMINEHASSEN
9|Page PYTHON
((= (mod n 2) 0) nil) ; Les nombres pairs autres que 2 ne sont pas premiers
unless (zerop (mod n i)) ; Si n est divisible par i, ce n'est pas premier
return nil
(defun main ()
(if (est-premier n)
(main)
Langage C
#include <stdio.h>
#include <stdbool.h>
#include <math.h>
bool est_premier(int n) {
AMINEHASSEN
10 | P a g e PYTHON
return true;
int main() {
int n;
if (scanf("%d", &n) != 1) {
return 1;
if (est_premier(n)) {
} else {
return 0;
### En Prolog
prolog
AMINEHASSEN
11 | P a g e PYTHON
est_premier(2).
est_premier(N) :-
N > 2,
\+ (between(3, sqrt(N), I), N mod I =:= 0). % Vérifie si N est divisible par un nombre entre 3 et sqrt(N)
main :-
read(N),
( est_premier(N) ->
).
:- initialization(main). Chaque commentaire explique le rôle des différentes parties du code, ce qui facilite la
compréhension de ce que fait chaque programme.
AMINEHASSEN
12 | P a g e PYTHON
EXERCICE EXAMS :
Programme de calcule du nombre de feuilles, de la hauteur et des branches d’un arbre
Réponse aux questions :
a.
Lisp
(defun nombre-feuilles (arbre)
(if (null arbre)
0
(if (and (consp (car arbre)) (not (cdr arbre)))
(apply #'+ (mapcar #'nombre-feuilles (cdr arbre)))
(if (consp (car arbre))
(nombre-feuilles (cdr arbre))
1))))
b.
(defun nombre-branches (arbre)
(if (null arbre)
0
(if (consp arbre)
(+ (length (cdr arbre))
(apply #'+ (mapcar #'nombre-branches (cdr arbre))))
0)))
c.
(defun profondeur (arbre)
(if (null arbre)
0
(if (not (consp arbre))
1
(1+ (apply #'max (mapcar #'profondeur (cdr arbre)))))))
Prolog
a.
nombre_feuilles(node(_, [], []), 1).
nombre_feuilles(node(_, L, R), Nombre) :-
nombre_feuilles_liste(L, NombreL),
nombre_feuilles_liste(R, NombreR),
Nombre is NombreL + NombreR.
nombre_feuilles_liste([], 0).
nombre_feuilles_liste([H|T], Nombre) :-
nombre_feuilles(H, NombreH),
nombre_feuilles_liste(T, NombreT),
Nombre is NombreH + NombreT.
b.
nombre_branches(node(_, L, R), Nombre) :-
length(L, NbBranchesG),
length(R, NbBranchesD),
Nombre is NbBranchesG + NbBranchesD + NbBranchesG + NbBranchesD. % inclut les branches dans les
sous-arbres
c.
profondeur(node(_, L, R), Profondeur) :-
profondeur_liste(L, ProfondeurG),
profondeur_liste(R, ProfondeurD),
Profondeur is max(ProfondeurG, ProfondeurD) + 1.
AMINEHASSEN
13 | P a g e PYTHON
profondeur_liste([], 0).
profondeur_liste([H|T], Profondeur) :-
profondeur(H, ProfondeurH),
profondeur_liste(T, ProfondeurT),
Profondeur is max(ProfondeurH, ProfondeurT).
Python
a.
def nombre_feuilles(arbre):
if isinstance(arbre, str): # noeud feuille
return 1
elif isinstance(arbre, list):
return sum(nombre_feuilles(sous_arbre) for sous_arbre in arbre)
return 0
b.
def nombre_branches(arbre):
if isinstance(arbre, str): # noeud feuille
return 0
elif isinstance(arbre, list):
nb_branches = len(arbre) - 1 # la racine a (len(arbre) - 1) branches
return nb_branches + sum(nombre_branches(sous_arbre) for sous_arbre in arbre)
return 0
c.
def profondeur(arbre):
if isinstance(arbre, str): # noeud feuille
return 1
elif isinstance(arbre, list):
return 1 + max(profondeur(sous_arbre) for sous_arbre in arbre)
return 0
AMINEHASSEN