Fonctions⚓︎
Fonction 0⚓︎
Complétez la fonction suivante, sachant qu'elle traduit l'expression mathématique
def f(x):bksl-nl y = ... # ligne à modifierbksl-nl return ybksl-nlbksl-nlbksl-nl# testsbksl-nlbksl-nlassert f(0) == 7bksl-nlassert f(1) == 11bksl-nlbksl-nldef f(x):bksl-nl y = 4 py-str x + 7bksl-nl return ybksl-nlbksl-nl
A
Z
Fonction 1⚓︎
Vous devez créer une fonction qui prend en paramètre un nombre \(x\) et qui renvoie \(5x-3\).
def fbksl-nlbksl-nlbksl-nl# testsbksl-nlbksl-nlassert f(0) == -3bksl-nlassert f(1) == 2bksl-nlbksl-nldef f(x):bksl-nl return 5 py-str x - 3bksl-nlbksl-nl
A
Z
Fonction 2⚓︎
Complétez l'écriture de la fonction \(g\) qui prend en paramètre un nombre \(x\) et qui renvoie \((x+1)^2\).
def gbksl-nl return bksl-nlbksl-nlbksl-nl# testsbksl-nlbksl-nlassert g(0) == 1bksl-nlassert g(1) == 4bksl-nlbksl-nldef g(x):bksl-nl t = x + 1bksl-nl return t py-str tbksl-nlbksl-nl
A
Version recommandée !
Variantes⚓︎
On peut aussi écrire de plusieurs autres façons
def g(x):
return (x + 1) ** 2
Avec l'opérateur puissance, c'est un peu plus lent
def g(x):
return (x + 1) * (x + 1)
Avec le facteur calculé deux fois, puis multiplié, également plus lent
Z
Fonction 3⚓︎
Complétez la fonction suivante, sachant qu'elle traduit l'expression mathématique
def f(x):bksl-nl y = ... # ligne à modifierbksl-nl return ybksl-nlbksl-nlbksl-nl# testsbksl-nlbksl-nlassert f(0) == 1bksl-nlassert f(1) == 3bksl-nlassert f(-1) == 9bksl-nlbksl-nlbksl-nldef f(x):bksl-nl y = 5py-strxpy-strx - 3py-strx + 1bksl-nl return ybksl-nlbksl-nl
A
Variantes⚓︎
def f(x):
# avec l'opérateur puissance
y = 5*x**2 - 3*x + 1
return y
# ou
def f(x):
# remarquez qu'il n'y a que deux multiplications !
y = (5*x-3) * x + 1
return y
Z
Fonction 4⚓︎
Corrigez la fonction produit
pour qu'elle prenne deux paramètres k
et n
, et renvoie leur produit.
# fonction à corrigerbksl-nldef produit(k):bksl-nl return k + kbksl-nlbksl-nlbksl-nl# testsbksl-nlbksl-nlassert produit(2, 3) == 6bksl-nlassert produit(-5, 2) == -10bksl-nlbksl-nldef produit(k, n):bksl-nl return k py-str nbksl-nlbksl-nl
A
Z
Fonction 5⚓︎
Aire d'un trapèze
Un trapèze est un quadrilatère non croisé ayant deux côtés parallèles ; ses bases. Son aire est égale à la moyenne des bases, multipliée par la hauteur associée.
Complétez la fonction aire_trapeze
qui renvoie l'aire d'un trapèze.
Elle a pour paramètres :
base_1
: la longueur d'une basebase_2
: la longueur de l'autre basehauteur
: la hauteur associée
def airepy-undtrapeze():bksl-nl ...bksl-nlbksl-nlbksl-nl# testsbksl-nlbksl-nlassert airepy-undtrapeze(3, 1, 2) == 4 # Exemple 1bksl-nlassert airepy-undtrapeze(3, 5, 2) == 8 # Exemple 2bksl-nlassert airepy-undtrapeze(3, 3, 2) == 6 # Exemple 3bksl-nlbksl-nlbksl-nldef airepy-undtrapeze(basepy-und1, basepy-und2, hauteur):bksl-nl return (basepy-und1 + basepy-und2) py-str hauteur / 2bksl-nlbksl-nl
A
Z
Exemples de trapèzes
Fonction 6⚓︎
Créez la fonction perimetre
de paramètre L
et l
qui calcule et renvoie le périmètre du rectangle de longueur L
et de largeur l
.
# ... À créer icibksl-nlbksl-nlbksl-nl# testsbksl-nlbksl-nlassert perimetre(2, 3) == 10bksl-nlassert perimetre(5, 2) == 14bksl-nlbksl-nldef perimetre(L, l):bksl-nl y = (L + l) py-str 2bksl-nl return ybksl-nlbksl-nl
A
Z
Fonction 7⚓︎
Créez la fonction circonference
de paramètre rayon
qui renvoie le périmètre du cercle de rayon donné.
On définira la constante
PI
de valeur3.1415926
dans le script.
# À créer icibksl-nlbksl-nlbksl-nlbksl-nl# testsbksl-nlbksl-nlassert circonference(0) == 0bksl-nlassert circonference(1) == 6.2831852bksl-nlbksl-nlPI = 3.1415926bksl-nlbksl-nldef circonference(r):bksl-nl y = 2 py-str PI py-str rbksl-nl return ybksl-nlbksl-nl
A
La réponse est simple, mais il faut évoquer un point
Pas d'égalité entre flottant
Dans les tests, nous avons écrit
assert circonference(0) == 0
assert circonference(1) == 6.2831852
Cette méthode peut être source d'erreurs, il ne faut pas faire de tests d'égalité entre flottants.
On fait un test de nombres proches
def sont_proches(x, y):
return abs(x - y) < 10**-9
assert sont_proches(circonference(0), 0)
assert sont_proches(circonference(1), 6.2831852)
Voilà une bonne méthode.
Les tests cachés sur cet exercice utilisaient la fonction sont_proches
!
Comme dans tous les exercices où interviennent des tests d'égalité entre flottants.
Z
Fonction 8⚓︎
Complétez la fonction Celsius_depuis_Fahrenheit
qui permet de convertir une température donnée en degré Fahrenheit en une température en degré Celsius.
Aujourd'hui, l'échelle Fahrenheit est calée sur l'échelle Celsius par la relation :
def Celsiuspy-unddepuispy-undFahrenheit(tpy-undfahrenheit):bksl-nl tpy-undcelcius = ... # ligne à modifierbksl-nl return tpy-undcelciusbksl-nlbksl-nlbksl-nl# testsbksl-nlbksl-nldef sontpy-undproches(x, y):bksl-nl return abs(x - y) < 10py-strpy-str-9bksl-nlbksl-nlassert sontpy-undproches(Celsiuspy-unddepuispy-undFahrenheit(-40), -40)bksl-nlassert sontpy-undproches(Celsiuspy-unddepuispy-undFahrenheit(+32), 0)bksl-nlassert sontpy-undproches(Celsiuspy-unddepuispy-undFahrenheit(+50), 10)bksl-nlassert sontpy-undproches(Celsiuspy-unddepuispy-undFahrenheit(212), 100)bksl-nlbksl-nlbksl-nldef Celsiuspy-unddepuispy-undFahrenheit(tpy-undfahrenheit):bksl-nl tpy-undcelcius = (tpy-undfahrenheit - 32) py-str 5 / 9bksl-nl return tpy-undcelciusbksl-nlbksl-nl
A
Z
Fonction 9⚓︎
Un parc d'attractions affiche les tarifs suivants :
- 8,50 € par enfant
- 12,00 € par adulte
Vous devez écrire une fonction prix
qui renvoie le prix total à payer, à partir du nombre n
d'enfants et du nombre p
d'adultes.
def prix(n, p):bksl-nl y = ... # ligne à modifierbksl-nl return ybksl-nlbksl-nlbksl-nl# testsbksl-nlbksl-nlassert prix(0, 0) == 0.0bksl-nlassert prix(1, 0) == 8.5bksl-nlassert prix(0, 1) == 12.0bksl-nlbksl-nlbksl-nldef prix(n, p):bksl-nl y = n py-str 8.5 + p py-str 12.0bksl-nl return ybksl-nlbksl-nl
A
Z