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 :

[débutant] Un petit coup de main ? boucle qui tourne à l'infini


Sujet :

Python

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2016
    Messages : 3
    Points : 1
    Points
    1
    Par défaut [débutant] Un petit coup de main ? boucle qui tourne à l'infini
    Bonjour à tous et à toute ,

    je viens vers vous un peu en dernier recours, cela fait 4h maintant que je suis sur un tp et force de constater que je suis un peu bloqué .
    Donc voila , je suis étudiant en première année de Licence Informatique et on as un tp à finir chez nous , le tp s'appelle Anagramme et on nous fait découvrir en entête de celui ci les méthodes split join et sort .

    http://www.fil.univ-lille1.fr/~L1S2A...ionnaires.html voici le lien du tp pour ceux qui voudrais le voir de leur propre yeux .

    Donc on nous demande gentiment de programmez une fonction sort qui s'appliquerais à une chaîne de caractère .

    >>> sort ('timoleon')
    'eilmnoot'

    Pour cela, vous pourrez utiliser avec profit la fonction de conversion list, la méthode sort des listes et la méthode join des chaînes.


    Donc j'ai suivi dans un premier temps les directives en utilisant list sort et join . Bon ici rien de très compliquer même pour un élève moyen comme moi ^^. je l'ai fait en 30 secondes.

    Nom : Sort.png
Affichages : 876
Taille : 11,3 Ko voici un screen de mon code .

    Et en fait je me suis dit , c'est idiot de programmer sort en utilisant sort. Du coup je me suis dit je vais faire du travail suplémentaire et essayer de programmer la même chose mais sans utiliser sort .
    Et la cela fait deux heures que je traîne dessus et la je suis bloqué, je ne comprends pas mon erreur pour moi tout est correct
    voila le screen avec les commentaire qui explique ma vision de voir les choses avec une précision sur l'endroit où cela coince .

    Nom : Sort sans Sort comentaire.png
Affichages : 652
Taille : 50,4 Ko
    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
     assert type(x)==str
        l= list (x) 
        L=[]   
        L+=l[0]
        i=0
        j=0   
        k=0
        while i<=len(l)-1:          
            if ord(l[i+1])>= ord(L[i]):
                L+=l[i+1]
                i+=1
                print("i=",i)
            else:
                while j<len(L):
                    if ord(l[i+1])< ord(L[j]):
                        k=j
                        L.insert(k,l[i+1])
                        j+=1
                    else:
                        j+=1
                        print("j=",j)
                i+=1
                print("i=",i)
        return "".join(L)
    par avance merci, je vais continuer à chercher en attendant ,

    Cordialement

    ps : jai changé le elif par else, et notre prof nous interdit d'utiliser break ^^

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Salut,

    Poste ton code entre des balises [code], là c'est illisible.

    ps : jai changé le elif par else, et notre prof nous interdit d'utiliser break ^^
    Il a voulu dire "Je ne veux pas que l'on fasse de break pendant le cours" à mon avis.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2016
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Non pour lui utiliser break est une très mauvaise manière de coder et il veut qu'on apprenne sans, il dit que si on veut sortir de la boucle ,à nous de bien coder pour en sortir quand on le désire .

    J'ai mis le code

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    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 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut,

    Citation Envoyé par OmegaTenjo Voir le message
    Non pour lui utiliser break est une très mauvaise manière de coder et il veut qu'on apprenne sans, il dit que si on veut sortir de la boucle ,à nous de bien coder pour en sortir quand on le désire
    Votre code n'est pas très lisible à cause des constructions:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    k = 0
    while k <...:
          ...
          k += 1
    C'est la raison des boucles "for":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    >>> def xsort(x):
    ...     assert isinstance(x, str)
    ...     items = list(x)
    ...     for i in range(len(items)):
    ...          for j in range(len(items)-1-i):
    ...              if items[j] > items[j+1]:
    ...                 items[j], items[j+1] = items[j+1], items[j]
    ...     return ''.join(items)
    ...
    >>> xsort('timoleon')
    'eilmnoot'
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2016
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Merci beaucoup, je n'ai pas encore acquis la logique du coup j'ai un peu de mal , j'ai l'impression que ca vient d'une autre planète , même votre code parais simple , mais même la j'ai du mal a le comprendre .

Discussions similaires

  1. [DEBUTANT] Besoin d'un petit coup de main
    Par rantanplan08 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 01/04/2006, 12h09
  2. UPDATE trop compliqué, besoin d'un petit coup de main ;)
    Par pwangen dans le forum Requêtes
    Réponses: 1
    Dernier message: 17/02/2006, 11h16
  3. Réponses: 11
    Dernier message: 26/11/2005, 13h00
  4. Un petit coup de main avec valgrind ?
    Par YéTeeh dans le forum Linux
    Réponses: 2
    Dernier message: 25/11/2005, 01h22
  5. Réponses: 3
    Dernier message: 28/02/2003, 17h06

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