Associations clé-valeur
Découverte des dictionnaires
On utilise un dictionnaire pour associer à un nom d'utilisateur son mot de passe.
| 🐍 Code Python | |
|---|---|
1 | |
Que renvoie mdp["Alice"] ? Quelle instruction renvoie le mot de passe de Bob ?
Que renvoie mdp["Cléo"] ? mdp["0123"] ? Commenter.
Exécuter mdp["Charles"] = "azerty".
Afficher le dictionnaire mdp à l'aide de l'instruction print(mdp) et commenter.
Ajouter au dictionnaire l'utilisateur Évelyne, dont le mot de passe est "fustell".
Bob souhaite modifier son mot de passe en "Monsup3rmotdep@sse!!!".
Écrire l'instruction python correspondante.
-
Exécuter les instructions :
"Alice" in mdp"Bob" in mdp"Cléo" in mdp"0123" in mdpnot ("Bob" in mdp)"Cléo" not in mdp
-
De manière générale, que renvoie
k in mdp?
Un site web souhaite utiliser une fonction de vérification de mot de passe pour authentifier ses utilisateurices. Ceux-ci entrent leur nom d'utilisateur, leur mot de passe dans les champs du formulaires et soumettent la requête au serveur.
Écrire une fonction verifie, qui prend en argument un dictionnaire mdp stockant les mots de passe des utilisateurices, un nom d'utilisateur et une chaine de caractère. Elle renvoie True si chaine est le mot de passe d'utilisateur stocké dans mdp, False sinon.
Pour cela, on accède à la valeur associée à utilisateur dans le dictionnaire mdp, que l'on compare à chaine. On renvoie True si ces deux chaînes de caractères sont égales, False sinon. Attention, il est possible que utilisateur ne soit pas un clé du dictionnaire mdp. Dans ce cas il faut renvoyer False.
| 🐍 Code Python | |
|---|---|
1 2 3 4 | |
Un hacker mal intentionné parvient à prendre le contrôle du site web. Il souhaite obtenir la liste de tous les utilisateurs ainsi que leurs mots de passe.
| 🐍 Code Python | |
|---|---|
1 2 | |
| 🐍 Code Python | |
|---|---|
1 2 | |
| 🐍 Code Python | |
|---|---|
1 2 | |
| 🐍 Code Python | |
|---|---|
1 2 | |
-
Exécuter les codes ci-dessus.
-
Lorsque
dest dictionnaire, expliquer ce que réalise l'instructionfor k in d:
Décompte de votes
Les résultats d'un référendum sont stockés dans une liste :
| 🐍 Code Python | |
|---|---|
1 | |
Écrire le code de la fonction compte_voix prend en argument une liste votes ne contenant que des "oui" et des "non", et renvoie un dictionnaire :
- dont les clés sont
"oui"et"non" - la valeur associée à la clé
kest le nombre de fois oùkapparaît dans la listevote
Pour cela, on parcourt chaque vote v de la liste votes : si v est un vote 'oui', on incrémente la valeur associée à 'oui' dans le decompte des votes, sinon c'est la valeur associée à 'non' que l'on incrémente.
| 🐍 Code Python | |
|---|---|
1 2 3 4 5 | |
Écrire une fonction resultat qui renvoie la chaîne de caractères suivante :
Le {avis} l'emporte avec {pourcentage}% de votes !
où {avis} est l'avis majoritaire ("oui" ou "non") et {pourcentage} est le pourcentage de votes ayant exprimé cet avis. En cas d'égalité, votre fonction renverra la chaîne de caractères "Les deux avis sont à égalité".
| 🐍 Code Python | |
|---|---|
1 2 3 4 | |
Anniversaires
On dispose d'un dictionnaire qui associe à chaque prénom le numéro de son mois de naissance.
| 🐍 Code Python | |
|---|---|
1 | |
Que renvoie l'intruction naissance["Alvynne"] ?
Écrire une fonction anniversaire qui prend en argument un dictionnaire naissances et un prenom et qui renvoie numéro du mois d'anniversaire de prenom.
Si prenom n'est pas présent dans le dictionnaire naissance, alors on renverra -1.
| 🐍 Code Python | |
|---|---|
1 2 3 4 | |
Un professeur souhaite utiliser ce dictionnaire pour obtenir automatiquement la liste de tous les anniversaires du mois.
Quelles sont les valeurs successives prises par p lorsque l'on exécute l'intruction :
for p in naissances:
Compléter le code de la fonction anniversaires_du_mois ci-dessous. On utilisera l'instruction lst.append(elt) pour ajouter l'élément elt à la fin de la liste lst.
| 🐍 Code Python | |
|---|---|
1 2 3 4 5 6 7 8 | |
Écrire le code de la fonction plus_d_anniversaires qui prend en argument un dictionnaire naissances et qui renvoie le numéro du mois pendant lequel il y a le plus de naissances à célébrer. Vous adapterez pour cela l'algorithme de recherche du maximum.
| 🐍 Code Python | |
|---|---|
1 2 3 4 | |
Liste de dictionnaires
Un refuge pour animaux dispose de plusieurs enclos. Il stocke ces informations dans une liste de dictionnaires.
| 🐍 Code Python | |
|---|---|
1 2 3 4 5 6 | |
-
Quelle instruction python permet de renvoyer le numéro de l'enclos de Médor ?
-
Écrire une fonction
animaux_refugequi prend en argument une liste d'animauxet renvoie la liste des noms de tous les animaux du refuge, tout enclos confondus.⚙️ Résultatassert animaux_refuge(animaux) == ['Medor', 'Tom', 'Belle', 'Mirza'] -
Écrire une fonction
animaux_enclosqui prend en argument une liste d'animauxet unnumerod'enclos et renvoie la liste des noms de tous les animaux présents dans l'enclosnumero.⚙️ Résultatassert animaux_enclos(animaux, 5) == ['Medor', 'Mirza'] -
Écrire une fonction
informationsqui prend en argument une liste d'animaux, unnomd'animal, et qui renvoie le dictionnaire contenant toutes les informations relatives ànom.⚙️ Résultatassert informations(animaux, 'Medor') == {'nom': 'Medor', 'espece': 'chien', 'age': 5, 'enclos': 5}
Code Morse
Le code Morse international, est un code permettant de transmettre un texte à l’aide de séries d’impulsions courtes et longues.
Dans ce code, on représente la lettre 'A' par '.-' : pour transmettre la lettre 'A' on utilise une impulsion courte '.', puis une impulsion longue '-'.
| 🐍 Code Python | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | |
-
Répondre aux questions suivantes à l'aide des informations contenues dans le dictionnaire
code_morse.- Comment va-t-on envoyer le texte
'NSI'? -
On reçoit le message
'-... .--- .-.'. Pour faciliter le décodage, on a inséré le caractère' 'entre les suites de.et-qui correspondent à une lettre.À quel texte cela-correspond-t-il ? 2. Écrire une fonction
encodequi prend en argument unmessageécrit avec des caractères alphanumériques et qui renvoie la suite d'impulsions à envoyer en utilisant le code Morse.
On supposera que tous les caractères de
messagecorrespondent à des clés du dictionnaireMORSE. Afin de faciliter la lecture du code morse résultant, on prendra soin de séparer les codes morse de chaque lettre par un espace.🐍 Code Python 1 2 3
def encode(message): """ str -> str Renvoie le code morse correspondant au message """🐍 Code Python 1print(encode("SLTTS!"))⚙️ Résultat... .-.. - - ... -.-.-- - Comment va-t-on envoyer le texte
-
Dans cette question, on souhaite décoder une suite de
.et de-correspondant à un message reçu en morse.-
Écrire une fonction
morse_decodequi renvoie un dictionnaire dont :- les clés sont des séquences de
.et de-; - la valeur associé à la clé
kest le caractère alphanunérique correspondant.
🐍 Code Python 1 2 3
def morse_decode(): """ () -> {str: str} Renvoie le dictonnaire de décodage du code morse. """🐍 Code Python 1 2 3 4
MORSE_DEC = morse_decode() print(MORSE_DEC['...']) print(MORSE_DEC['.-..']) print(MORSE_DEC['-'])⚙️ RésultatS L T - les clés sont des séquences de
-
La fonction
decodeprend en argument une chaine de caractèresbipsconstituée uniquement de.et de-correspondant à des codes morses et renvoie le message correspondant. Pour cela :- pour chaque caractère
bdebips:- s'il s'agit d'un
.ou d'un-: alors on est en train de lire une séquence morse correspondant à un caractère. On ajoute ce caractère à la variablecode. - s'il s'agit du caractère
' ': alors on a finit de lire une séquence morse correspondant à un caractère. On utilise le dictionnaireMORSE_DECpour obtenir le caractère alphanumérique correspondant àcode, et on l'ajoute aumessage.
- s'il s'agit d'un
🐍 Code Python 1 2 3 4 5
def decode(bips): """ str -> str """ message = "" code = '' # À compléter🐍 Code Python 1print(decode("... .-.. - - ... -.-.-- "))⚙️ RésultatSLTTS! - pour chaque caractère
-