Partage
  • Partager sur Facebook
  • Partager sur Twitter

Besoin d'aide pour un code python.

aide pour écriture d'un programe python.

Sujet résolu
    28 février 2011 à 8:00:11

    Bonjour, j'ai un problème, je ne sais pas comment faire.

    Voici mes variables :


    a,b,c,d="a""b""c""d"
    A,B,C,D="A""B""C""D"
    a1,a2,a3,a4="0""1""2""3"
    
    Global=[a,b,c,d,
            A,B,C,D,
            a1,a2,a3,a4]
    Test=[]
    



    Donc, ce que je veux dans ce code, c'est de prendre les valeurs de Global et de remplir Test pour que ça donne ceci :


    >>>a
    >>>a
    >>>a
    >>>a
    <16 a un en dessous de l'autre>
    >>>b
    >>>b
    >>>b
    >>>b
    <16 b un en dessous de l'autre>
    ...



    Par la suite j'aimerais que chacune des variables de Test peuvent se coller aux variables de Global :


    >>>aa
    >>>ab
    >>>ac
    >>>ad
    ...
    >>>ba
    >>>bb
    >>>bc
    >>>bd
    ...
    



    Et puis ça fait une coupe d'heures que je m'essaye, mais je n'y arrive pas... Donc quelqu'un peu-t-il m'aider? Je commence en python donc aller si mollo :P.
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      28 février 2011 à 10:08:46

      Premièrement faut changer de titre

      Puis lire le tuto du site pour avoir quelques bases, car quand je vois

      a,b,c,d="a""b""c""d"
      A,B,C,D="A""B""C""D"
      a1,a2,a3,a4="1""2""3""4"
      


      oufff....
      • Partager sur Facebook
      • Partager sur Twitter
        28 février 2011 à 10:08:46

        Le message qui suit est une réponse automatique activée par un modérateur.
        Les réponses automatiques permettent d'éviter aux modérateurs d'avoir à répéter de nombreuses fois la même chose, et donc de leur faire gagner beaucoup de temps.
        Nous sommes néanmoins ouverts et si vous avez une question ou une remarque, n'hésitez pas à contacter le modérateur en question par MP.


        Veuillez modifier le titre du sujet


        Bonjour,

        Ce sujet a un titre qui ne décrit pas correctement le sujet, ou il est écrit en majuscules.

        La présentation de votre message étant néanmoins correcte, nous ne fermons pas le sujet, mais vous êtes invité(e) à modifier son titre en éditant votre premier message.

        Cette modification doit être faite dans les plus brefs délais, sans quoi nous serons dans l’obligation de clore le sujet .


        Voici quelques correspondances pour vous aider à choisir au mieux votre titre :




        Comment fait-on pour éditer un titre ?

        Si vous êtes l'auteur du topic, vous pourrez uniquement le changer en éditant le premier post du topic à l'aide de l'icône Image utilisateur.



        Merci de votre compréhension :)
        Les modérateurs.
        • Partager sur Facebook
        • Partager sur Twitter
        Zeste de Savoir, le site qui en a dans le citron !
          28 février 2011 à 16:13:32

          est ce que ses mieux ?

          --------------------------------------------------------
          Pour le problème et bien j'ai fait ceci:

          def Affiche(G,T):
              for x in G:
                  i=0
                  while i<=16:
                      T[i]=x
                      i+=1
          
          Affiche(Global,Test)
          



          Mais ça ne marche pas, ça me dit (dans mon IDE PyScripter):


          Traceback (most recent call last):
          File "C:\Users\****\Desktop\module1.py", line 40, in <module>
          Affiche(Global,Test)
          File "C:\Users\****\Desktop\module1.py", line 37, in Affiche
          T[i]=x
          IndexError: list assignment index out of range


          Comment ça se fait que l'une des variables dans T[i]=x est out of range ??? Aussi le problème ses que je ne croit pas que cette fonction va m'apporter vraiment ce que je veux...
          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            28 février 2011 à 18:25:45

            En gros tu veux faire une copie de Global dans ta liste T ?

            • Partager sur Facebook
            • Partager sur Twitter
              28 février 2011 à 18:38:24

              Et bien oui et non...

              Je veux faire une copie que les 16 premières case de Test devienne la première de Global... et que la 2iem case de Test soit les 16 autres case de Global... Ça c'est mon but.

              Par la suite je ne sais pas vraiment comment mit prendre... mais j'aimerais que les 16 premières case de Test prennent les valeurs une à la suite de l'autre des valeurs dans Global... soit :


              aa
              ab
              ac
              ad
              aA
              ...



              Et que quand ça change de caractère dans Test, ça donne comme ce si.


              ...
              a8
              a9
              ba
              bb
              bc
              ...



              Est ce que c'est plus claire? :p
              ----------------------------------------------
              edit:

              Si vous voulez en plus simple encore... je veux pouvoir écrire mon code qui va pouvoir me donner toutes les valeurs possibles des variables dit plus haut à une limite de 4 nombres consécutifs...soit 65 536 valeurs:

              16

              16*16

              16*16*16

              16*16*16*16

              16 + (16*16) + (16*16*16) + (16*16*16*16) = 65 536


              Et j'aimerais classer le tous en ordre... genre:

              a
              b
              c
              d
              A
              B
              C
              D
              0
              1
              2
              3
              aa
              ab
              ac
              ad
              aA
              aB
              ..
              ba
              bb
              bc
              bd
              .......


              c'est mieux ?


              • Partager sur Facebook
              • Partager sur Twitter
                1 mars 2011 à 23:57:06

                Donc peronnes ne veux m'aider ou quoi ???... :)
                • Partager sur Facebook
                • Partager sur Twitter
                Anonyme
                  2 mars 2011 à 0:50:45

                  C'est ce résultat là que tu veux?

                  ('a', 'a')
                  ('a', 'b')
                  ('a', 'c')
                  ('a', 'd')
                  ('a', 'A')
                  ('a', 'B')
                  ('a', 'C')
                  ('a', 'D')
                  ('a', '1')
                  ('a', '2')
                  ('a', '3')
                  ('a', '4')
                  ('b', 'a')
                  ('b', 'b')
                  ('b', 'c')
                  ('b', 'd')
                  ('b', 'A')
                  ('b', 'B')
                  ('b', 'C')
                  ('b', 'D')
                  ('b', '1')
                  ('b', '2')
                  ('b', '3')
                  ('b', '4')
                  ('c', 'a')
                  ('c', 'b')
                  ('c', 'c')
                  ('c', 'd')
                  ('c', 'A')
                  ('c', 'B')
                  ('c', 'C')
                  ('c', 'D')
                  ('c', '1')
                  ('c', '2')
                  ('c', '3')
                  ('c', '4')
                  ('d', 'a')
                  ('d', 'b')
                  ('d', 'c')
                  ('d', 'd')
                  ('d', 'A')
                  ('d', 'B')
                  ('d', 'C')
                  ('d', 'D')
                  ('d', '1')
                  ('d', '2')
                  ('d', '3')
                  ('d', '4')
                  ('A', 'a')
                  ('A', 'b')
                  ('A', 'c')
                  ('A', 'd')
                  ('A', 'A')
                  ('A', 'B')
                  ('A', 'C')
                  ('A', 'D')
                  ('A', '1')
                  ('A', '2')
                  ('A', '3')
                  ('A', '4')
                  ('B', 'a')
                  ('B', 'b')
                  ('B', 'c')
                  ('B', 'd')
                  ('B', 'A')
                  ('B', 'B')
                  ('B', 'C')
                  ('B', 'D')
                  ('B', '1')
                  ('B', '2')
                  ('B', '3')
                  ('B', '4')
                  ('C', 'a')
                  ('C', 'b')
                  ('C', 'c')
                  ('C', 'd')
                  ('C', 'A')
                  ('C', 'B')
                  ('C', 'C')
                  ('C', 'D')
                  ('C', '1')
                  ('C', '2')
                  ('C', '3')
                  ('C', '4')
                  ('D', 'a')
                  ('D', 'b')
                  ('D', 'c')
                  ('D', 'd')
                  ('D', 'A')
                  ('D', 'B')
                  ('D', 'C')
                  ('D', 'D')
                  ('D', '1')
                  ('D', '2')
                  ('D', '3')
                  ('D', '4')
                  ('1', 'a')
                  ('1', 'b')
                  ('1', 'c')
                  ('1', 'd')
                  ('1', 'A')
                  ('1', 'B')
                  ('1', 'C')
                  ('1', 'D')
                  ('1', '1')
                  ('1', '2')
                  ('1', '3')
                  ('1', '4')
                  ('2', 'a')
                  ('2', 'b')
                  ('2', 'c')
                  ('2', 'd')
                  ('2', 'A')
                  ('2', 'B')
                  ('2', 'C')
                  ('2', 'D')
                  ('2', '1')
                  ('2', '2')
                  ('2', '3')
                  ('2', '4')
                  ('3', 'a')
                  ('3', 'b')
                  ('3', 'c')
                  ('3', 'd')
                  ('3', 'A')
                  ('3', 'B')
                  ('3', 'C')
                  ('3', 'D')
                  ('3', '1')
                  ('3', '2')
                  ('3', '3')
                  ('3', '4')
                  ('4', 'a')
                  ('4', 'b')
                  ('4', 'c')
                  ('4', 'd')
                  ('4', 'A')
                  ('4', 'B')
                  ('4', 'C')
                  ('4', 'D')
                  ('4', '1')
                  ('4', '2')
                  ('4', '3')
                  ('4', '4')
                  • Partager sur Facebook
                  • Partager sur Twitter
                    2 mars 2011 à 8:14:38

                    Merci de m'avoir répondu je commençais à perdre espoir :P... donc, c'est cela en partir sauf qu'il faudrait qu'au lieu de créer des tuples elle ajoute la valeur de la variable a l'autre comme que j'ai dit plus haut:

                    a
                    b
                    c
                    d
                    A
                    B
                    C
                    D
                    0
                    1
                    2
                    3
                    aa
                    ab
                    ac
                    ad
                    aA
                    aB
                    ..
                    ba
                    bb
                    bc
                    bd
                    ...(très loin)
                    aaaa
                    aaab
                    aaac
                    aaad
                    ...
                    aaba
                    aabb
                    aabc
                    .......


                    Mais il faut que ça donne toutes les possibilités possibles et avec maximum 4 caractères un à côté de l'autre sinon sa risque de devenir trop gros :P. Et j'aimerais le coder moi même si c'est possible car je veux vraiment apprendre python ;).
                    • Partager sur Facebook
                    • Partager sur Twitter
                      2 mars 2011 à 9:14:17

                      En gros, tu aimerais coder un bruteforce en python ?

                      Sinon tu peux faire ça avec les listes en ajoutant simplement la variable à la liste (en fin de boucle).
                      • Partager sur Facebook
                      • Partager sur Twitter
                      SDZ/OC iz dead ;o(
                      Anonyme
                        2 mars 2011 à 12:33:18

                        Non mais le tuple c'est pas un problème,

                        T'as un algorithme tout préparé je suppose si tu veux apprendre python en commençant un exercice de ce niveau?

                        • Partager sur Facebook
                        • Partager sur Twitter
                          2 mars 2011 à 18:09:01

                          Psych0Pat: Sérieusement je n'en sais vraiment rien car c'est un de mes amis qui m'avait demandé de faire sa vu qu'il savait que je commençais en programmation et que cela irait beaucoup plus vite que de toute faire à la main... tu sais 65 536 possibilités c'est long :P... Et bon je m'en fous un peut moi de savoir qu'est ce qui veut faire avec ça moi ça me pratique et c'est ça que je veux...

                          fred1599: Et bien vu que je commence en programmation, côté algorithme ce n'est pas super et j'avais commencé à en faire un mais bon je me suis perdu dans tous mes gribouillis alors j'ai laissé tomber :P... Aussi à ce que je vois que ça la l'aire compliquer même pour des expert ou quoi ? :p
                          • Partager sur Facebook
                          • Partager sur Twitter
                          Anonyme
                            2 mars 2011 à 18:22:53

                            Non c'est pas difficile, le code fait 4 lignes et on peut encore simplifier, mais pour toi oui, il est difficile. Ce code pourrait être ton but, une fois que tu maîtrises un peu mieux la syntaxe.

                            Donc le but c'est quoi? Avoir le code pour le fourguer à ton pote ou apprendre python?

                            Parce-que si tu apprends python, tu prends le tuto du sdz ou un livre python et tu postes tes codes ici.

                            Sans code c'est pas intéressant de répondre, il n'y a rien à corriger.

                            Sinon pour t'aiguiller, je peux t'emmener sur cette page.

                            Bon courage,
                            • Partager sur Facebook
                            • Partager sur Twitter
                              2 mars 2011 à 18:32:37

                              En faite je veux vraiment apprendre python... j'ai commencé le tuto du site et puis bon je suis rendu au liste et tuple (2/2) et je crois que je peux parfaitement coder cette chose mais je ne sais pas du tous comment :S

                              Edit:

                              J'ai trouvé ce que je cherchais... En fait il a une fonction déjà toute fait qui me permet ça :p (merci a fred1599 ;) )...:

                              http://docs.python.org/library/itertoo [...] from_iterable

                              def product(*args, **kwds):
                                  # product('ABCD', 'xy') --> Ax Ay Bx By Cx Cy Dx Dy
                                  # product(range(2), repeat=3) --> 000 001 010 011 100 101 110 111
                                  pools = map(tuple, args) * kwds.get('repeat', 1)
                                  result = [[]]
                                  for pool in pools:
                                      result = [x+[y] for x in result for y in pool]
                                  for prod in result:
                                      yield tuple(prod)
                              


                              Mais j'ai un petit problème elle ne marche pas comme prévue... elle ne m'affiche pas vraiment ce que je veux ..:
                              <itertools.product object at 0x036938F0>


                              C'est quoi ça bordel :P??? Je ne suis pas sur mais j'avais déjà commencé le C et je crois que c'est une adresse dans ma mémoire (RAM)... Donc comment je fais pour que cette fonction m'affiche ce que je veux ?
                              • Partager sur Facebook
                              • Partager sur Twitter
                                3 mars 2011 à 11:18:52

                                C'est ce que veut dire fred1599 quand il te dit qu'il faut que tu commences par apprendre les bases. Ton problème est un problème d'algorithmique de base, que tu dois savoir résoudre avec des instructions python de base, à condition que tu lises le tuto.

                                Après, il y a effectivement des modules qui te permettent d'aller plus vite, mais pas de bol, avant de les utiliser il faut que tu comprennes la base. Disons qu'à défaut de comprendre ce que sont les Itérateurs, il faudrait au moins que tu saches ce que sont les Objets..

                                Donc comme l'a dit fred1599, lis le tuto si tu veux apprendre Python..
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  3 mars 2011 à 11:31:52

                                  Citation : WoofWoofDude

                                  En faite je veux vraiment apprendre python... j'ai commencé le tuto du site et puis bon je suis rendu au liste et tuple (2/2) et je crois que je peux parfaitement coder cette chose mais je ne sais pas du tous comment :S

                                  Edit:

                                  J'ai trouvé ce que je cherchais... En fait il a une fonction déjà toute fait qui me permet ça :p (merci a fred1599 ;) )...:

                                  http://docs.python.org/library/itertoo [...] from_iterable

                                  def product(*args, **kwds):
                                      # product('ABCD', 'xy') --> Ax Ay Bx By Cx Cy Dx Dy
                                      # product(range(2), repeat=3) --> 000 001 010 011 100 101 110 111
                                      pools = map(tuple, args) * kwds.get('repeat', 1)
                                      result = [[]]
                                      for pool in pools:
                                          result = [x+[y] for x in result for y in pool]
                                      for prod in result:
                                          yield tuple(prod)
                                  



                                  Mais j'ai un petit problème elle ne marche pas comme prévue... elle ne m'affiche pas vraiment ce que je veux ..:

                                  <itertools.product object at 0x036938F0>



                                  C'est quoi ça bordel :P??? Je ne suis pas sur mais j'avais déjà commencé le C et je crois que c'est une adresse dans ma mémoire (RAM)... Donc comment je fais pour que cette fonction m'affiche ce que je veux ?



                                  C'est normal qu'il ne te renvois pas "ce que tu veux" (un tuple je suppose) parce que tu ne le lui demande pas. Il renvois un itérateur.

                                  D'ailleur, le code ne fonctionne pas sous Python 3 (même s'il faut juste convertir le map(tuple, args) en liste)
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                  Anonyme
                                    3 mars 2011 à 13:11:30

                                    Citation

                                    En faite je veux vraiment apprendre python... j'ai commencé le tuto du site et puis bon je suis rendu au liste et tuple (2/2) et je crois que je peux parfaitement coder cette chose mais je ne sais pas du tous comment :S

                                    Edit:

                                    J'ai trouvé ce que je cherchais... En fait il a une fonction déjà toute fait qui me permet ça :p (merci a fred1599 ;) )...:

                                    http://docs.python.org/library/itertoo [...] from_iterable

                                    Secret (cliquez pour afficher)
                                    Code : Python - Sélectionner

                                    1
                                    2
                                    3
                                    4
                                    5
                                    6
                                    7
                                    8
                                    9



                                    def product(*args, **kwds):
                                    # product('ABCD', 'xy') --> Ax Ay Bx By Cx Cy Dx Dy
                                    # product(range(2), repeat=3) --> 000 001 010 011 100 101 110 111
                                    pools = map(tuple, args) * kwds.get('repeat', 1)
                                    result = [[]]
                                    for pool in pools:
                                    result = [x+[y] for x in result for y in pool]
                                    for prod in result:
                                    yield tuple(prod)



                                    Mais j'ai un petit problème elle ne marche pas comme prévue... elle ne m'affiche pas vraiment ce que je veux ..:
                                    Code : Console - Sélectionner



                                    <itertools.product object at 0x036938F0>



                                    C'est quoi ça bordel :P??? Je ne suis pas sur mais j'avais déjà commencé le C et je crois que c'est une adresse dans ma mémoire (RAM)... Donc comment je fais pour que cette fonction m'affiche ce que je veux ?



                                    Voila pourquoi je te dis d'aller plus loin dans ton tutoriel, c'est pour ce genre de chose.

                                    Tu ne comprends pas ce code, qui en fait réécrit la fonction product du module itertools.

                                    Par contre on peut comprendre grâce à ce code que la fonction renvoi un itérateur, et que le résultat pourra être retourné avec une simple boucle for

                                    for i in product(tachaine, repeat = n):
                                        print i
                                    


                                    Donc si tu veux vraiment apprendre, tu seras patient avant de répondre à ce genre de question.

                                    Sinon c'est que tu ne souhaites que le code pour épater ton pote et les posteurs n'ont pas que ça à faire!!!
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      4 mars 2011 à 1:10:20

                                      Merci Fred et les autres... oui je vois bien que je ne suis pas assai loin dans le tuto donc je crois que je vais continuer le tuto avant de commencer à faire des programmes pour mes amis...

                                      Et non je ne me vantais pas de pouvoir coder en passant fred :p ...

                                      Edit:

                                      Et je viens de faire le test avec la boucle for... mais comme tu me lavais déjà montré Fred, ça ma fiche des tuple et non ce que je veux ... donc comment je fais ?
                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                      Anonyme
                                        4 mars 2011 à 9:07:25

                                        >>> "".join(('A', 'B'))
                                        'AB'
                                        
                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          4 mars 2011 à 21:02:01

                                          Hier j'ai continué le tuto des listes et je pensais faire comme ça mais il était trop tard donc je l'aurais faite aujourd'hui :P... merci beaucoup les gars sur tous toi Fred ;)
                                          • Partager sur Facebook
                                          • Partager sur Twitter

                                          Besoin d'aide pour un code python.

                                          × 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.
                                          • Editeur
                                          • Markdown