C13 : Exercices

C13.E1 : Lettre la plus présente dans un texte

1) Écrire une fonction occurrences(chaine:str)->dico qui prend une chaine de caractères en paramètre et renvoie un dictionnaire dont chaque clé est un caractère ou un signe de de ponctuation du texte (on exclura les espaces), et la valeur associée est le nombre d'apparition de ce caractère dans le texte.

2) Écrire une fonction occurrence_max(texte:str)->str qui prend un texte en paramètre et renvoie la lettre la plus présente dans le texte, ainsi que le nombre d'occurrences de cette lettre.

C13.E2 : Gestion d'un parc de vélos en libre accès

On souhaite créer un outil de gestion d'un ensemble de vélos en libre accès dans la ville de Villebicette.

Pour chaque vélo, on dispose des informations suivantes :

Les stations de Villebicette sont : Mairie, Canal, Vieux chateau et Rue longue.

Le code python suivant permet de créer une liste des vélos correspondant à ceux de Villebicette à une date donnée.

parc = []
parc.append({'id': 1, 'statut':'L', 'station': 'Mairie'})
parc.append({'id': 2, 'statut':'L', 'station': 'Mairie'})
parc.append({'id': 5, 'statut':'P', 'station': 'Mairie'})
parc.append({'id': 8, 'statut':'P', 'station': 'Mairie'})
parc.append({'id': 10, 'statut':'D', 'station': 'Mairie'})
parc.append({'id': 11, 'statut':'L', 'station': 'Mairie'})
parc.append({'id': 12, 'statut':'D', 'station': 'Mairie'})
parc.append({'id': 13, 'statut':'D', 'station': 'Gare'})
parc.append({'id': 16, 'statut':'P', 'station': 'Gare'})
parc.append({'id': 17, 'statut':'D', 'station': 'Gare'})
parc.append({'id': 18, 'statut':'D', 'station': 'Gare'})
parc.append({'id': 21, 'statut':'L', 'station': 'Gare'})
parc.append({'id': 22, 'statut':'D', 'station': 'Gare'})
parc.append({'id': 23, 'statut':'D', 'station': 'Gare'})
parc.append({'id': 25, 'statut':'D', 'station': 'Gare'})
parc.append({'id': 26, 'statut':'P', 'station': 'Grande place'})
parc.append({'id': 27, 'statut':'L', 'station': 'Grande place'})
parc.append({'id': 28, 'statut':'D', 'station': 'Grande place'})
parc.append({'id': 30, 'statut':'L', 'station': 'Grande place'})
parc.append({'id': 32, 'statut':'D', 'station': 'Grande place'})
parc.append({'id': 34, 'statut':'P', 'station': 'Grande place'})
parc.append({'id': 35, 'statut':'L', 'station': 'Grande place'})
parc.append({'id': 39, 'statut':'D', 'station': 'Musée'})
parc.append({'id': 42, 'statut':'D', 'station': 'Musée'})
parc.append({'id': 45, 'statut':'D', 'station': 'Musée'})
parc.append({'id': 48, 'statut':'P', 'station': 'Musée'})
parc.append({'id': 49, 'statut':'L', 'station': 'Musée'})
parc.append({'id': 50, 'statut':'D', 'station': 'Musée'})
parc.append({'id': 52, 'statut':'L', 'station': 'Musée'})
parc.append({'id': 53, 'statut':'L', 'station': 'Musée'})

1) Quel est le type utilisé pour sauvegarder les informations de chaque vélo ?

2) Écrire une fonction qui, à partir d'une liste de vélos passée en paramètre, renvoie le nombre de vélos en déplacement.

3) Écrire une fonction qui, à partir d'une liste de vélos passée en paramètre, renvoie la liste des id des vélos en panne.

4) Écrire une fonction qui, à partir d'un nom de station et d'une liste de vélos passés en paramètre, renvoie le nombre de vélos libre de la station.

5) Écrire une fonction qui, à partir d'une liste de vélos passée en paramètre, renvoie le nom de la station qui contient le moins de vélos disponibles

C13.E3 : Scrabble => Décompte des points d'un mot

Au Scrabble, chaque lettre est affectée d'un nombre de points.

Le total des point d'un mot se fait en additionnant les points de chaque lettre.

Compléter la fonction ci-dessous

points_lettres = {"A":1,"B":3,"C":3,"D":2,"E":1,"F":4,"G":2,"H":4,"I":1,"J":8,"K":10,"L":1,"M":2,"N":1,"O":1,"P":3,"Q":8,"R":1,"S":1,"T":1,"U":1,"V":4,"W":10,"X":10,"Y":10,"Z":10}

def points(mot):
    """
    Compte le nombre de points d'une chaine de caractères au jeu de Scrabble
    :param mot: une chaine de caractères composée de lettres de l'alphabet en majuscules
    :return: le nombre de points au Scrabble (un entier)
    >>> points("BONJOUR")
    16
    >>> points("ANTICONSTITUTIONNELLEMENT")
    28
    """
    pass