Université Clermont Auvergne Portail Maths Info, LAS Maths-Info, PASS Info
Algorithmique et Programmation en Python - Semestre 1
Algorithmique et Programmation en Python
TD02 : expressions booléennes, if, et chaînes de caractères
Exercice 1 : Un peu de logique
Compléter ci-dessous avec le nombre de valeurs de l’entier A pour lesquelles les expressions suivantes sont vraies
(et spécifier quelles valeurs), comme dans l’exemple.
A == 8 or A == 9
-> 2 (8 et 9)
A > 0 and A < 20
-> 19 (Les entiers compris entre 1 et 19 inclus)
A >= 3 and A < 5
-> ...
A >= 3 or A < 5
-> ...
A > 0 and A < 10 and A % 3 == 0 and A % 2 != 0
-> ...
A <= 0 and A >= 20
-> ...
Exercice 2 : Expressions booléennes
On considère qu’on a initialisé les variables a, b, et c avec des valeurs de type entier. Écrire des expressions
booléennes représentant les faits suivants :
1. a est impair
2. (au moins) un des 3 entiers a, b, c est impair
3. (exactement) un seul des 3 entiers a, b, c est impair
4. a est multiple de b
5. a, b, c sont compris entre 0 (inclus) et 20 (exclus)
6. a est soit (strictement) négatif, soit positif pair
7. b est nul ou impair
8. soit le quotient de la division entière de a par b est strictement supérieur à 5, soit b est nul
(attention, il y a un piège).
Exercice 3 : Comparaison de deux programmes
Les deux programmes suivants sont-ils semblables ? Justifier votre réponse.
rep = input("Etes-vous fumeur : ") rep = input("Etes-vous fumeur : ")
if (rep == "oui") or (rep == "OUI") : if (rep == "oui") or (rep == "OUI") :
print("Vous devriez arreter") print("Vous devriez arreter")
else : else :
print("Continuez ainsi") print("Continuez ainsi")
print("Merci de votre participation") print("Merci de votre participation")
UCA - Licence N1 / LAS / PASS - UE Info. - Python 1
Exercice 4 : Comparaison de deux programmes (bis)
Les deux programmes suivants sont-ils semblables ? Justifier votre réponse.
n = int(input("Entrez n : ")) n = int(input("Entrez n : "))
if n%2 == 1 : if n%2 == 1 :
n = 3*n+1 n = 3*n+1
else : if n%2 == 0 :
n = n//2 n = n//2
print(n) print(n)
Exercice 5 : Bonjour (v2)
Écrire un programme qui :
1. Demande à l’utilisateur son prénom
2. Demande à l’utilisateur sa langue (français ou anglais)
3. Si l’utilisateur parle français, lui affiche "Bonjour ..." (avec son prénom)
4. Si l’utilisateur parle anglais, lui affiche "Hello ..." (avec son prénom)
5. Si l’utilisateur saisit une autre langue, lui affiche qu’il ne connaît pas sa langue.
Exercice 6 : Année bissextile
Écrire un programme qui détermine si une année saisie par l’utilisateur est bissextile ou non en affichant “L’année
XXX est bissextile” ou “L’année XXX n’est pas bissextile” selon le cas. On rappelle que : une année est dite
bissextile si c’est un multiple de 4, sauf si c’est un multiple de 100 ; toutefois, elle est considérée comme bissextile
si c’est un multiple de 400.
Exercice 7 : Booléens et caractères
Écrire les expressions booléennes correspondant aux assertions suivantes (on suppose toutes les variables cor-
rectement initialisées, x et y sont des chaînes de caractères) :
— La variable x est une lettre majuscule de l’alphabet
— La variable y est une voyelle en majuscule
— Les variables x et y sont des lettres minuscules de l’alphabet
— x est strictement avant y dans l’ordre alphabétique
— x contient entre 3 et 7 lettres (inclus)
— x est une lettre minuscule, et y est la même lettre en majuscule
Exercice 8 : Jours, heures, minutes, secondes
1. Écrire un programme en Python qui lit un nombre de secondes (entier) au clavier et puis affiche cette durée
en jours, heures, minutes et secondes au format de l’exemple suivant :
Donner un nombre de secondes : 93901
La durée saisie se décompose en : 1 jour(s), 2 heure(s), 5 minute(s), 1 seconde(s)
2. Ajouter la gestion des cas particuliers : si une valeur vaut 0 alors on n’affiche pas cet élément, si elle vaut 1
on l’affiche au singulier, sinon on l’affiche au pluriel.
Donner un nombre de secondes : 93900
La durée saisie se décompose en : 1 jour, 2 heures, 5 minutes
Exercice 9 : Multiples
Écrire un programme qui demande à l’utilisateur un entier n entre 1 et 100. Si l’entier ne respecte pas ces bornes,
le programme se termine sur un message d’erreur. Sinon il :
1. affiche uniquement le premier entier entre 2 et 6 dont n est un multiple (plus petit diviseur)
2. affiche tous les entiers entre 2 et 6 dont n est un multiple
Quelle est la différence entre les 2 versions ?
Remarque : on verra bientôt comment écrire des boucles qui permettent d’éviter de telles répétitions de code.
UCA - Licence N1 / LAS / PASS - UE Info. - Python 2