Aller au contenu

TD⚓︎

Exercice 1

def foo(mot):
    return len(mot) * '*'
  1. Que renvoie (retourne) l'appel foo("mot de passe") ?
  2. Modifier la fonction pour que la fonction retourne deux étoiles en plus.
  1. Renvoie '************'
  2. def foo(mot):
        return len(mot) * '*' + '**'
    

Exercice 2

def foo(a, b):
    return a + b
  1. Que renvoie (retourne) l'appel foo(8, 9) ?
  2. Modifier la fonction pour que la fonction retourne le produit des paramètres.
  1. Renvoie 17
  2. def foo(a, b):
        return a * b
    

Exercice 3

def foo(a, b):
    q = a // b
    r = a % b
    return str(a) + " = " + str(q) + " * " + str(b) + " + " + str(r)
  1. Que renvoie (retourne) l'appel foo(15, 4) ?
  2. Modifier la fonction pour que l'appel foo(15, 4) retourne "15 / 4 = 3.75".
  1. Renvoie '15 = 3 * 4 + 3'
  2. def foo(a, b):
        q = a / b
        return str(a) + " / " + str(b) + " = " + str(q)
    

Exercice 4

  1. Que fait la fonction suivante ?

    def foo():
        print("***")
        print("***")
        print("***")
    
  2. Que fait la fonction suivante ?

    def foo():
        res = "***\n"
        res += "***\n"
        res += "***\n"
        return res
    
  1. Elle affiche

    ***
    ***
    ***
    
  2. Elle retourne la chaine `'***



'`. Cette chaine, si on l'affiche s'affichera comme la fonction précédente.

Exercice 5

  1. Écrire une fonction triangle() retournant une chaine de caractères s'affichant:

    *
    **
    ***
    ****
    
  2. Écrire une fonction rectangle(lg) retournant une chaine de caractères composée de trois lignes de lg étoiles.

    Exemple:

    >>> print(rectangle(10))
    **********
    **********
    **********
    

1. ```python def triangle(): return "*

**


****" ```

    2. 
        ```python
        def rectangle(lg):
            return (lg * '*' + '

') * 3 ```

Exercice 6

def foo(prenom):
    prenom = input("quel est votre prénom ?")
    print("Bonjour", prenom)
  1. Qu'affiche l'appel foo("Rosa") ?
  2. Kevin pense que pour que l'appel foo("Rosa") affiche Bonjour Rosa il faut modifier la fonction comme suit:

    def foo(prenom):
        prenom = "Rosa"
        print("Bonjour", prenom)
    

    Qu'en pensez-vous ?

  1. Affichera Bonjour suivi du prenom indiqué par l'utilisateur. C'est absurde puisque l'on s'attendrait à ce que cela affiche Bonjour Rosa
  2. La solution de Kevin permet d'afficher Bonjour Rosa mais l'appel foo("Reda") affichera encore Bonjour Rosa. C'est tout aussi absurde.

IL NE FAUT DONC JAMAIS "ECRASER" LES PARAMÈTRES DE LA FONCTION.

Exercice 7

Ecrire des docstrings pour les fonctions que vous avez écrites aux exercices 1 à 4.

Exercice 8

Ecrire des doctests pour les fonctions que vous avez écrites aux exercices 1 à 4.