Fonctions et documentations¶

Dans le TP précédent, vous avez écrit des fonctions qui marchent. C'est un bon début, mais il est important pour soit et pour les autres de documenter et de spécifier son code pour le rendre plus explicite et éviter les bugs.

Voici une fonction correctement documentée

In [8]:
def entoure(texte:str, symbole:str, nombre:int)->str:
    """ Entoure le texte avec le symbole (nombre de fois)
    
    :param texte(str): texte à entourer
    :param symbole(str): symbole pour entourer
    :param nombre(int): nombre de répétition du symbole (avant et après)
    :return (str): le texte entouré
    
    :example:
    >>> entoure("NSI", "~", 3)
    ~~~NSI~~~
    >>> entoure("Plop", "-", 1)
    -Plop-
    """
    symbole_repete = nombre*symbole
    return symbole_repete + texte + symbole_repete
  1. Repérer les nouveaux élèments et la syntaxe associée qui permettent de documenter la fonction.

Carré¶

Programmer une fonction qui prend en argument un nombre et qui retourne son carré.

Fonction

In [ ]:

Tests

In [ ]:

Max à 2¶

Programmer une fonction qui prend en argument deux nombres puis qui renvoie le plus grand.

Fonction

In [ ]:

Tests

In [ ]:

Max à 3¶

Programmer une fonction qui prend en argument 3 nombres et qui renvoie le plus grand.

Fonctions

In [ ]:

Tests

In [ ]:

Essayer de programmer cette fonction en réutilisant la fonction max à 2 de la question précédente

In [ ]:

Question réponse¶

Programmer une fonction qui prend en argument une question et une réponse qui pose la question à l'utilisateur puis qui renvoie True si la réponse est juste ou False sinon.

Fonction

In [ ]:

Tests

In [ ]:

Mention¶

Dans cette partie, vous devez programmer une fonction qui prend en argument une note (entre 0 et 20) puis qui retourne la mention associée suivant la règle:

  • R si la note < 10
  • A si 10 <= note < 12
  • AB si 12 <= note < 14
  • B si 14 <= note < 16
  • TB si 16 <= note

Fonction

In [ ]:

Tests

In [ ]:

Questionnaire¶

Ecrire un programme qui pose 10 questions, fait gagner 2points par question juste puis qui donne une mention à l'utilisateur. La mention devra être encadré avec le symbole "o"

Il n'est pas attendu que vous mettiez tout ce programme dans une seul fonction. Par contre, vous devrez réutiliser le plus possible de fonctions déjà programmée précédement et celle ci-dessous

In [9]:
def encadre(texte:str, symbole:str)->str:
    """  Encadre le texte avec le symbole
    
    :param texte(str): texte à encadrer
    :param symbole(str): symbole pour encadrer
    :return(str): le texte encadré
    
    
    :example:
    >>> encadre("A", "~")
    ~~~
    ~A~
    ~~~
    >>> encadre("ZE", "-")
    ----
    -ZE-
    ----
    
    """
    texte_encadre = entoure(texte, symbole, 1)
    longueur_boite = len(texte_encadre)
    haut_bas = longueur_boite * symbole
    return haut_bas + "\n" + texte_encadre + "\n" + haut_bas
In [12]:
print(encadre("ZE", "-"))
----
-ZE-
----

Votre programme

In [ ]: