IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Implémentation de liste à l'aide de liste chainée


Sujet :

Python

  1. #1
    Membre averti
    Homme Profil pro
    Expert sécurité informatique
    Inscrit en
    Janvier 2020
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert sécurité informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2020
    Messages : 16
    Par défaut Implémentation de liste à l'aide de liste chainée
    Bonjour j'aurais besoin d'aide pour faire la fonction supprime_tete(lst) qui doit renvoyer un tuple contenant comme 1erélément,l'élément supprimé,et comme second élément,la liste à laquelle on a supprimé le 1erélément
    Nom : image0.jpg
Affichages : 233
Taille : 1,72 Mo
    je n'y arrive pas du tout si vous pouvez m'aidez svp merci voici ce que j'ai fais pour l'instant qui n'est pas en rapport avec la fonction que je dois faire mais fais parties de l'exo
    Nom : image0.jpg
Affichages : 222
Taille : 1,27 Mo
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    def vide():
         return None
     
    def est_vide(lst):
        return lst==None
     
    def ajoute_texte(x,lst):
        return x, lst
     
    def supprime_tete(lst)

  2. #2
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 833
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 833
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par adamdu30 Voir le message
    j'aurais besoin d'aide pour faire la fonction supprime_tete(lst) qui doit renvoyer un tuple contenant comme 1erélément,l'élément supprimé,et comme second élément,la liste à laquelle on a supprimé le 1erélément
    Avant ça tu devrais d'abord vérifier la fonction "ajoute_tete()" qui, d'une part, ne se nomme pas "ajoute_texte()" (on sent d'ici ta concentration) et qui d'autre part, est censée ajouter l'élément en tête de liste et qui, dans ton code, ne fait que retourner ce qu'elle a reçu sans rien ajouter du tout à quoi que ce soit.
    Ok tu as fait quelque chose mais franchement, entre ce que tu as fait et rien, la différence reste infinitésimale.

    Mais pour ne pas que tu puisses dire qu'on ne t'a pas aidé, voici le code qui te permettra de tester tes 4 premières fonctions
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    n=vide()
    print("est vide:", est_vide(n))
    l=ajoute_tete(3, ajoute_tete(2, ajoute_tete(1, ajoute_tete(0, n))))
    print(l)
    l=ajoute_tete(4, l)
    print(l)
    print("est vide:", est_vide(l))
    while not est_vide(l):
    	(x, l)=supprime_tete(l)
    	print(x, l)
    print(l)
    print("est vide:", est_vide(l))

    PS: j'aime bien les types qui se proclament "expert truc" alors qu'ils sont encore en école
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  3. #3
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Salut,

    Si vous ne savez pas lire l'énoncé en français alors çà va pas être facile.

    On vous dit que la liste vide est constituée du seul élément None après vous avoir montré à quoi ressemble une liste non vide, on s'attend à ce que la fonction vide retourne un tuple avec None comme seul élément. Ce qui devrait ressembler à (None, ) plutôt qu'à None tout seul.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  4. #4
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 833
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 833
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    on s'attend à ce que la fonction vide retourne un tuple avec None comme seul élément. Ce qui devrait ressembler à (None, ) plutôt qu'à None tout seul.
    Euh là je ne suis pas d'accord. Enfin je suis d'accord avec ta logique mais l'énoncé montre un exemple contenant (3, None) qui semble être le résultat de ajoute_tete(3, vide()). Et c'est comme ça que ça ressort dans mon code qui a implémenté ce TP (@adamdu30 pour info 1 ligne par fonction).
    Si la liste vide était (None,), alors l'exemple montrerait (3, (None,)) et non (3, None).

    Ceci dit, ton exemple de liste vide à (None,) serait effectivement plus dans la continuité logique des autres exemples qui sont toujours sur le même schéma, à savoir (int, tuple) et ne provoquerait pas alors cette discontinuité finale.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  5. #5
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Salut,

    L'énoncé essaie de faire du Lisp avec Python. Il y aurait moins d’ambiguïté en prenant le tuple vide comme liste vide ne serait ce que pour avoir une longueur len(vide) qui soit calculable et nulle.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  6. #6
    Membre averti
    Homme Profil pro
    Expert sécurité informatique
    Inscrit en
    Janvier 2020
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert sécurité informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2020
    Messages : 16
    Par défaut
    comment fait-on pour modifier un message svp

  7. #7
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 062
    Par défaut
    Hello,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (x, l)=supprime_tete(l)


    Qu'est-ce que ces parenthèses dans tes variables unpackées ?

  8. #8
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 833
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 833
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par adamdu30 Voir le message
    comment fait-on pour modifier un message svp
    Tu ne peux modifier un message que pendant 48h. Ensuite, c'est fini.

    Citation Envoyé par fred1599 Voir le message
    Qu'est-ce que ces parenthèses dans tes variables unpackées ?
    Euh... pardon mais je ne pige pas la question. C'est les parenthèses de (x, l) dont tu parles ? En général c'est assez usité (j'irai même jusqu'à dire que c'est recommandé) d'expliciter les parenthèses quand on exprime un tuple => (a, b)=(1, 2) plutôt que a, b=1, 2...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  9. #9
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 062
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    Euh... pardon mais je ne pige pas la question. C'est les parenthèses de (x, l) dont tu parles ? En général c'est assez usité (j'irai même jusqu'à dire que c'est recommandé) d'expliciter les parenthèses quand on exprime un tuple => (a, b)=(1, 2) plutôt que a, b=1, 2...
    Ce qui est usité généralement c'est a, b = (1, 2).

    Après ça se fait, et syntaxiquement ça passe, c'est l'essentiel tu me diras, mais ça m'a un peu piqué les yeux quand je l'ai vu et perso, je le vois très rarement écrit de cette manière, peut-être pour ça aussi...

  10. #10
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 833
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 833
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par fred1599 Voir le message
    et perso, je le vois très rarement écrit de cette manière, peut-être pour ça aussi...
    Mouais. Déjà effectivement les parenthèses au =(1, 2) c'est effectivement presque obligatoire. D'une part pour être cohérent avec les autres types de données (=[1, 2] pour une liste, ={1, 2} pour un ensemble). Après le (a, b)= plutôt que a, b= sais pas trop quoi dire d'autre que "j'aime bien". Dans ma tête je continue à y voir une forme d'homogénéité dans l'écriture et j'aime bien l'homogénéité. Me semblait aussi, quand j'ai commencé Python, avoir vu dans sais plus quel tuto un exemple de permutation écrit (a, b)=(b, a) mais je n'arrive pas à remettre la main dessus...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  11. #11
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 062
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    Mouais. Déjà effectivement les parenthèses au =(1, 2) c'est effectivement presque obligatoire. D'une part pour être cohérent avec les autres types de données (=[1, 2] pour une liste, ={1, 2} pour un ensemble). Après le (a, b)= plutôt que a, b= sais pas trop quoi dire d'autre que "j'aime bien". Dans ma tête je continue à y voir une forme d'homogénéité dans l'écriture et j'aime bien l'homogénéité. Me semblait aussi, quand j'ai commencé Python, avoir vu dans sais plus quel tuto un exemple de permutation écrit (a, b)=(b, a) mais je n'arrive pas à remettre la main dessus...
    Pour les permutations tu avoueras qu'on voit souvent plus la version a, b = b, a que la version avec les parenthèses ?

    Pour le reste c'est un petit détail, le problème restant celui du PO, tu sais comme j'aime bien pinailler


Discussions similaires

  1. Debutant besoin Aide liste chainé
    Par flingue dans le forum Débuter
    Réponses: 7
    Dernier message: 29/12/2008, 17h00
  2. Réponses: 5
    Dernier message: 15/03/2008, 21h44
  3. aide pour structure et liste chainée
    Par monsieur77 dans le forum C
    Réponses: 8
    Dernier message: 20/11/2007, 17h25
  4. Réponses: 3
    Dernier message: 30/03/2007, 18h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo