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 :

Aide Numérisation Shadock


Sujet :

Python

  1. #21
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2017
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2017
    Messages : 29
    Par défaut
    Citation Envoyé par Iloyd Voir le message
    Bonsoir,

    Je n'arrive pas à comprendre comment le deuxième programme où vous affectez la fonction qui retourne digit pourrait correspondre au dernier programme avec la liste.
    C'est asser simple en fait : le terme ['GA','BU','ZO','MEU'] est une liste, et si tu préfère un "tableau", donc si tu écrit Liste_shadock=['GA','BU','ZO','MEU'] , et que tu test l'affichage de Liste_shadock[r] , avec r ton entier allant de 0 à 3. pour r=0 tu obtient 'GA', pour r=1 tu obtient 'BU', et ainsi de suite.

    En gros le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return ['GA','BU','ZO','MEU'][r]
    est égal à
    [CODE] Liste_shadock=['GA','BU','ZO','MEU']
    return Liste_shadock[r]/CODE]

    Voila, sinon il y a un bon cour sur les liste sur le site.

  2. #22
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 762
    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 762
    Par défaut
    Citation Envoyé par Iloyd Voir le message
    Je n'arrive pas à comprendre comment le deuxième programme où vous affectez la fonction qui retourne digit pourrait correspondre au dernier programme avec la liste.
    C'est le soucis des abstractions.
    Le cerveau a besoin de temps pour assimiler ce qu'est une liste, imaginer tout ce qu'on va bien pouvoir faire avec. Les listes (ou les itérables) sont des structures de données qui se marient bien avec les boucles (itérations)... Et comme vous n'êtes pas encore très à l'aise avec les boucles, donnez vous le temps de progresser, lisez des tutos, essayez de faire d'autres exercices,....

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

  3. #23
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2017
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2017
    Messages : 95
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    C'est le soucis des abstractions.
    Le cerveau a besoin de temps pour assimiler ce qu'est une liste, imaginer tout ce qu'on va bien pouvoir faire avec. Les listes (ou les itérables) sont des structures de données qui se marient bien avec les boucles (itérations)... Et comme vous n'êtes pas encore très à l'aise avec les boucles, donnez vous le temps de progresser, lisez des tutos, essayez de faire d'autres exercices,....

    - W
    Comme vous avez dit, je vais partir lire les sortes de notions disponible dans le site, afin d'en savoir un peu plus sur ces ''fonctions''.

    Mais j'aimerais savoir si je suis dans la bonne voie avec mon code s'il vous plait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    from math import*
     
    def digit(r):
     
        n = int(input())
        r = 0
        x = n
        liste_shadok = ['BU', 'GA', 'ZO', 'MEU']
     
        if r == 0:
            liste_shadok =
    C'est pas complet, mais j'ai repris les éléments qui m'ont été donné, et essayé de comprendre et de poursuivre ma démarche.

    Merci !!

  4. #24
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2017
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2017
    Messages : 95
    Par défaut
    Alors, j'ai refais un programme, mais je retombe sur les mêmes résultats que je trouve au début:

    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
    from math import*
     
    def ISNShadok():
     
        nombre = int(input())
        r = 0
        x = 1
        words = ["BU", "GA", "ZO", "MEU"]
     
        while x!= 0:
            x = nombre // 4
            r = nombre % 4
            nombre = x
            if r == 0:
                print(words[r], end = " ")
            if r == 1:
                print(words[r], end = " ")
            if r == 2:
                print(words[r], end = " ")
            if r == 3:
                print(words[r], end = " ")
                nombre = x
     
    ISNShadok()
    J'ai introduis les notions que j'ai acquis avec vous, mais je n'arrive pas à comprendre pourquoi pour 123, je n'obtiens pas les lettres demandées..

  5. #25
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 762
    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 762
    Par défaut
    Citation Envoyé par Iloyd Voir le message
    J'ai introduis les notions que j'ai acquis avec vous, mais je n'arrive pas à comprendre pourquoi pour 123, je n'obtiens pas les lettres demandées..
    En base 4, 123 s'écrit 1323.
    Si avec les digits shadocks çà doit retourner BU MEU ZO MEU c'est que BU correspond à 1, MEU à 3, ZO à 2 et le restant GA à 0. Donc avec words = ["BU", "GA", "ZO", "MEU"] vous avez mal traduit l'énoncé.
    Après il faut réfléchir à l'algo. 1323 s'obtient en récupérant les restes successifs de la division par 4.
    Le premier digit sera 3, puis 2, puis 3, et enfin 1: çà va s'afficher à l'envers car vous affichez les résultats au fur et à mesure. Pour construire la chaine de caractères "à l'envers", il faut utiliser les listes ou apprendre la concaténation des chaines de caractères i.e.
    Si on a:
    pour construire une nouvelle chaîne en y ajoutant des caractères devant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    >>> s = 'xxx' + s
    >>> s
    'xxxtoto'
    >>>
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  6. #26
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2017
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2017
    Messages : 95
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    En base 4, 123 s'écrit 1323.
    Si avec les digits shadocks çà doit retourner BU MEU ZO MEU c'est que BU correspond à 1, MEU à 3, ZO à 2 et le restant GA à 0. Donc avec words = ["BU", "GA", "ZO", "MEU"] vous avez mal traduit l'énoncé.
    Après il faut réfléchir à l'algo. 1323 s'obtient en récupérant les restes successifs de la division par 4.
    Le premier digit sera 3, puis 2, puis 3, et enfin 1: çà va s'afficher à l'envers car vous affichez les résultats au fur et à mesure. Pour construire la chaine de caractères "à l'envers", il faut utiliser les listes ou apprendre la concaténation des chaines de caractères i.e.[/CODE]

    - W
    Ah oui ! Merci de me l'avoir dis, c'était une faute d'inattention de ma part !

    J'ai vu que si l'on introduisait à la chaîne de caractère, elle s'inversait.
    Mais vu que j'ai plusieurs chaînes de caractères, il y a toujours possibilité de faire cela avec cette méthode ?

  7. #27
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 762
    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 762
    Par défaut
    Citation Envoyé par Iloyd Voir le message
    J'ai vu que si l'on introduisait à la chaîne de caractère, elle s'inversait.
    Mais vu que j'ai plusieurs chaînes de caractères, il y a toujours possibilité de faire cela avec cette méthode ?
    Je vous ai suggéré de jouer avec la concaténation.
    C'est largement suffisant car si vous venez de découvrir les listes c'est encore un peu trop frais pour aller dans les listes de listes.
    N'oubliez pas non plus que ces constructions de bases sont racontées dans tous les bons tutos. Vous gagneriez du temps à les consulter car ils sont pleins de bons exemples qui pourront vous inspirer par la suite (et plein d'explications qu'on ne va pas rabâcher dans un forum).

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

  8. #28
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2017
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2017
    Messages : 95
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Je vous ai suggéré de jouer avec la concaténation.


    - W
    Bonsoir,

    Mais le problème est que, sa pourrait aller si je n'aurais eu qu'un seul traitement de texte dans mon programme.
    Le problème est que je n'arrive pas à trouver la concaténation parfaite pour inverser l'ensemble du résultat..

  9. #29
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 762
    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 762
    Par défaut
    Citation Envoyé par Iloyd Voir le message
    Le problème est que je n'arrive pas à trouver la concaténation parfaite pour inverser l'ensemble du résultat..
    Avec la concaténation, il n'y a pas à inverser le résultat: il se construit dans l'ordre...
    De toutes façons, si vous ne montrez pas un peu ce que vous essayez de faire, on ne va pas pouvoir vous aider.

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

  10. #30
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2017
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2017
    Messages : 95
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Avec la concaténation, il n'y a pas à inverser le résultat: il se construit dans l'ordre...
    De toutes façons, si vous ne montrez pas un peu ce que vous essayez de faire, on ne va pas pouvoir vous aider.

    - W
    Bonjour,

    Alors voici mon programme :
    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
    25
    from math import*
     
    def ISNShadok():
     
        nombre = int(input())
        r = 0
        x = 1
        words = ['GA', 'BU', 'ZO', 'MEU']
     
        while x!= 0:
     
            x = nombre // 4
            r = nombre % 4
            nombre = x
     
            if r == 0:
                print(words[r], end = " ")
            if r == 1:
                print(words[r], end = " ")
            if r == 2:
                print(words[r], end = " ")
            if r == 3:
                print(words[r], end = " ")
     
    ISNShadok()
    J'obtiens le résultat suivant : MEU ZO MEU BU, mais comme je vous l'ai dis précédemment, je veux que le résultat final soit : BU MEU ZO MEU.

    J'ai tenté de mettre des listes, tel que : reversed avec les prints, .reverse avec ma liste, mais rien ni fait, je n'arrive pas à trouver le bon emplacement.
    Ce qui me déstabilise, c'est le faite que j'ai plusieurs print au lieu qu'un seul, et à cause de ça je n'arrive pas à savoir à partir d'où je dois inverser la liste avec de pouvoir obtenir le résultat estomper.

    J'ai regardé les notions dont j'avais besoin, mais je n'arrive pas à les introduire dans mon programme.

  11. #31
    Membre Expert

    Homme Profil pro
    Ingénieur calcul scientifique
    Inscrit en
    Mars 2013
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur calcul scientifique

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 229
    Par défaut
    Normal

    Lorsque tu fais une décomposition, dans n'importe quelle base, tu fais des divisions euclidiennes successives.
    Tu traites donc d'abord le chiffre des unités, puis celui des dizaines, puis celui des centaine et enfin celui de milliers.

    Donc si tu affiches ca dans l'ordre dans lequel c'est calculé, c'est normal que ce soit à l'envers !
    Avant de faire tout les "ifs" fait print(r) tu verras.
    Est-ce que ca affiche 1323 comme tu voudrais ou bien plutot 3231 ?

    Du coup il faut que tu fasse en 2 étapes.
    D'abord tu transformes le nombre en base 4 (tu peux stocker le résultat dans une liste par exemple). C'est là que tu vas devoir gérer l'ordre. Affiche le résultat pour être sûr. Ensuite tu fais la traduction.

  12. #32
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 762
    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 762
    Par défaut
    Citation Envoyé par Iloyd Voir le message
    J'obtiens le résultat suivant : MEU ZO MEU BU, mais comme je vous l'ai dis précédemment, je veux que le résultat final soit : BU MEU ZO MEU.
    J'ai essayé de vous expliquer comment construire cette chaîne de caractère là par concaténation dans cette réponse.

    Citation Envoyé par Iloyd Voir le message
    J'ai tenté de mettre des listes, tel que : reversed avec les prints, .reverse avec ma liste, mais rien ni fait, je n'arrive pas à trouver le bon emplacement.
    Que ce soit construire une chaîne de caractère dans l'ordre ou une liste à inverser ensuite, il n'y a aucune de trace de ce que vous avez essayé de faire dans votre code...
    Dans les deux cas, l'affichage du résultat se fera à la sortie de la boucle i.e. vous devez supprimer les "print" intermédiaires.

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

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Aide pour Projet Numérisation
    Par noizecore dans le forum Windows
    Réponses: 4
    Dernier message: 17/03/2011, 14h19
  2. Ajouter une aide
    Par Mailgifson dans le forum C++Builder
    Réponses: 5
    Dernier message: 12/06/2002, 13h32
  3. Besoin d'aide pour l'I.A. d'un puissance 4
    Par Anonymous dans le forum C
    Réponses: 2
    Dernier message: 25/04/2002, 17h05
  4. Une petite aide pour les API ?
    Par Yop dans le forum Windows
    Réponses: 2
    Dernier message: 04/04/2002, 21h45

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