Exercices sur les fonctions¶
Que fait cette fonction ?¶
Répondre aux questions de cet exercice sans s’aider de l’ordinateur, puis vérifier.
On souhaite calculer \(\sum \frac{1}{i}\). Quelle est la différence entre les différentes fonctions si dessous ? Laquelle est la “bonne” fonction, laquelle la “pire”
def serie_1(n):
output = 0
for i in range(1, n+1):
output = output + 1/i
print(output)
serie_1(5)
def serie_2(n):
output = 0
for i in range(1, n+1):
output = output + 1/i
return output
serie_2(5)
def serie_3(n):
output = 0
for i in range(1, n+1):
output = output + 1/i
print(output)
serie_3(5)
def serie_4(n):
output = 0
for i in range(1, n+1):
output = output + 1/i
return output
serie_4(5)
1.0
1.5
1.8333333333333333
2.083333333333333
2.283333333333333
2.283333333333333
2.283333333333333
Parmi tous les appels de la fonction
f
ci dessous, lequels vont faire une erreur ? Quelle sera l’erreur ?
def f(a, b):
return a*2 + b
p = [1, 2]
f(1, 3, 4)
f(1, 2)
f(Bonjour, Hello)
f(1, a=2)
f(b=1, a=2)
f("Bonjour", "Hello")
f[1, 2]
f("Bonjour, Hello")
f(1)
f(**p)
f(*p)
Qu’est il affiché ? Dans quels fonction
x
est une variable globale ?
def f1(x, y):
print(x + y)
def f2(y):
x = 15
print(x + y)
def f3(x, y):
print(x + y)
x = 15
def f4(y):
print(x + y)
x = 15
x = 10
f1(1, 2)
x = 5
f1(1, 2)
f2(1)
print(x)
f3(1, 2)
f4(1) # Attention, il y a un piège ici.
3
3
16
5
3
---------------------------------------------------------------------------
UnboundLocalError Traceback (most recent call last)
<ipython-input-3-bf7078096a9a> in <module>
21 print(x)
22 f3(1, 2)
---> 23 f4(1)
<ipython-input-3-bf7078096a9a> in f4(y)
11
12 def f4(y):
---> 13 print(x + y)
14 x = 15
15
UnboundLocalError: local variable 'x' referenced before assignment
Qu’est il affiché ?
from math import sin
pi = 3.141592653589793
def g():
return sin(pi/2)
def f():
pi = 0
return sin(pi/2)
print(f())
print(g())
pi = 0
print(f())
print(g())
0.0
1.0
0.0
0.0
Qu’est il affiché ?
def f(a, b, c):
print(100*a + 10*b + c)
a = 1
b = 2
c = 3
f(a, b, c)
f(c, b, a)
f(a, b=c, c=b)
f(a=a, b=a, c=a)
123
321
132
111
Fonction cos_deg¶
Ecrire une fonction qui renvoie le cosinus d’un angle exprimé en degré
Volume d’un cône¶
Ecrire une fonction qui renoit le volume d’un cône de rayon \(r\) et hauteur \(h\).
Ecrire une fonction qui envoit le volume d’un tronc de cône de rayon \(r_1\) et \(r_2\).
Ecrire une seule fonction pour laquelle le tronc de cône est par défaut un cône (i.e. \(r_2=1\))
Fonction datetime¶
Importer la fonction datetime
du module datetime
et regarder se documentation.
Utiliser cette fonction pour entrer votre date de naissance (et l’heure si vous la connaissez) en nomant explicitement les arguments.
Même question mais après avoir mis les arguments dans une liste
Dans un dictionnaire
Fonction date en français¶
Ecrire une fonction
date_en_francais
qui renvoie un objetdate
mais dont les arguments sont en français (annee
,mois
,jour
)Idem avec la fonction
datetime
du moduledatetime
(il faudra rajouter les arguments optionelsheure
,minute
,seconde
)
Polynômes¶
On considère un polynôme de degrés \(n\) : \(a_0 + a_1x + a_2x^2 + ... + a_n x^n\).
Ecrire une fonction
eval_polynome_troisieme_degres(x, a_0, a_1, a_2, a_3)
qui évalue un tel polynôme en \(x\).Ecrire une fonction qui permettra d’évaluer un polynôme de degré inférieur à 4 est que l’on pourra utiliser de la façon suivante :
eval_polynome(x, 3, 4) # 3x + 4 eval_polynome(x, a_0=2, a_2=4) # 4x^2 + 4
Faire en sorte que cette fonction marche pour n’importe quel degré.
Equation du second degré¶
On souhaite trouver les solutions de l’équation : \(ax^2 + bx + c=0\). On rappelle que pour cela on calcule le discriminant \(\Delta = b^2 - 4*a*c\).
Si \(\Delta>0\), les solutions sont \(\frac{-b \pm \sqrt{Delta}}{2a}\)
Si \(\Delta=0\), il y a une solution (double) \(\frac{-b }{2a}\)
Si \(\Delta<0\), les solutions sont \(\frac{-b \pm i\sqrt{Delta}}{2a}\)
Ecrire une fonction equation_second_degre qui donne les solutions.
Tester l’équation \(x^2 -3x + 2\)
Ecrire une fonction qui résout une équation du premier degré.
Faire en sorte que cette fonction soit appelée lorsque \(a=0\).
Coordonnée polaire d’un nombre complexe¶
On considère une nombre complexe \(z\) et sa représentation polaire : \(z = re^{i\theta}\)
Ecrire une fonction qui à partir de \(r\) et \(\theta\) renvoie \(z\)
Nombres premiers¶
Ecrire une fonction qui renvoie True si un nombre est premier et False sinon. Pour cela, on testera si le nombre est divisible par les entiers successifs à partir de 2.
On admet que si \(n\) n’est pas premier, alors il existe un entier \(p \ge 2\) tel que \(p^2 \le n\) qui est un diviseur de \(n\).
Ecrire la fonction à l’aide d’une boucle.
Combien y a t-il d’années au XXIème siècle qui sont des nombres premiers ?
Si vous n’êtes pas convaincu que c’est mieux avec des fonctions, faites le sans…
Mention¶
Ecrire une fonction qui à partir de la note sur 20 donne la mention