Test puis TP : parcourir une liste

Petit test :

  • conversions shadoks ou plutôt base 4 <> décimal
  • compréhension d’un code python …
  • … et rédaction d’une fonction python …
  • … pour tester votre implication dans le projet pendu.

TP python :

A) Correction du code « statistiques sur un texte »

def lettres_differentes(mot):
    """
        attend une chaîne de caractères : mot
        renvoie une liste : les caractères différents de mot
    """
    liste=[]
    for l in mot :
        if l not in liste:
            liste.append(l)
    return liste

def combien_de(l, mot):
    """
        attend un caractère : l
        une chaîne de caractères : mot
        renvoie un entier : le nombre de fois où apparaît l dans mot
    """
    effectif = 0
    for lettre in mot :
        if lettre == l :   # ici c'est la lettre l
            effectif += 1  # là c'est le nombre 1
    return effectif

def stats(mot):
    """
        une fonction qui prend en entrée une chaîne de caractères
        et affiche un tableau
        avec tous ses caractères et les effectifs liés.
    """

    # création liste des lettres
    lettres_diff = lettres_differentes(mot)

    # débuggage
    print("Débuggage 1 : lettres différentes\n", lettres_diff)

    # décompte des effectifs de chaque lettre
    effectifs=[]
    for l in lettres_diff:
        nbre = combien_de(l, mot)
        effectifs.append(nbre)

    # débuggage
    print("Débuggage 2 : différents effectifs\n", effectifs)

    # affichage
    print()
    print("Statistiques pour\n", mot)
    print()
    for i in range(len(lettres_diff)) :
        print(lettres_diff[i], ":", effectifs[i])

texte = "Lorem ipsum dolor sit amet, consectetur adipiscing elit."

stats(texte)
Débuggage 1 : lettres différentes
 ['L', 'o', 'r', 'e', 'm', ' ', 'i', 'p', 's', 'u', 'd', 'l', 't', 'a', ',', 'c', 'n', 'g', '.']
Débuggage 2 : différents effectifs
 [1, 4, 3, 5, 3, 7, 6, 2, 4, 2, 2, 2, 5, 2, 1, 3, 2, 1, 1]

Statistiques pour
 Lorem ipsum dolor sit amet, consectetur adipiscing elit.

L : 1
o : 4
r : 3
e : 5
m : 3
  : 7
i : 6
p : 2
s : 4
u : 2
d : 2
l : 2
t : 5
a : 2
, : 1
c : 3
n : 2
g : 1
. : 1
>>>

B) Parcourir une liste

Écrire une fonction est_present(elt, liste) qui attend en paramètre une valeur et une liste et qui teste si la valeur est présente dans la liste

  • d’abord en renvoyant True ou False. Exemples :
    >>> liste_de_test = [42, 13, 28, 14, 2, 52]
    >>> est_present(14, liste_de_test)
    >>> True
    >>> est_present(23, liste_de_test)
    >>> False
  • Puis en renvoyant l’indice où est la valeur est trouvée, ou -1 si elle n’est pas trouvée. Exemples :
    >>> liste_de_test = [42, 13, 28, 14, 2, 52]
    >>> est_present(14, liste_de_test)
    >>> 3
    >>> est_present(23, liste_de_test)
    >>> -1

Écrire une fonction maximum(liste) qui attend en paramètre une liste non vide et qui

  • renvoie son maximum. Exemples :
    >>> liste_de_test = [42, 13, 28, 14, 2, 52, 21, 35]
    >>> maximum(liste_de_test)
    >>> 52
  • Puis renvoie un couple (maximum, indice). Exemples :
    >>> liste_de_test = [42, 13, 28, 14, 2, 52, 21, 35]
    >>> maximum(liste_de_test)
    >>> (52, 5)

Idem avec le minimum.

Recherche de doublons

Démo de résultat :

[42, 13, 28, 84, 2, 52]

Le maximum est 84 atteint à l'indice 3
Le minimum est 2 atteint à l'indice 4
Pas de doublons dans cette liste

[5, 6, 7, 42, 13, 28, 12, 84, 2, 6, 42, 52, 6, 52]

Le maximum est 84 atteint à l'indice 7
Le minimum est 2 atteint à l'indice 8
Il y a 3 fois le nombre 6
Il y a 2 fois le nombre 42
Il y a 2 fois le nombre 52
>>> 

2 réflexions au sujet de « Test puis TP : parcourir une liste »

  1. Pour ceux qui n’y arrivent pas, nous pouvons chercher l’entier le plus grand d’une liste en faisant max(liste) et à l’inverse min(liste) (ne pas oublier le return)

N'hésitez-pas à poser une question, ou faire avancer le schmilblick

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l’aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google

Vous commentez à l’aide de votre compte Google. Déconnexion /  Changer )

Image Twitter

Vous commentez à l’aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l’aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.