Jump to content

Chaine de caractères 2


Go to solution Solved by Odontoboulot,

Recommended Posts

Posted

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)
  • Ancien du Bureau
Posted

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 ?

  • Ancien du Bureau
Posted
à 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 ^^ 

Posted

 

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🤣

  • Solution
Posted (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 by Soul
Posted (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 by Shrex
Posted
à 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 " "

 

Seth Rollins Reaction GIF

 

je savais que j'allais dire une bêtise 🥺 Merci !

Posted
à 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

Posted
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

 follow me please GIF

 

pour rester dans le thème shrex

d'ailleurs t'as largement compensé avec ta pdp qui me fais exploser à chaque fois 😂

Posted

@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... 🤣

 

Posted (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 by Shrex
Posted
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...) 

 

  • Ancien du Bureau
Posted
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

Posted
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 ? 

Posted (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 by a_bd
Posted (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 by Shrex
Posted
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 🤠

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...