• Aucun résultat trouvé

Listesetfonctions TD2-Itérablesetfonctions

N/A
N/A
Protected

Academic year: 2022

Partager "Listesetfonctions TD2-Itérablesetfonctions"

Copied!
3
0
0

Texte intégral

(1)

SHNU Programmation en Python 2019–2020 TD 2 - Itérables et fonctions

Pensez à utiliserreturnetbreakintelligemment dans les questions ci-dessous pour que vos fonctions et vos boucles se terminent plus rapidement.

Listes et fonctions

Exercice 1: Parité.

1. Écrivez une fonction prenant une liste d’entiers en paramètre et affichant chacun de ses éléments un par un suivi de'Pair's’il est pair et 'Impair'sinon. Par exemple:

1 >>> parite([1, 2, 4])

2 1 impair

3 2 pair

4 4 pair

2. Écrivez une fonction prenant une liste d’entiers en paramètre et affichant'Tous pairs'sitous ses éléments sont pairs, et'Pas tous pairs's’il y a au moins un nombre impair dedans. Par exemple:

1 >>> tous_pairs([1, 2, 4])

2 'Pas tous pairs'

Exercice 2: Renversement de liste.

Écrivez une fonction qui prend une liste en paramètre et la renversesans utiliser une autre liste, ni reversed(), ni list.reverse(). Voici ce que devra faire votre fonction sur un exemple:

1 >>> lst = [1, 2, 3, 4, 5]

2 >>> renverser(lst)

3 >>> lst

4 [5, 4, 3, 2, 1]

Exercice 3: Inclusion.

Écrivez une fonction prenant deux listesLetRen paramètres et renvoyantTruesitousles éléments de L sont dans R, et False sinon. On suppose que L ne contient pas de doublons. Vous pouvez utiliser in dans une boucle for, mais pas pour vérifier l’appartenance. Par exemple:

1 >>> inclusion([1, 2], [1, 2, 3])

2 True

3 >>> inclusion([1, 3], [2, 3, 4])

4 False

Exercice 4: Liste triée.

Pour les questions qui suivent, vous ne pouvez pas utilisersorted()nilist.sort().

1. Écrivez une fonction qui vérifie qu’une liste passée en paramètre est triée dans l’ordre croissant (on renvoie Truesi elle est triée,False sinon).

2. Écrivez une fonction qui vérifie qu’une liste passée en paramètre est triée dans l’ordredécrois- sant (on renvoie True si elle est triée, False sinon). Ne réutilisez pas votre réponse à la question précédente.

3. Écrivez une fonction qui prend une liste en paramètre et qui renvoie 1 si elle est triée dans l’ordre croissant, −1si elle est triée dans l’ordre décroissant, ou 0 sinon. Essayez d’écrire une fonction n’utilisant qu’une seule boucle et n’appelant pas d’autre fonction.

Exercice 5: Opérations ensemblistes sur des listes.

On veut écrire des fonctions qui permettent de réaliser des opérations sur les listes comme s’il s’agissait d’ensembles. Dans les questions ci-dessous, on suppose que les deux listes premiere et seconde données en paramètres aux fonctions ne contiennent pas de doublons. Vos fonctions ne peuvent modifier ni premiere niseconde. L’ordre des éléments n’est pas important.

Page 1 / 3

(2)

SHNU Programmation en Python 2019–2020 1. Écrivez une fonction renvoyant une nouvelle liste contenant les éléments de premiere et

seconde sans doublons. Voici un exemple d’utilisation:

1 >>> union([1, 2, 3], [2, 3, 4])

2 [1, 2, 3, 4]

2. Écrivez une fonction renvoyant une nouvelle liste contenant les éléments apparaissant dans premiereetseconde. Voici un exemple d’utilisation:

1 >>> intersection([1, 2, 3], [2, 3, 4])

2 [2, 3]

3. Écrivez une fonction renvoyant une nouvelle liste contenant les éléments n’apparaissant que danspremiereou que dansseconde. Voici un exemple d’utilisation:

1 >>> difference_symetrique([1, 2, 3], [2, 3, 4])

2 [1, 4]

Exercice 6: Génération de nombres premiers.

Pour rappel, un naturel n ≥ 2 est premier s’il possède exactement deux diviseurs. La liste des nombres premiers est infinie et commence par 2, 3, 5, 7, 11, 13, 17, ... . Lecrible d’Erathostène est une méthode qui génère tous les nombres premiers inférieurs ou égaux à un naturelndonné. Cette méthode procède en deux étapes:

1. on crée la liste de tous les nombres compris entre 2etn;

2. pour chaque nombre entre2 et√

n, on retire tous ses multiples à part le premier.

Écrivez une fonction se basant sur cette méthode pour renvoyer tous les nombres premiers inférieurs ou égaux à un naturelndonné. Par exemple:

1 >>> crible(19)

2 [2, 3, 5, 7, 11, 13, 17, 19]

Boucles while

Exercice 7: Échauffement.

Écrivez une fonction demandant un entiernà l’utilisateur et renvoyant cet entier, en lui demandant de recommencer tant quenn’est pas compris entre deux autres entiersaetbdonnés (a≤b). Pour simplifier, vous pouvez supposer que le transtypage fonctionnera.

Exercice 8: Somme de chiffres.

Écrivez une fonction qui renvoie la somme des chiffres d’un naturel qu’on lui passe en paramètre.

Vous ne pouvez pas utiliser le transtypage. Par exemple:

1 >>> somme(9650165489)

2 53 # = 9 + 6 + 5 + 0 + 1 + 6 + 5 + 4 + 8 + 9

Exercice 9: Manipulation de nombres.

1. Écrivez une fonction renvoyant la liste des diviseurs d’un naturel. Par exemple:

1 >>> diviseurs(12)

2 [1, 2, 3, 4, 6, 12]

2. Pour rappel, un natureln≥2estpremier s’il possède exactement deux diviseurs. Écrivez une fonction renvoyantTrue si le naturel passé en paramètre est premier, etFalse sinon.

Page 2 / 3

(3)

SHNU Programmation en Python 2019–2020 3. Lafactorisation première d’un natureln≥2est son expression en le produit de puissances de

nombres premiers. Par exemple, la factorisation première de 17 146 080 000 est 17 146 080 000 = 28∗37∗54∗72.

Écrivez une fonction renvoyant la factorisation première d’un naturel sous la forme d’une liste de tuples, dont le premier élément est un nombre premier et le second son exposant. Pour l’exemple ci-dessus, on aura:

1 >>> factorisation(17146080000)

2 [(2, 8), (3, 7), (5, 4), (7, 2)]

Page 3 / 3

Références

Documents relatifs

Lemaire Françoise Lebreton Jacques - La vie est belle à en crever Biographie Lépine Jean-François Sutto Janine : Vivre avec le destin Biographie Lescop Marguerite

d'où l'envie de faire plus s'est vite fait sentir : les groupes successifs ont alors emporté avec eux dans la cour les stocks de bouts de craie, pouvant ainsi

Dans les exercices qui suivent, vous pouvez supposer que tous les éléments d’une liste sont comparables, et que les types des données de deux listes différentes sont compatibles..

Écrivez une fonction renvoyant l’union de A et B sous la forme d’une troisième liste sans doublon.. Écrivez une fonction renvoyant l’intersection de A et B sous la forme

Écrivez une fonction récursive renvoyant True si la chaîne passée en paramètre est un palindrome, et False sinon (on suppose que tous les caractères sont des minuscules

Liste Cons(float tete, Liste queue) : Construit une nouvelle liste dont la valeur de la première cellule est tete et dont le suivant sera queue5. Il s’agit d’un insertion en tête

Jacques Lacarrière : Non, c'est souvent des livres qu'on m'envoie, ou quand je fais des comptes rendus dans les journaux, j'ai souvent eu les épreuves, comme ça, parfois, on m'en

Puis sur chaque mail de parent reçu, cliquer sur l’étoile à côté de l’adresse de l’expéditeur, on vous propose de l’ajouter au carnet d’adresse. Cliquer sur l’étoile