Exercices Spécifications et tests¶
Pour chacun des exercices ci-dessous, vous devez rédiger l'entête de la donction (docstring) puis les tests nécessaires (assert)
Les exercices ci dessous sont des révisions d'algorithmie et reprennent également ce que vous avez vu sur les listes.
import math
def ma_fonction1(x):
return(x*math.pi/180)
def ma_fonction2(x):
return(math.cos(ma_fonction1(x)))
Exercice 1¶
On rappelle que la fonction randint(a, b)
du module random
permet de tirer un nombre au hasard entre a
et b
compris. En particulier elle permet de tirer l'indice d'un élément de tableau au hasard ...
import random
def tirer_une_carte():
couleurs = ('pique','trèfle','coeur','carreau')
valeurs = ('7', '8', '9', '10', 'V', 'D', 'R', 'AS')
# à compléter ...
#x = random.randint( ...
#
#
#
#
#return ...
ici, avec le module random, est il possible de rédiger un test d'égalité
exemple assert tirer_une_carte() == 1
Comment peut-on ?
Exercice 2¶
On vous donne une liste et on veut écrire une fonction qui donne le nombre d'élément de cette liste supérieurs ou égaux à 100.
Rédiger le test pour la liste [100,20,50,150,240,99]
li1 = [100,20,50,150,240,99]
Rédiger le test pour la liste [50*i for i in range(7)]
Exercice 3¶
Sur les fonctions suivantes, déterminer les assertions à mettre en oeuvre pour tester ces fonctions. Et corriger si nécessaire le code de la fonction pour qu'elle fonctionne comme l'indique sa spécifications
def echange_v1(liste):
"""modifie la liste, la met dans l'ordre inverse"""
n=len(liste)
for i in range(n):
liste[i], liste[n-1-i] = liste[n-1-i], liste[i]
def echange_v2(liste):
"""modifie la liste, la met dans l'ordre inverse"""
n=len(liste)
for i in range(n//2):
liste[i]=liste[n-1-i]
liste[n-1-i]=liste[i]
def ajoutUnListe(liste):
"""modifie la liste, ajoute 1 à chacun des termes"""
n= len(liste)
for i in range(1, n+1):
liste[i] = liste[i]+1
Exercice 4 : Recherche d'extremum dans une liste¶
Activité débranchée¶
Vous disposez de petits papiers numérotées 3, 2, 4, 6, 9, 1, 5 disposées dans n'importe quel ordre.
Vous disposez aussi d'un emplacement "support" nommée m
.
Exprimer oralement l'algorithme permettant de trouver quelle est la carte portant la valeur maximale.
Création d'une fonction maximum(liste)
¶
Attention : nous allons recréer une fonction qui, bien sûr, existe déjà en Python, sous le nom max()
.
Ecrire l'algorithme en Python.
Il est expressément demandé de construire une fonction nommée maximum()
, qui prenne en argument une liste, et qui renvoie le plus grand nombre de cette liste.
Exemple d'utilisation :
>>> maximum([3,1,6,2])
>>> 6
def maximum(l) :
"""
Ecrire ici la docstring
"""
#Cas classique avec la valeur positionnée au milieu
assert maximum([3,1,6,2])== 6
#Cas classique avec la valeur positionnée en premier
assert maximum([9,1,6,2])== 9
#Cas classique avec la valeur positionnée en dernier
assert maximum([3,1,6,9])== 9
#Cas limite d'une liste vide
assert maximum([]) == None
Exercice 5¶
Calcul de la moyenne des termes d'une liste¶
Créer une fonction moyenne()
qui prenne en argument une liste et qui renvoie la moyenne des nombres de cette liste.
#Ecrire ici la fonction
#Ecrire ici les assertions