Petit problème d'algorithme
Bonjour, je suis débutant en langage python et je viens d'écrire ce petit code :
01 x = ["a", "b", "c", "d", "e"]
02 y = [ [ ] ]
03 i = 0
04 While i < len(x) - 1 :
05 if x[i] != y[i] :
06 y = y.append([])
07 i = i + 1
08 print(x)
09 print(y)
Vous l'aurez peut être compris, je veux que chaque fois que l'interpréteur trouve un élément dans la liste x, il ajoute une liste vide à la liste y. La ligne 5 pose problème - je n'arrive pas à trouver la bonne comparaison. Pouvez-vous m'aider s'il vous plaît? Merci d'avance pour votre réponse.
Petit problème de programmation
Merci à tous pour vos conseils :ccool:
Petit problème de programmation
Je corse un peu l'affaire ;) :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| class Nom_Prenom(object):
... def __init__(self):
x = [ ]
y = [ ]
i = 0
while i < len(x) - 1 :
if x[i] != y[i]:
y.append([ ])
i = i + 1
... def ajouterNom(self):
n = input("Entrez un nom : ")
if n in x:
print ("Attention! Ce nom existe deja.")
n = input("Entrez un nouveau nom : ")
x.append(n)
y.append([ ])
... def afficher(self):
print (x)
print (y)
>>>
>>>
>>> G = Nom_Prenom() |
Quelle doit être la suite des appels pour pouvoir tester l'algorithme?
Petit problème de programmation
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| class Nom_Relation(object):
... def __init__(self):
x = []
y = [[]] * len(x)
... def ajouterNom(self):
n = input("Entrez un nom : ")
if n in x:
print ("Attention! Ce nom existe deja.")
n = input("Entrez un nouveau nom : ")
x.append(n)
... def afficher(self):
print (x)
print (y)
>>>
>>>
>>> G = Nom_Prenom() |
Voilà j'ai fait comme vous m'avez conseillé (VinsS et Alex) en remplaçant la boucle :
Code:
1 2 3 4
| while i < len(x) - 1 :
if x[i] != y[i]:
y.append([ ])
i = i + 1 |
par :
Cela allège effectivement l'ensemble. Je suis peut être en train de m'emballer et je ferai mieux de commencer à la base et d'apprendre étape par étape mais pourriez-vous déjà me signaler les problèmes de l'algorithme et me montrer comment le tester. Ce sera au moins ça de gagné au fur et à mesure que j'avance. Merci
Petit problème de programmation
J'ai laissé une erreur à la ligne 16 :
Code:
>>> G = Nom_Prenom()
Logiquement ça devrait être :
Code:
>>> G = Nom_Relation()
Petit problème de programmation
Je confirme Dividee,
Code:
self.y = [[]] * len(x) # proposition de VinsS
ne fonctionne pas. J'ai un message d'erreur : global name 'x' is not defined
Donc x n'est pas défini et par contre si je mets :
Code:
self.y = [[]] * len(self.x)
j'ai le résultat suivant:
Code:
1 2 3 4 5 6 7 8 9 10
| >>> G = Nom_Relation()
>>> G.ajouterNom()
Entrez un nom : a
>>> G.ajouterNom()
Entrez un nom : b
>>> G.ajouterNom()
Entrez un nom : c
>>> G.afficher()
['a','b','c'] # La liste x a bien trois éléments
[] # La liste y n'a aucun élément |
Code:
self.y = [[] for _ in range(len(self.x))]
donne le même résultat.
comment faire alors pour que chaque élément de x soit représenté par une liste vide dans y?