Question 1 - Écrire un dictionnaire mois
dont les clés sont des chiffres entre 1 et 12 et les valeurs correspondent au mois associé.
mois =
Question 2 - Écrire une fonction recupere_mois
. Cette fonction prend prend en paramètre un nombre entier entre 1 et 12. Elle retourne le mois associé. Dans cette fonction :
mois
créé précédemment.def recupere_mois(nombre:int) -> str:
'''
>>> recupere_mois(1)
'Janvier'
>>> recupere_mois(8)
'Août'
'''
return
Question 3 - Écrire un dictionnaire jour
dont les clés sont des chiffres entre 1 et 7 et les valeurs correspondent au jour associé.
jours =
Question 4 - Écrire une fonction recupere_jour
. Cette fonction prend en paramètre un nombre entier entre 1 et 7. Elle retourne le jour associé. Dans cette fonction :
jours
créé précédemment.def recupere_jour(nombre:int) -> str:
'''
>>> recupere_jour(1)
'Lundi'
>>> recupere_jour(4)
'Jeudi'
'''
return
Dans cet exercice, un vendeur utilise un dictionnaire pour gérer les prix au kilo des différents fruits et légumes de son magasin. On crée donc un dictionnaire dont les clés sont les produits et les valeurs sont les prix au kilo.
stock = {'pomme':1.5, 'fraise':1.3, 'poire':1.15, 'banane':2.6, 'framboise':3.1}
Question 1 - Écrire l'instruction permettant de récupérer le prix des pommes depuis le dictionnaire stock
.
Question 2 - Écrire les instructions permettant d'ajouter les fruits suivants dans le dictionnaire stock
:
Question 3 - Écrire l'instruction permettant de récupérer la taille du dictionnaire stock
.
Question 4 - Écrire les instructions permettant d'afficher tous les articles du dictionnaire stock
.
Question 5 - Écrire les instructions permettant d'afficher le dictionnaire stock
sous la forme suivante :
Article n°1 : pomme -> 1.5 €/kg
Article n°2 : fraise -> 1.3 €/kg
Question 5 - Écrire un fonction augmentation
. Cette fonction prend en paramètre le dictionnaire stock
et un pourcentage sous la forme d'un entier. Elle augmente de x% les prix de chaque article du dictionnaire stock
.
def augmentation(stock:dict, pourcentage:int) -> None:
pass
Les clients du magasin peuvent réaliser des commandes en ligne. Une commande d'un client est représentée sous la forme d'un dictionnaire dont les clés sont les produits et les valeurs sont la quantité commandée.
commande_1 = {'pomme':4, 'poire':12}
Question 1 - Écrire une fonction nombre_produits
. Elle prend en paramètre une commande sous la forme d'un dictionnaire. Cette fonction retourne le nombre total de produits de la commande.
def nombre_produits(commande:dict) -> int:
return
Question 2 - Écrire une fonction somme_depensee
. Elle prend en paramètre un dictionnaire stock
et un dictionnaire commande
. Cette fonction retourne la somme totale dépensée par le client en fonction de sa commande.
def somme_depensee(stock:dict, commande:dict) -> int:
return
Question 1 - Écrire une fonction occurrence_lettre
. Elle prend en paramètre une chaîne de caractères et retourne un dictionnaire dont les clés sont les lettres du mot et les valeurs sont le nombre d'occurrences de la lettre dans le mot.
Voici l'algorithme à suivre :
def occurrence_lettre(mot:str) -> dict:
'''
>>> occurrence_lettre('bonjour')
{'b':1, 'o':2, 'n':1, 'j':1, 'u':1, 'r':1}
>>> occurrence_lettre('toto')
{'t':2, 'o':2}
'''
return
Question 2 - Écrire une fonction occurrence_mot
. Elle en paramètre une chaîne de caractères et retourne un dictionnaire dont les clés sont les mots de la phrase et les valeurs sont le nombre d'occurrences du mot dans la phrase.
Pour vous aider, vous pouvez utiliser la méthode split
permettant de découper une phrase.
>>> phrase = "bonjour le monde"
>>> phrase.split(" ")
['bonjour', 'le', 'monde']
def occurrence_mot(phrase:str) -> dict :
'''
>>> occurrence_mot('bonjour le monde')
{'bonjour':1, 'le':1, 'monde':1}
>>> occurrence_mot('la lu lo lu lo')
{'la':1, 'lu':2, 'lo':2}
'''
return
Pour gérer des notes, on utilise un dictionnaire dont chaque clé sera le nom d'une matière et la valeur une liste des notes obtenues dans cette matière.
notes = {'maths':[18, 2, 12], 'français':[14,19,17], 'svt':[2,8,12,11]}
Question 1 - Écrire une fonction ajouter_note
. Elle prend en paramètre un dictionnaire de notes, une matière et une note. Cette fonction ajoute une nouvelle note dans la bonne matière du dictionnaire.
Remarques :
def ajouter_note(dico_notes:dict, matiere:str, note:int) -> None:
return
Question 2 - Écrire la fonction moyenne_matiere
. Elle prend en paramètre un dictionnaire de notes et une chaîne de caractère représentant une matière. Cette fonction retourne la moyenne des notes dans la matière. Toutes les notes ont le même coefficient.
def moyenne_matiere(dico_notes:dict, matiere:str) -> float :
return
Question 3 - Écrire une fonction moyenne_generale
. Elle prend en paramètre un dictionnaire de notes et retourne la moyenne générale de l'ensemble des matières du dictionnaire.
def moyenne_generale(dico_notes:dict) -> float :
return
Question 4 - Écrire une fonction moyenne_generale_ponderee
. Elle prend en paramètre un dictionnaire de notes et un dictionnaire dont les clés sont les matières et les valeurs sont des coefficients. Cette fonction retourne la moyenne générale pondérée de l'ensemble des notes selon le coefficient de chaque matière.
dico_notes = {'maths':[18,2, 12,], 'français':[14,19,17], 'svt':[2,8,12,11]}
dico_coef = {'maths':3, 'français':2, 'svt':1}
def moyenne_generale_ponderee(dico_notes:dict, dico_coef:dict) -> float:
return
Dans cet exercice, on stocke les résultats d'un QCM dans un dictionnaire nommé reponses_correctes
.
reponses_correctes = {'Q1':'A', "Q2":"C", "Q3":"B", "Q4":"D", "Q5":"A"}
Les réponses d'un élève sont également présentées sous la forme d'un dictionnaire. Si l'élève n'a pas répondu à une question, la clé liée à cette question n'est pas présente dans le dictionnaire.
reponses_eleve = {'Q1':'A', "Q3":"B", "Q4":"A", "Q5":"D"}
Question 1 - Écrire une fonction points
. Elle prend en paramètre les deux dictionnaires et retourne le nombre de points obtenu par l'élève. Chaque bonne réponse apporte 2 points et une mauvaise réponse ne retire pas de points.
def points(reponses_correctes:dict, reponses_eleve:dict) -> int:
return
Dans cet exercice, on s'intéresse au fonctionnement du jeu « Le Scrabble ».
Pour cela, vous devez télécharger le fichier suivant qui contient l'ensemble des mots autorisés au Scrabble.
La fonction ci-dessous permet de générer la liste de la totalité des mots acceptés dans le jeu à l'aide du fichier scrabble.txt
.
def generer_liste_mot_scrabble():
fichier = open("scrabble.txt")
liste_mots = []
for ligne in fichier:
mot=""
for i in range(len(ligne)):
if ligne[i]!="\n":
mot=mot+ligne[i]
liste_mots.append(mot)
return liste_mots
Question 1 - Indiquer l'instruction permettant de connaitre le nombre de mots de la liste liste_mots
.
Question 2 - Écrire une fonction mot_est_autorise
. Elle prend en paramètre un mot en lettre majuscule et retourne True
si le mot est autorisé au Scrabble et False
si le mot n'est pas autorisé.
def mot_est_autorise(mot:str) -> bool:
return
Dans le jeu du Scrabble, chaque lettre est associée à un nombre de points. Plus la lettre est rare, plus elle vaut des points. La répartition des points est donc :
A, E, I, L, O, R, S, T, U
: 1 pointC, G, M, N
: 2 pointsB, D, P
: 3 pointsF, H, V
: 4 pointsJ, Q
: 8 pointsK, W, X, Y, Z
: 10 pointsQuestion 3 - Écrire un dictionnaire points_lettres
permettant de stocker les lettres et les points associés.
points_lettres =
Question 4 - Écrire une fonction score_mot
qui prend en paramètre le dictionnaire des points associés aux lettres et un mot autorisé du Scrabble. Cette fonction retourne le nombre de points du mot.
def score_mot(points_lettres:dict, mot:str) -> int:
return
Pour essayer les fonctions suivantes, on pourra travailler sur une liste de mot plus petite, composée de 1000 choisir aléatoirement.
NOMBRE_MOTS = 100
l2 = list(set([random.choice(l) for _ in range(NOMBRE_MOTS)]))
print(l2)
Question 5 - Écrire une fonction dico_mot_score
. Elle prend en paramètre le dictionnaire des points associés aux lettres et une liste de mots autorisés au Scrabble. Cette fonction retourne un nouveau dictionnaire dont les clés sont les mots de la liste et les valeurs sont les scores des mots au Scrabble.
def dico_mot_score(points_lettres:dict, liste_mots:list ) -> dict:
return
Question 6 - Écrire une fonction liste_mot_score_sup_30
. Elle prend en paramètre un dictionnaire de mots associé à leur score. Cette fonction retourne la liste des mots avec un score supérieur à 30.
def liste_mot_score_sup_30(dico_mot_score:dict) -> list:
return
Question 7 - Écrire une fonction liste_mots_max_points
. Elle prend en paramètre un dictionnaire de mots associé à leur score et un entier n
. Cette fonction retourne une liste avec les n
mots ayant le score le plus élevé.
def listes_mot_max_points(dico_mot_score:dict, n:int) -> list :
return
On représente le code morse à l'aide d'un dictionnaire. On ne s'intéresse qu'aux lettres en majuscules non accentuées et le symbole espace (convertit par le symbole « / »).
morse = {' ': '/', 'E': '°', 'I': '°°', 'S': '°°°', 'H': '°°°°', 'V': '°°°-', 'U': '°°-', 'F': '°°-°',
'A': '°-', 'R': '°-°', 'L': '°-°°', 'W': '°--', 'P': '°--°', 'J': '°---', 'T': '-', 'N': '-°', 'D': '-°°',
'B': '-°°°', 'X': '-°°-', 'K': '-°-', 'C': '-°-°', 'Y': '-°--', 'M': '--', 'G': '--°', 'Z': '--°°',
'Q': '--°-', 'O': '---'}
Question 1 - Écrire une fonction text_to_morse
. Elle prend en paramètre un dictionnaire et une chaine de caractères. Elle retourne une chaine de caractères représentant la traduction du texte en alphabet Morse.
Question 2 - Écrire une fonction morse_to_text
. Elle prend en paramètre un dictionnaire et une chaine de caractères morse. Elle retourne une chaine de caractères représentant la traduction du texte en français.
Question 3 - Tester les fonctions avec différentes phrases.
Dans cet exercice, on souhaite gérer un ensemble de contacts dans un annuaire.
nom
, prenom
, telephone
, ville
.Question 1 - Écrire une fonction creer_contact
. Elle Cette fonction prend en paramètre un nom, un prénom, un numéro de téléphone et une ville sous la forme d'une chaine de caractères. Elle retourne un dictionnaire représentant un contact.
def creer_contact(nom:str, prenom:str, telephone:str, ville:str) -> dict :
return
Question 2 - Écrire une fonction modifier_nom
.Elle prend en paramètre un contact sous la forme d'un dictionnaire et un nouveau nom sous la forme d'une chaine de caractères. Elle modifie le nom du contact avec la nouvelle valeur passée en paramètre. La fonction de renvoi rien.
def modifier_nom(contact:dict, nom:str) -> None :
pass
Question 3 - Sur le même principe que la question précédente, écrire la fonction modifier_prenom
, modifier_telephone
et modifier_ville
.
Question 4 - Écrire la fonction pareil
. Elle prend en paramètre deux dictionnaires représentant un contact. Elle retourne True
si le contenu des deux dictionnaires des identiques, False
sinon.
def pareil(contact1:dict, contact2:dict) -> bool:
return
Pour la suite, l'annuaire est représenté sous la forme d'une liste de dictionnaires.
Question 5 - Écrire la fonction ajouter_contact
. Elle prend en paramètre la liste représentant un annuaire et un contact sous la forme d'un dictionnaire. Cette fonction ajoute un nouveau contact dans l'annuaire. Elle ne renvoie rien.
def ajouter_contact(annuaire:list, contact:dict) -> None:
pass
Question 6 - Écrire la fonction supprimer_contact
. Elle prend en paramètre la liste représentant un annuaire et un contact sous la forme d'un dictionnaire. Cette fonction supprime le contact dans l'annuaire. Elle ne renvoie rien.
def supprimer_contact(annuaire:list, contact:dict) -> None:
pass
Question 7 - Écrire la fonction contient
. Elle prend en paramètre la liste représentant un annuaire et un contact sous la forme d'un dictionnaire. Cette fonction retourne True
si le contact est déjà présent dans l'annuaire, False
sinon.
def contient(annuaire:list, contact:dict) -> None:
pass
Question 8 - Écire la fonction filter_prenom
. Elle prend en paramètre liste représentant un annuaire et un prénom sous la forme d'une chaine de caractère. La fonction retourne la liste des contacts ayant le nom passé en paramètre.
def filtrer_prenom(annuaire:list, prenom:str) -> list:
return
Question 9 - Écire la fonction filtrer
. Elle prend en paramètre une liste représentant un annuaire, une clé du dictionnaire d'un contact et une valeur sous la forme d'une chaine de caractère. La fonction retourne la liste des contacts ayant la valeur de la clé passée en paramètre.
Par exemple :
filtrer(annuaire, 'ville', 'Lille')
renvoie la liste des contacts habitant à Lille.filtrer(annuaire, 'prenom', 'Paul')
renvoie la liste des contacts se prénomant Paul.def filtrer(annuaire:list, cle:str, :str) -> list:
return
Question 10 - Écrire la fonction ouvrir
. Cette fonction affiche un menu avec les options pour afficher, modifier, supprimer des contacts.
Question 11 - Ajouter une option dans le menu pour exporter l'annuaire dans un fichier csv.