Feuille d’exercices 3#

Objectifs

  • Compléments sur les listes

  • Ensembles et dictionnaires

  • Mot-clefs all et any

Exercice 1 : listes par compréhension#

Question 1 : En utilisant une déclaration de liste par compréhension, écrire la liste des puissances de \(2\) comprises entre \(2^1\) et \(2^{20}\).

# Votre réponse ici

Question 2 : En utilisant une déclaration de liste par compréhension, donner la liste des caractères de la chaîne « Université Paris 8 Vincennes Saint-Denis » qui ne sont pas des espaces.

chaine = "Université Paris 8 Vincennes Saint-Denis"

# Votre réponse ici

Question 3 : En utilisant une déclaration de liste par compréhension, donner le nombre d’entiers compris entre \(1000\) et \(2000\), qui sont à la fois divisibles par \(2\) et \(7\).

# Votre réponse ici

Question 4 : En utilisant une déclaration de liste par compréhension, écrire une fonction diviseurs(n) qui retourne la liste des diviseurs d’un entier n.

# Votre réponse ici

Exercice 2 : mots-clefs any et all#

Un palindrome est un mot ou une phrase qui se lit identiquement dans les deux sens. Par exemple, les mots « radar », « kayak » ou « naan » sont des palindromes.

Question 1 : En utilisant le mot clef all, écrire une fonction est_palindrome(mot) qui teste si la chaîne de caractère mot est (ou non) un palindrome. Pour cela, on pourra utiliser le mot-clef all.

# Votre réponse ici

Question 2 : En utilisant le mot clef any, écrire une fonction contient_palindrome(L) qui prend en entrée une liste de chaînes de caractères L, et qui teste si au moins une de ces chaînes est un palindrome.

# Votre réponse ici

Exercice 3 : ensembles#

Question 1 : Écrire une fonction caracteres(texte) qui prend en entrée une chaîne de caractères texte, et qui retourne l’ensemble des caractères de la chaîne.

# Votre réponse ici

Exercice 4 : dictionnaires#

Question 1 : Écrire une fonction compte_caracteres(texte) qui prend en entrée une chaîne de caractères texte, et qui retourne le dictionnaire ayant :

  • pour clés les caractères de la chaîne texte

  • pour valeur correspondant au caractère c, le nombre de fois que c apparaît dans texte.

Par exemple, pour la chaîne « calcul », on obtient le dictionnaire { 'c': 2, 'a': 1, 'l': 2, 'u': 1}.

# Votre réponse ici

Exercice 5 : somme de puissances#

Question 1 : Créer une fonction liste_puissances(n, p) qui prend en entrée deux paramètres paramètres n et p, et qui retourne la liste des entiers de la forme \(x^p\), pour \(x\) compris entre \(1\) et \(n\). Par exemple, pour \(n = 4\) et \(p = 3\), on obtient la liste [1, 8, 27, 64]. Votre fonction devra utiliser une déclaration de liste par compréhension.

# Votre réponse ici

Question 2 : Créer une fonction récursive somme_liste(L) qui retourne la somme des éléments d’une liste L. Si la liste L est vide, la fonction doit retourner \(0\).

# Votre réponse ici

Question 3 : À l’aide du mot-clef all et des questions précédentes, vérifier que l’identité

\[ \sum_{i=1}^n i^3 = \left(\sum_{i=1}^n i \right)^2 \]

est satisfaite pour les entiers \(n\) compris entre \(1\) et \(100\).

# Votre réponse ici

Exercice 6 : corriger des erreurs#

Question 1 : Dans la cellule suivante, une fonction a été écrite dnas le but d’inverser l’ordre des lettres d’un mot. Cette fonction contient plusieurs erreurs. Exécutez la cellule, puis observez ce qui est affiché. Essayez ensuite de corriger les erreurs pour obtenir le bon résultat.

def ma_fonction(mot)
    renverse = ""
    n = len(mot)
    for i in range(1, n):
        renverse = mot(i) + renverse
    return renverse

ma_fonction("calcul")
  Cell In[12], line 1
    def ma_fonction(mot)
                        ^
SyntaxError: expected ':'

Exercice 7 : doublon dans les listes#

Question 1 : Écrire une fonction doublon(L) qui prend en entrée une liste L, et qui teste si la liste L contient au moins deux fois le même élément.

# Votre réponse ici

Question 2 : Si ce n’est pas déjà fait, reprendre la question 1, en utilisant le mot-clef any, ainsi qu’une syntaxe par compréhension.

# Votre réponse ici