Corrigé du TP Zéro⚓︎
Exercice 1
Écrire une fonction maximum
qui prend deux entiers en paramètres et qui renvoie le plus grand des deux.
Fonction max
interdite.
def maximum(a:int, b:int) -> int:
if a > b:
return a
return b
Exercice 2
Écrire une fonction somme_et_produit
qui prend deux entiers en paramètres et qui renvoie un tuple contenant leur somme et leur produit.
def somme_et_produit(a:int, b:int) -> tuple:
return a + b, a * b
Exercice 2 bis
Écrire une fonction somme_et_produit_str
qui prend deux entiers en paramètres et qui renvoie une chaîne de caractères donnant leur somme et leur produit.
def somme_et_produit(a:int, b:int) -> str:
return f"La somme de {a} et {b} est {a + b} et leur produit est {a * b}."
Exercice 3
Écrire une fonction somme
qui prend en paramètre un entier et qui renvoie la somme de tous les entiers inférieurs.
Par exemple, somme(5)
doit renvoyer 10
car \(1+2+3+4=10\).
def somme(n:int) -> int:
s = 0
for k in range(n):
s = s + k
return s
assert somme(5) == 10
assert somme(0) == 0
Exercice 4
Écrire une fonction fais6stp
qui simule des lancers de dés et qui donne le nombre de tentatives avant d'avoir obtenu un 6.
On utilise la fonction randint
du module random
.
Pas de tests possibles, puisque le pseudo-hasard intervient.
import random
def fais6stp():
nb_tentatives = 0
de = 0
while de != 6:
de = random.randint(1, 6)
nb_tentatives += 1
return nb_tentatives
Exercice 5
Écrire une fonction somme_liste
qui prend en paramètre une liste (d'entiers) et qui renvoie la somme de ses éléments.
Rappel
Il est primordial de savoir faire un parcours de liste par indice ou par élément. Ici un parcours de liste par élément est possible (pas besoin des indices).
def somme_liste(tab:list) -> int:
somme = 0
for nb in tab:
somme += nb
return somme
assert somme_liste([5, 1, 2]) == 8
assert somme_liste([]) == 0
def somme_liste(tab:list) -> int:
somme = 0
for i in range(len(tab)):
somme += tab[i]
return somme
assert somme_liste([5, 1, 2]) == 8
assert somme_liste([]) == 0
Exercice 6
Écrire une fonction echange
qui prend en paramètre une liste tab
, deux entiers i
et j
et qui renvoie la liste dont les éléments d'indices i
et j
ont été échangés.
def echange(tab:list, i:int, j:int) -> list:
temp = tab[i]
tab[i] = tab[j]
tab[j] = temp
return tab