Sur les listes

Consignes

Le code Python utilisé pour définir vos fonctions doit obligatoirement se limiter à ce que l'on trouve dans le cours. Il est parfaitement interdit d'aller chercher des fonctions "magiques" ici ou là qui feront une partie du travail. Un tel code serait évalué par la note minimale. Savoir se servir de la documentation d'un langage, savoir utiliser les bibliothèques du langage sont des capacités à acquérir sur le long terme lorsqu'on apprend à programmer, mais ce n'est pas du tout l'objectif de ce début d'année: vous devez d'abord apprendre à maîtriser les instructions de base, à maîtriser le contenu du cours (ce qui est déjà un travail conséquent !)

Bien entendu, les fonctions de tests ne doivent pas renvoyer d'erreur d'assertion.

Et évidemment, il ne doit y avoir aucune erreur de syntaxe dans votre code !

Rappelons également que le code déjà écrit dans l'énoncé ne doit en aucun cas être modifié.

Vous penserez à ajouter les chaînes de documentation pour chaque fonction n'en ayant pas (sauf pour les fonctions de test, leur nom est préfixé par test et cela suffit à clarifier leur rôle).
N'oubliez pas de sauvegarder régulièrement votre travail ! Et de sauvegarder avant de quitter.

Objectifs

L'objectif (exercices 1 à 5) est ici de définir des fonctions prenant en paramètre une liste et renvoyant une sous-liste de cette liste (une sous-liste est une liste constituée de certains éléments de la liste initiale).

Toutes ces sous-listes devront être définies en compréhension.

Exercice 1

Question 1

Définir un corps possible pour la fonction plus_de_voyelles prenant en entrée une chaîne de caractères (un mot) et renvoyant en sortie True si cette chaîne contient plus de voyelles (strictement) que de consonnes (et False sinon).

Pour simplifier la suite, on pourra supposer que les mots utilisés en entrée pour la fonction sont tous écrits avec les lettres de l'alphabet, minuscules, sans accent.

RAPPEL. Ajoutez les chaînes de documentation pour chaque fonction n'en ayant pas (sauf pour les fonctions de test, leur nom est préfixé par test et cela suffit à clarifier leur rôle).

Question 2

On suppose disposer de listes de mots (écrits en minuscules sans accent). Par exemple:

Ecrire une fonction prenant en entrée une telle liste de mots liste_mots et renvoyant en sortie la sous-liste ne contenant que les mots de la liste d'entrée qui contiennent plus de voyelles que de consonnes.

RAPPEL. Les sous-listes seront définies en compréhension.

Exercice 2

Question 1

Ecrire une fonction prenant en paramètre une chaîne de caractères (constituée ici encore uniquement de minuscules de l'alphabet, sans accent) et renvoyant True si la chaîne ne contient que des lettres distinctes (et False sinon).

Question 2

Exercice 3

Rappel: il est important de découper les fonctions en "petites tâches", votre code tout au long de l'année devra s'attacher à cela...

Ecrire une fonction prenant en paramètre une liste de mots et renvoyant en sortie la sous-liste ne contenant que les mots de la liste initiale ne contenant pas la lettre 'e'. Attention de bien découper la tâche en plusieurs fonctions, de bien penser également à écrire les fonctions de tests adéquates, et de renseigner les chaînes de documentation.

Exercice 4

Question 1

Ecrire le corps de la fonction inferieur_aux_suivants ci-dessous.

Question 2

Ecrire le corps de la fonction filtre4 spécifiée par sa chaîne de documentation ci-dessous.

Exercice 5

Question 1

Ecrire un corps pour la fonction est_triée ci-dessous.

Question 2

Exercice 6

Dans cette question, vous créerez quelques listes en compréhension (sans création de fonction).

On dispose d'une liste films de tuples de la forme: (identifiant, nom de film, année de réalisation):

Remarque: ce que l'on appelle ici identifiant est simplement un numéro créé en créant la table, chaque numéro correspond à un et un seul film et permet donc d'identifier le film sans ambiguïté.

Lorsqu'on crée une base de données, on crée très souvent de tels identifiants car les attributs renseignés pour l'objet ne permettent souvent pas de le distinguer à coup sûr d'un autre (par exemple: deux films ont le même titre...).

La suite de ce commentaire, pour ceux qui continueront NSI, dans le cours de base de données de terminale.

Les tuples de la liste personnes : (identifiant, nom, prénom, année de naissance).

Les tuples de la liste réalisation sont des couples (identifiant du film, identifiant de la personne réalisateur) siginifiant que la personne identifiée a réalisé le film:

Les tuples de la liste acteurs sont des couples (identifiant d'un film, identifiant d'une personne), signifiant que la personne joue un rôle dans le film.

Question 1

Créer la liste des films (sous la forme: liste des couples (nom du film, année de réalisation) ) réalisés après l'an 2000.

Question 2

Créer la liste des acteurs (sous la forme (nom, prénom)) ayant joué dans un film nommé "Dune".

Question 3

Créer la liste des couples (nom du film, date de réalisation) dans lesquels l'acteur Ronny Cox a un rôle.

N'oubliez pas de sauvegarder régulièrement votre travail ! Et de sauvegarder avant de quitter.