Ce second TP se concentre sur des opérations de base en python, notamment la manipulation de listes.
Question 1 : Affecter à a
et b
les valeurs $5^6$ et $1234$.
Question 2 : Calculer le reste $r$ et le quotient $q$ de la division euclidienne de a
par b
. On stockera les résultats dans des variables r
et q
.
Question 3 : Calculer la valeur de $x = b q + r$, stocker le résultat dans une variable x
, puis vérifier que $x = a$.
Question 1 : Effectuer successivement les étapes suivantes :
L
une liste videL
L
est strictement positif, alors afficher "Positif"
Question 2 : Créer, en les ajoutant un par un en fin de liste, grâce à une boucle for
et au mot-clef range
, la liste M
des entiers compris entre $3$ et $97$.
Question 3 : Créer, par compréhension, la même liste N
des entiers compris entre $3$ et $97$.
Question 4 : Tester si M
est égale à N
.
Question 1 : Écrire une fonction itérative factorielle(n)
qui calcule la factorielle d'un entier n
passé en paramètre. Pour cela, vous remplacerez l'instruction pass
ci-dessous, par vos propres lignes de code. Testez ensuite votre fonction avec $n = 0$, $n = 1$, $n = 10$ et $n = 2022$.
def factorielle(n):
pass
Question 2 : Écrire une version récursive de la fonction factorielle, que vous appellerez factorielle_rec
. Testez ensuite votre fonction avec les mêmes valeurs que précédemment.
Question 3 : Dans la cellule suivante, une fonction est écrite pour calculer le maximum d'une liste. Décommentez la dernière ligne, exécutez la cellule, puis observez ce qui est affiché. Essayez ensuite de corriger l'erreur pour obtenir le bon résultat.
def ma_fonction(L):
m = 0
i = 0
n = len(L)
while i <= n:
if L[i] > m:
m = L[i]
i += 1
return m
# ma_fonction([13, 12, 42, -37])
Question 1 : Écrire une fonction liste_aleatoire(n, m)
qui retourne une liste de $n$ entiers tirés aléatoirement entre $1$ et $m$ (inclus), où $m$ est un entier naturel. On pourra créer cette liste par compréhension.
Ne pas oublier d'importer la fonction randint
de la bibliothèque random
de python par :
from random import randint
Question 2 : Écrire une fonction est_decroissante(L)
qui teste si une liste est triée dans l'ordre décroissant.
Question 3 : Dans cette question, on suppose que L
est une liste de nombres triée dans l'ordre décroissant. Écrire une fonction inserer(L, x)
qui insère l'élément x
dans L
afin que la liste reste classée dans l'ordre décroissant.
Question 4 : Écrire une fonction tri_decroissant(L)
qui trie une liste L
dans l'ordre décroissant.
Question 1 : Écrire une fonction doublon(L)
qui teste si la liste L
contient au moins deux fois le même élément.
Question 2 : Écrire une fonction simplifie_liste(L)
qui retourne la liste de tous les éléments contenus L
, mais sans multiplicité. Autrement dit, si un élément apparaît deux fois (ou plus) dans la liste L
, il apparaîtra une seule fois dans la liste retournée par simplifie_liste(L)
.
Question 3 : Écrire une fonction extraire_doublons(L)
qui retourne la liste des éléments de L
qui y apparaissent au moins deux fois.