J’apprends à écrire des formules en Python
Fonctions et suites : traduire une expression mathématique, respecter la syntaxe et construire progressivement un programme correct.
1. Traduire les symboles mathématiques
| Écriture mathématique | Écriture Python | Attention |
|---|---|---|
| \(3x+2\) | 3*x + 2 | 3x est interdit |
| \(x^2\) | x**2 | ^ ne signifie pas puissance |
| \(\dfrac{x+1}{2x-3}\) | (x+1)/(2*x-3) | parenthèses obligatoires |
| \(\sqrt{x}\) | sqrt(x) | après from math import sqrt |
| \(2^n\) | 2**n | deux astérisques |
À vous
Traduisez \(5x^2-3x+7\) :
5x^2 cumule deux erreurs. Il faut écrire 5*x**2.2. Programmer une fonction
Pour la fonction \(f(x)=3x^2-2x+1\), le paramètre est x et return renvoie l’image calculée.
def f(x):
return 3*x**2 - 2*x + 1
Définir
def f(x): annonce le nom de la fonction et sa variable.
Renvoyer
return est indenté de quatre espaces et renvoie le résultat.
9
Compléter
où \(g(x)=\dfrac{x^2+1}{x-2}\).
3. Programmer une suite explicite
Une suite explicite se programme comme une fonction dont le paramètre est le rang \(n\).
def u(n):
return 3*2**n - 1
47
Exercice guidé
Écrivez la formule Python correspondant à \(v_n=\dfrac{2n+1}{n+3}\).
Pourquoi faut-il des parenthèses ?
Sans parenthèses, Python ne sait pas que tout \(2n+1\) constitue le numérateur et que tout \(n+3\) constitue le dénominateur.
4. Programmer une suite définie par récurrence
Pour \(u_0=2\) et \(u_{n+1}=2u_n+1\), il faut partir de la valeur initiale puis appliquer la relation exactement \(n\) fois.
def u(n):
u = 2 # valeur initiale u_0
for k in range(n):
u = 2*u + 1 # terme suivant
return u
range(n) ? Pour obtenir \(u_n\) à partir de \(u_0\), on effectue exactement \(n\) passages au terme suivant.2.25
Remettre les trois lignes essentielles
Écrire maintenant le programme complet
Vous pouvez choisir librement les noms du compteur et de la variable qui contient le terme.
5. Repérer et corriger les erreurs
Erreur 1
def f(x):
return 3x^2 + 1Repérez trois erreurs.
Correction
def f(x):
return 3*x**2 + 1Il manquait l’indentation, le signe * et le deuxième astérisque de la puissance.
Erreur 2
def u(n):
u = 2
for k in range(n):
u = 2*k + 1
return uQuelle variable doit être utilisée dans la relation ?
Correction
Il faut écrire u = 2*u + 1. La relation dépend du terme précédent u, pas du compteur k.
Erreur 3
def v(n):
return 2*n+1/n+3Pourquoi la fraction est-elle fausse ?
Correction
Écrire (2*n+1)/(n+3) afin de délimiter numérateur et dénominateur.
Erreur 4
def w(n):
w = 4
for k in range(n+1):
w = (w+2)/2
return wPourquoi obtient-on le terme suivant ?
Correction
range(n+1) effectue \(n+1\) mises à jour. Pour obtenir \(w_n\), il faut range(n).
6. Banque d’exercices autocorrectifs
1
Afficher la solution seulement après avoir essayé
def a(n):
a = 5
for k in range(n):
a = (3*a + 1)/2
return a