Exercices fonctions

Exercices sur les fonctions

Flash card 1

Voici le script d’une fonction avec paramètres :

def servir_sucre(client,nombre=0):
  """servir le nombre de sucre dans le café du client"""
  return '{} veut son café avec {} sucre(s)'.format(client,nombre)
  <ol>
  <li>servir_sucre('James')</li>
  <li>servir_sucre('Johanna',3)</li>
  </ol>
</div>
<div class="flip-card-back" style="font-size: 14px">
  <h1>Réponses</h1>
  <ol>
    <li>James veut son café avec 0 sucre(s)</li>
    <li>Johanna veut son café avec 3 sucre(s)</li>
  </ol>
</div>

Flash card 2

Script A

L1 = [1,2,3]

def ajoute4(L2):
  L2.append(4)

ajoute4(L1)

Flash card 3

Soit la liste L:

L = [['Deuf', 'John', 'Vezuvio', '8']
    ['Fassol', 'Rémi', 'fruits de mer', '6']
    ['Niole', 'Guy', 'spéciale', '15']]

Et la fonction cherche:

def cherche(m):
    for i in client:
        if i[3] == m:
            return i
    return "aucun élément trouvé"
        

Flash card 4

La fonction ajoute(n,p) codée ci-dessous en Python doit calculer la somme de tous les entiers compris entre n et p (n et p compris).

Par exemple, ajoute(2,4) doit renvoyer 2+3+4 = 9

def ajoute(n,p):
  somme = 0
  for i in range(.........):   # ligne à modifier
    somme = somme + i
  return somme
</div>
<div class="flip-card-back" style="font-size: 14px">
  <h1>Réponses</h1>
  <code style="color:black">for i in range(n,p+1):</code><br>
  Lorsque <em>range</em> prend 2 arguments, l'itération se fait entre la premiere valeur, et la 2<sup>e</sup> valeur - 1
</div>

Flash card 5

On souhaite utiliser la fonction sin du module math.

L’appel de la fonction diffère selon la méthode d’import du module.

  <ol>
  <li>import math</li>
  <li>from math import sin</li>
  <li>import math as m</li>
  </ol>
</div>
<div class="flip-card-back" style="font-size: 14px">
  <h1>Réponses</h1>
  <ol>
  <li>math.sin(3.14)</li>
  <li>sin(3.14)</li>
  <li>m.sin(3.14)</li>
  </ol>
</div>

Flash card 6

On définit la fonction f :

def f(a,b):
  assert b!=0,'le deuxième argument est nul'
  result = a/b
  return result

B- NameError: name ‘b’ is not defined et l’arrêt de l’exécution

C- AssertionError: le deuxième argument est nul et la variable r prend la valeur 0

D- AssertionError: le deuxième argument est nul et l’arrêt de l’exécution

</div>
<div class="flip-card-back" style="font-size: 14px">
  <h1>Réponse</h1>
  reponse D : AssertionError: le deuxieme argument est nul
</div>

si besoin, revoir le cours sur la mise au point d’un programme

Flash card 7

On exécute le code suivant :

def f(t):
  n = len(t)
  for i in range(n-1):
    if t[i] > t[i+1]:
      t[i],t[i+1] = t[i+1],t[i]

L = [4, 8, -7, 0, 1]
f(L)
  A- [4, -7, 8, 0, 1]<br>

  B- [-7, 0, 1, 4, 8]<br>

  C- [4, 8, -7, 0, 1]<br>

  D- [4, -7, 0, 1, 8]<br>


</div>
<div class="flip-card-back" style="font-size: 14px">
  <h1>Réponse</h1>
  Reponse D : L vaut [4, -7, 0, 1, 8]<br>

Lorsque l’on appelle la fonction avec f(L), la liste L est passée par référence : les modifications de t affectent la liste L. A chaque itération, 8 est comparé avec l’élément de rang supérieur, et comme 8 est plus grand, on permute les 2 éléments de L. Jusqu’à la fin de la liste.

Relire le cours

Lien vers la page : fonctions