Je débute en Python et j'ai besoin de votre aide :
Comme on le voit dans la capture le but est d'implémenter une classe qui permet de créer des listes d'entier ou de caractères afin d'en ajouter (sous forme de liste ou d'objet str ou int) et de le trier.
Il faut pouvoir créer cet objet et l'afficher sous forme de liste sans mentionner ses attributs dans la console (cf : print(l1)) mais je n'arrive pas à trouver la solution, voici mon code :
class SortedList:
def __init__(self, element):
self.list = []
if type(element) == "int" or type(element) == "str":
self.list.append(element)
if type(element) == "list":
for i in element:
self.list += [i]
self.list.sort()
def add(self, element):
if type(element) == "int" or type(element) == "str": self.list.append(element)
if type(element) == "list": for i in element: self.list += [i]
self.list.sort() return self.list
J'ai deux problèmes:
1) si l1 = SortedList([5, 2, 3, 1]) et que je print(l1.list), j'obtiens une liste vide
2) Au lieu de print l1.list j'aimerais print l1 tout court et afficher la liste résultante
Poste avec les balises code, là on perd l'indentation et c'est dur à lire.
Vu ton dernier extrait de code, je pense que si ta liste est vide, c'est juste que tu entres jamais dans les conditions if.
EDIT : La fonction type ne renvoie pas une chaine de caractères si ça peut t'aider.
- Edité par LoupSolitaire 14 août 2019 à 20:32:54
Blond, bouclé, toujours le sourire aux lèvres...
Problème de débutant avec les classes
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Blond, bouclé, toujours le sourire aux lèvres...