2.7. Exercices Python#

Petits exercices Python sur les variables, les boucles et les tableaux numpy

Marc Buffat, Dpt Mécanique Lyon 1

%matplotlib inline
import numpy as np
from matplotlib import pyplot as plt
import matplotlib.pyplot as plt
plt.rc('font', family='serif', size='14')
from validation.valide_markdown import test_markdown, test_code
from validation.validation import info_etudiant, bib_validation
from IPython.display import display, Markdown, clear_output
bib_validation("cours","MGC2028L")
from SolutionExo import solution
---------------------------------------------------------------------------
ModuleNotFoundError                       Traceback (most recent call last)
Cell In[1], line 10
      8 from IPython.display import display, Markdown, clear_output
      9 bib_validation("cours","MGC2028L")
---> 10 from SolutionExo import solution

ModuleNotFoundError: No module named 'SolutionExo'
# nom etudiant
def printmd(string):
    display(Markdown(string))
# test si numero étudiant spécifier
try: NUMERO_ETUDIANT
except NameError: NUMERO_ETUDIANT = None 
if NUMERO_ETUDIANT is None:
    NOM,PRENOM,NUMERO_ETUDIANT = info_etudiant()
printmd("## Etudiant {} {}  id={}".format(NOM,PRENOM,NUMERO_ETUDIANT))
np.random.seed(NUMERO_ETUDIANT)
_I1 = 1+np.random.randint(5)
_I2 = 1+np.random.randint(5,20)
_X  = np.round(0.01 + np.random.rand(),2)
import secrets
_L = list(secrets.token_urlsafe(_I1+_I2))

2.7.1. Variable et expression: exo 1#

mettre dans une variable V la valeur numérique de l’expression suivante :

\[ 2 \frac{\sin(\frac{\pi}{5}) + 1 }{ 1 + e^{2}} + 4\]
import numpy as np
### BEGIN SOLUTION
### END SOLUTION

2.7.2. Liste: exo1.1#

dans la liste L suivante, permuter le ième et jème élément et mettre le résultat dans L On affichera le résultat avant et après la permutation pour comparer.

printmd(f"**faire le calcul pour i={_I1}   j={_I2}**")
L = _L[:]
print(L)
### BEGIN SOLUTION
### END SOLUTION

2.7.3. Ecriture de boucle: exo 2#

Ecrire une boucle pour calculer le produit des entiers de I1 à I2 inclus. Le résultat est à mettre dans la variable p

printmd(f"**faire le calcul pour I1={_I1}   I2={_I2}**")
p = None
### BEGIN SOLUTION
### END SOLUTION

2.7.4. Traduction de formule mathématique: exo 3#

calcul de la quantité S suivante (somme des factorielles de 1 à n) dans la variable S $\( S = \sum_{i=1}^n i! \)$

printmd(f"**faire le calcul pour n={_I2}**")
S = None
### BEGIN SOLUTION
### END SOLUTION

2.7.5. Traduction de formule mathématique: exo 3.1#

calcul de la série suivante dans la variable L $\( L = 1 + \sum_{i=1}^n \frac{x}{i} \)$

printmd(f"**faire le calcul pour n={_I2}** et x={_X}")
L = None
### BEGIN SOLUTION
### END SOLUTION

2.7.6. Formules Itératives: exo 4#

Créer un tableau numpy I de dimension n qui contient les valeurs données par la formule de récurrence :

\[ I_{k+1}= \frac{k+1}{a} I_k \mbox{ pour k > 0 }\]

avec \(I_0 = 1\).

printmd(f"**faire le calcul pour n={_I2} et a={_I1}**")
I = None
### BEGIN SOLUTION
### END SOLUTION

2.7.7. Tableaux numpy: exo 5#

créer un tableau numpy TAB de dimension N contenant des valeurs aléatoires à l’aide de la fonction numpy: np.random.rand(N). Mettre dans la variable U les p dernières valeurs du tableau TAB

printmd(f"**faire le calcul pour N={_I2} et p={_I1}**")
TAB = None
### BEGIN SOLUTION
### END SOLUTION

2.7.8. Tableaux numpy: exo 6#

créer une matrice numpy A de dimension N contenant des valeurs aléatoires à l’aide de la fonction numpy: np.random.rand(N,N). Mettre dans la variable B la sous matrice de A constituée par les éléments se trouvant sur les n dernières colonnes et sur les n premières lignes de A.

printmd(f"**faire le calcul pour N={_I2} et n={_I1}**")
A = None
### BEGIN SOLUTION
### END SOLUTION

2.7.9. Tableaux numpy: exo 6.1#

créer un tableau numpy X de dimension N contenant des valeurs aléatoires entre -1 et 1 à l’aide de la fonction numpy: np.random.rand(N), qui crée un tableau de N valeurs aléatoires entre 0 et 1. On note que si \(0\le x \le 1\), alors \(-1\le 2x-1 \le 1\) . Mettre dans la variable Xpos le tableau constitué par les éléments positifs ou nuls de X et dans Xneg le tableau constitué par les éléments génatifs de X. Afficherz les tableaux pour vérifier.

printmd(f"**faire le calcul pour N={_I2}**")
X = None
### BEGIN SOLUTION
### END SOLUTION

2.7.10. FIN#