Bonjour à tous !
J'ai un petit programme à réaliser dans le cadre d'un module en Python.
Je suis débutant dans ce langage, et je rencontre une difficulté que je n'arrive pas à surmonter.
Voilà l’énoncé du programme :
Voilà le programme actuellement :Ecrire un programme qui attend une liste L de chaines de caractères et une voyelle V et qui supprime de la liste L toutes les chaines contenant la voyelle V.
On entrera successivement :
- le nombre de valeurs de la liste,
- les valeurs de la liste,
- la voyelle V.
Puis le programme affichera la liste finale au format habituel.
On attend simplement l'instruction print (L)
J'obtient une erreur car ma boucle for dépasse la taille de la liste quand elle supprime un mot,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 #!/usr/bin/env python # -*- coding: utf-8 -*- # Variables Liste = [] NombreValeursListe = 0 # Début du programme print("=== SUPPRIMER LES MOTS CONTENANT UNE VOYELLE DONNEE ===\n\n") # L'utilisateur saisi le nombre d'élément que va contenir la liste NombreValeursListe = str (input("Entrer le nombre d'éléments dans la liste: ")) while not (NombreValeursListe.isdigit()): print("Entrer un chiffre !\n") NombreValeursListe = str (input("Entrer le nombre d'éléments dans la liste: ")) NombreValeursListe = int(NombreValeursListe) # On créer la liste de la taille voulue Liste = [0] * NombreValeursListe # L'utilisateur saisi les éléments de la liste for i in range(0,NombreValeursListe): print ("Entrer l'élément N°",i,":") Liste[i] = str (input()) # L'utilisateur saisi la voyelle Voyelle = str (input("Entrer la voyelle à retirer dans les éléments de la liste: ")) while not Voyelle in ("a","e","i","o","u","y"): print("On attend une voyelle") Voyelle = str (input("Entrer la voyelle à retirer dans les éléments de la liste: ")) # On traite la suppression des mots qui contiennent la voyelle for i in range(0,NombreValeursListe): mot = Liste[i] if Voyelle in mot: Liste.remove(mot) # On affiche la liste une fois traitée print(Liste).
ce qui est logique mais je ne sais pas comment corriger ce problème...
Merci d'avance pour votre aide !
Partager