C3 : Exercices

C3.E1 : Aire d'un cercle

Écrire une fonction qui :

Afficher la correction
from math import pi

def aire(rayon:float) -> str:
    aire = 2 * pi * rayon ** 2
    if aire < 25:
        reponse = "L'aire est strictement plus petite que 25 cm²."
    else:
        reponse = "L'aire est plus grande que 25 cm²."
    return reponse

C3.E2 : Positif ou négatif ?

Écrie une fonction prédicat (c'est-à-dire qui renvoie True ou False) pour tester si un nombre est positif ou nul.

Afficher la correction
def est_positif_ou_nul_v1(nb:float)->bool:
    if nb >= 0:
        return True
    else:
        return False


def est_positif_ou_nul_v2(nb:float)->bool:
    if nb >= 0:
        resultat = True
    else:
        resultat = False
    return resultat

def est_positif_ou_nul_v3(nb:float)->bool:
    return nb >= 0

C3.E3 : Analyse de code

On considère le code suivant :

if x < 1:
    print('valeur plus petite que 1')
if 1 <= x and x <= 2:
    print('valeur comprise entre 1 et 2')
else:
    print('valeur plus grande que 2')

1) Expliquer pourquoi le programme ne va pas donner des résultats cohérents.

2) Proposer une version corrigée de ce code.

Afficher la correction
1) Ce programme est incorrect pour toutes les valeurs de x strictement plus petites que 1. Ceci est dû au fait que le bloc else ne se rapporte qu’au deuxième if : il correspond donc à la condition not (1 <= x and x <=2), qui équivaut à 1 > x or x > 2.
2)

Version 1 :

if x < 1:
    print('valeur plus petite que 1')
if 1 <= x and x <= 2:
    print('valeur comprise entre 1 et 2')
if x > 2:
    print('valeur plus grande que 2')

Version 2 :

if x < 1:
    print('valeur plus petite que 1')
else: # x >= 1
    if x <= 2:
        print('valeur comprise entre 1 et 2')
    else: # x > 2
        print('valeur plus grande que 2')

Version 3 :

if x < 1:
    print('valeur plus petite que 1')
elif x <= 2:
    print('valeur comprise entre 1 et 2')
else:
    print('valeur plus grande que 2')

C3.E4 : Terrain de foot

Dans la réglementation du foot, il est indiqué que « Le terrain est un rectangle de longueur comprise entre 90 et 120 mètres et de largeur comprise entre 45 et 90 mètres, soit une surface qui varie de 4 050 m² à 10 800 m² ».

Terrain de foot avec les dimensions

1) Écrire une fonction qui prend deux entiers en paramètres (le premier pour la longueur, le deuxième pour la largeur) et renvoie True si le terrain est conforme et false sinon.

2) Compléter le programme principal pour tester la fonction.

C3.E5 : Conditions multiples

On souhaite écrire une fonction qui :

Aide : un prénom en minuscule commence par la lettre c si ce prénom est strictement inférieur à "d" et supérieur ou égale à "c".

1) Écrire une première version de cette fonction sans utiliser les opérateurs booléens, mais en utilisant éventuellement le elif.

2) Écrire une deuxième version de cette fonction en utilisant qu'un seul if.

C3.E6 : Années bissextiles

Une année bissextile est une année comportant 366 jours au lieu de 365 jours pour les années régulières. Le jour supplémentaire, le 29 février, est placé après le dernier jour de ce mois qui compte habituellement 28 jours.

Une année est bissextile :

A faire : Écrire une fonction est_bissextile(annee) qui :