Phagocytose Posted March 4, 2021 Posted March 4, 2021 Ooouuuups ! il y a eu un petit problème d'envoi du coup je disais, pour ce programme, je bloque au nv du + resultat, quelqu'un peut m'aider ? mot = "canard" resultat = "" for pos in range(len(mot)): resultat = mot[pos % 3] + resultat print(resultat) Quote
Ancien du Bureau Sans-Visage Posted March 4, 2021 Ancien du Bureau Posted March 4, 2021 Coucou ! Je sais pas si tu te souviens, au début quand on connaissait pas +=, on faisait A = A + 1 Bah là c'est l'inverse. Imagine que A = "jour" A = "Bon" + A Donc on aura A qui sera égal à "Bonjour" ça te va comme explication ? Quote
Phagocytose Posted March 4, 2021 Author Posted March 4, 2021 il y a 8 minutes, DuTACKauTac a dit : ça te va comme explication ? Désolée j'ai pas compris où tu voulais en venir.. Quote
Ancien du Bureau Sans-Visage Posted March 4, 2021 Ancien du Bureau Posted March 4, 2021 à l’instant, Phagocytose a dit : Désolée j'ai pas compris où tu voulais en venir.. Ce qui te bloque, c'est bien le fait qu'on ai résultat avant et après le =, non ? Du coup le fait de mettre résultat des deux côtés, ça veut dire que tu vas rajouter mot[pos%3] à la valeur que résultat avait jusqu'à maintenant Au début ton résultat est posé comme resultat = "" si tu fais resultat = "c" + resultat Alors ton résultat vaudra "c" ("c" + "") Si on enchaine avec : resultat = "a" + resultat Alors résultat vaudra "ac" ("a" + "c") Est-ce que c'est bon ? Si tu as besoin, je peux te faire le déroulement de tout le programme si ça peut t'aider à mieux comprendre ^^ Quote
Phagocytose Posted March 4, 2021 Author Posted March 4, 2021 il y a une heure, DuTACKauTac a dit : ça veut dire que tu vas rajouter mot[pos%3] à la valeur que résultat avait jusqu'à maintenant J'ai pas compris .. ça Je comprends pas, pourquoi c'est "c"("c" + "") et pas " "("c" + " ") parce que le "c" c'est à cause du modulo mais au départ on dit que resultat = " " il y a une heure, DuTACKauTac a dit : Si tu as besoin, je peux te faire le déroulement de tout le programme si ça peut t'aider à mieux comprendre ^^ Oh non mais trop chouuu Je pense pas que ce soit la peine, faut juste que je capte la première ligne et ça ira tout seul (fin j'espère) Quote
Solution Odontoboulot Posted March 4, 2021 Solution Posted March 4, 2021 (edited) il y a 7 minutes, Phagocytose a dit : J'ai pas compris .. ça Je comprends pas, pourquoi c'est "c"("c" + "") et pas " "("c" + " ") parce que le "c" c'est à cause du modulo mais au départ on dit que resultat = " " c'est ce qu'il dit t'inquiètes, en gros résultat = "c" soit "c" + " " mais vu que tu as du vide c'est comme rajouter 1 + 0 = 1 en gros, quand t'écris résultat = 3 c'est comme en math, x = 3, t'assignes à la variable x le nombre 3 résultat = C + résultat ça veut dire assigner à résultat C+résultat ( résultat ACTUEL, celui que tu as au temps T) donc si résultat est " " tu assignes finalement à résulat (nouveau résultat donc) -> "C" + " " Edited March 4, 2021 by Soul Shrex 1 Quote
Shrex Posted March 4, 2021 Posted March 4, 2021 (edited) il y a 6 minutes, Soul a dit : résultat = "c" soit "c" + " " mais vu que tu as du vide c'est comme rajouter 1 + 0 = 1 ATTENTION "c" + " " donne "c " (avec un espace !!) c'est pour ça qu'il met "" sans espace car résultat vaut un string (comme ils appellent ça) et "" c'est différent de " " (ça marche pas comme des nombres c'est une série de caractères et un espace est un "caractère" pour une string) Sinon le reste de l'explication est de qualité Edited March 4, 2021 by Shrex Odontoboulot 1 Quote
Odontoboulot Posted March 4, 2021 Posted March 4, 2021 à l’instant, Shrex a dit : ATTENTION "c" + " " donne "c " (avec un espace !!) c'est pour ça qu'il met "" sans espace car résultat vaut un string (comme ils appellent ça) et "" c'est différent de " " je savais que j'allais dire une bêtise Merci ! Quote
Shrex Posted March 4, 2021 Posted March 4, 2021 à l’instant, Soul a dit : bêtise NOOOOOOOOOOON j'ai l'impression d'avoir fait un maximum de mal en peu de temps !! C'est juste un femto (oui très petit) détail le reste est giga propre faut pas mettre cet émoji de la tristesse très triste qui fait pleurer de tristesse triste Quote
Odontoboulot Posted March 4, 2021 Posted March 4, 2021 il y a 2 minutes, Shrex a dit : NOOOOOOOOOOON j'ai l'impression d'avoir fait un maximum de mal en peu de temps !! C'est juste un femto (oui très petit) détail le reste est giga propre faut pas mettre cet émoji de la tristesse très triste qui fait pleurer de tristesse triste pour rester dans le thème shrex d'ailleurs t'as largement compensé avec ta pdp qui me fais exploser à chaque fois Shrex 1 Quote
Phagocytose Posted March 4, 2021 Author Posted March 4, 2021 @Soul Je crois que j'ai pas trop compris^^ Parce que du coup ça fait resultat = "c" + "" resultat = "a + "c" résultat = "n" +"ac" resultat = "c" + "nac" resultat = "a"+ "cnac" resultat = "n" + "acnac" ? (je crois que j'ai fait n'importe quoi avec les espaces et les "", vous m'avez perdu avec l'histoire des caractères, espaces, string... ) Quote
Shrex Posted March 4, 2021 Posted March 4, 2021 (edited) @Phagocytose Je crois justement que c'est "nacnac" qu'il faut trouver et eux proposent "cancan" donc l'item est faux T'as bien réalisé le programme fais toi plus confiance !!! (et dsl pour le bordel des string je peux détailler la chose si ça t'intéresses haha) Edited March 4, 2021 by Shrex Quote
Phagocytose Posted March 5, 2021 Author Posted March 5, 2021 Il y a 7 heures, Shrex a dit : Je crois justement que c'est "nacnac" qu'il faut trouver et eux proposent "cancan" donc l'item est faux Mais non ?! yessssss (je devrais arriver à l'autre programme oklm normalement) C'était tout con en fait Il y a 7 heures, Shrex a dit : (et dsl pour le bordel des string je peux détailler la chose si ça t'intéresses haha) Si t'as le temps et si ça te dérange pas je veux bien (on sait jamais s'il en fait un piège le jours du concours...) Quote
Ancien du Bureau Sans-Visage Posted March 5, 2021 Ancien du Bureau Posted March 5, 2021 Il y a 9 heures, Phagocytose a dit : Je comprends pas, pourquoi c'est "c"("c" + "") et pas " "("c" + " ") parce que le "c" c'est à cause du modulo mais au départ on dit que resultat = " " il y a 8 minutes, Phagocytose a dit : Si t'as le temps et si ça te dérange pas je veux bien (on sait jamais s'il en fait un piège le jours du concours...) C'est ça que tu as pas compris ? Déjà ce que j'avais mis entre parenthèse, c'est bien juste pour expliquer d'où venait mon résultat "c" + "" = "c" "c" + " " = "c " En gros il faut comprendre que "" c'est un peu le 0 des strings, il changera rien là où tu le rajoutes (attention, il est différent de Null que tu obtiens quand tu fait return sans rien derrière). Par contre, il faut voir " " comme on verrait "a" ou "b". En gros, tu peux ajouter un espace à ta suite de caractères, un espace c'est pas considéré comme du vide ^^ J'espère que c'était bien ça que tu demandais mais je suis pas sur du tout mdrr Shrex 1 Quote
Phagocytose Posted March 5, 2021 Author Posted March 5, 2021 Il y a 4 heures, DuTACKauTac a dit : Déjà ce que j'avais mis entre parenthèse, c'est bien juste pour expliquer d'où venait mon résultat "c" + "" = "c" "c" + " " = "c " J'avais pas capté, mais maintenant j'ai compris le fonctionnement ! Il y a 4 heures, DuTACKauTac a dit : En gros il faut comprendre que "" c'est un peu le 0 des strings, il changera rien là où tu le rajoutes (attention, il est différent de Null que tu obtiens quand tu fait return sans rien derrière). Par contre, il faut voir " " comme on verrait "a" ou "b". En gros, tu peux ajouter un espace à ta suite de caractères, un espace c'est pas considéré comme du vide ^ Oui c'était ça que je demandais tkt mais du coup dans le programme il y a écrit resultat = " " pour que l'on puisse mettre une lettre à la place de l'espace ? Quote
Gathou Posted March 5, 2021 Posted March 5, 2021 (edited) Je rebondis sur le sujet désolée mais ça me paraissait super clair et enft plus mtn, mais si quelqu'un a 2 minutes pour m'expliquer un truc Je vais essayer d'être la plus claire possible : http://image.noelshack.com/fichiers/2021/09/5/1614957330-capture-d-ecran-2021-03-05-a-16-15-23.png J'ai bien réussi à trouver "RDCANA" pour celui encadré en vert; parce que dès que je trouvais une nouvelle lettre je l'a rajoutais juste après. En gros pos (0) => R et pos (1) => D et du coup j'ai continué jusqu'à pos(5) pour avoir RDCANA Sauf que du coup j'ai refais pareil pour celui du bas et j'ai bien trouvé CANCAN (sauf que c'est pas ce qu'il faut trouver lol) D'ou ma question existentielle : pourquoi dans le premier cas on ajoute la lettre qu'on a trouvé pour pos(1) juste après celle que l'on a trouvé pour pos(0); alors que dans le second cas on rajoute la lettre qu'on a trouvé pour pos(1) avant la lettre qu'on a trouvé pour pos(0); alors que faire "resultat += ..." ou "resultat = .. + resultat" c'est pareil non ? Edit : me dites pas que la réponse à ma question réside dans le fait que résultat est après le "+" ; et que si ça avait été résultat + mot(pos % 3) au lieu de mot(pos % 3) + résultat et bien là on aurait trouvé cancan Edited March 5, 2021 by a_bd Quote
Shrex Posted March 5, 2021 Posted March 5, 2021 (edited) @a_bd Je sais pas si je vais répondre à la question mais avec un exemple qui ressemble aux exos mais c'est pas exactement pareil : resultat += mot[pos % 3] c'est pareil que resultat = resultat + mot[pos%3] donc tu vois que ça diffère de resultat = mot[pos % 3] + resultat où les 2 termes sont inversés par rapport à avant C'est pour cela que dans un cas on rajoute l'un après l'autre et que dans l'autre on rajoute l'un avant l'autre Edited March 5, 2021 by Shrex Gathou 1 Quote
Gathou Posted March 5, 2021 Posted March 5, 2021 il y a 6 minutes, Shrex a dit : resultat += mot[pos % 3] c'est pareil que resultat = resultat + mot[pos%3] donc tu vois que ça diffère de resultat = mot[pos % 3] + resultat voilà donc c'est ce que j'ai mis dans mon édit t'as littéralement répondu à ma question je croyais que c'était la même chose ptn tu me refais mon aprèm Shrex 1 Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.