Bonsoir tous le monde !
J'ai un souci, votre aide est la bienvenue. Le problème est la suivant: Je voulais écrire un programme python qui test si une liste de mot pris dans un alphabet est un code. Pour q'une liste de mot soit un code il faut remplir deux condition :
1) if faut que les élément de chaque mot de la liste appartiennent à l'alphabet;
2) aucun mot ne doit être le préfixe d'un autres dans la liste.
J'ai réussi a faire le petit 1)
voici le code source qui n'est pas très optimale mais pour débutant ça passe :
Voici quelques tests :Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 #pour stocker l'alphabet alphabet = "" alphabet1 = input("entrer l'alphabet :") alphabet = alphabet1 #le code est composé d'un ensemble de mot separer par un space code = input("entrer une serie de mot separer par un space : ") #on transforme l'ensemble de code en une liste nouveau_code = code.split() print(nouveau_code) drapeau = 1 #on declare un boolean pour test for i in nouveau_code: #on parcours toute la liste nouveau_code for j in i: #on parcours chaque element du mot de la liste if j not in alphabet: #on verifie est-ce que l'element n'appartient pas à l'alphabet drapeau = 0 #si oui on met drapeau à 0 if drapeau == 1: #si oui alors c'est un code print("Le mot {} est un code".format(nouveau_code)) else: #sinon ce n'est pas un code print("Le mot {} n'est un alphabet desolé !!! ".format(nouveau_code))
$ python3 alphabets.py
entrer l'alphabet :01
entrer une serie de mot separer par un space : 01011 100110 0110111
['01011', '100110', '0110111']
Le mot ['01011', '100110', '0110111'] est un code
deuxième teste
$ python3 alphabets.py
entrer l'alphabet :01
entrer une serie de mot separer par un space : 102 666 888
['102', '666', '888']
Le mot ['102', '666', '888'] n'est un alphabet désolé !!!
Mais la question petit 2) m'a vraiment tapé.
Merci d'avance pour votre aide !!!