Python remplacer un caractère dans une chaine - Python - Programmation
Marsh Posté le 15-11-2018 à 19:16:25
Bonjour,
Une solution possible : https://stackoverflow.com/questions [...] tain-index
dd
Marsh Posté le 15-11-2018 à 19:39:31
Je ne trouve pas de solution dans ce que tu m'as envoyé
j'essaie des choses comme ça mot_joueur[i].replace('',lettre)...
Je précise qu'en cours on a vu que les choses basiques c-a-d les chaines les boucles while for et au niveau des chaines ça ne va pas plus loin que ch.upper() etc ...
Marsh Posté le 15-11-2018 à 19:40:44
Pourquoi remplacer ? ré-écris le mot, non ?
Marsh Posté le 15-11-2018 à 20:12:45
Ah ben en fait c'est ce que tu as mis comme code ce que je voulais que tu fasses. Mais tu n'as pas vraiment bon au niveau de l'algo.
pseudo-code :
Code :
|
Sinon il suffit de googler (python string) pour trouver des fonctions sur les chaînes.
Marsh Posté le 15-11-2018 à 20:29:13
Code :
|
là est mon problème, je ne trouve pas LA fonction qui permet de faire ça, car dans tous les cas je pourrai pas faire Chaine[i]=quelque chose
Marsh Posté le 15-11-2018 à 21:04:16
Bah tu me fais tourner en bourrique.
J'ai repassé trop vite en revue le sujet après ta réponse, je reprends donc ce que je disais.
Les chaînes de caractères en Python sont immuables. Tu dois donc réécrire le mot, dans une nouvelle variable tu concatènes le début du mot, ta lettre puis la fin du mot.
Mon pseudo-code est à modifier légèrement pour utiliser de vraies strings.
Tu peux aussi utiliser une liste plutôt qu'une vraie chaîne de caractères, dans quel cas tu retrouves le pseudo-code que j'ai proposé.
Pour récupérer le début ou la fin du mot il faut utiliser les indexes : chaîne[début:fin].
nouveau_mot = chaîne[0:indice-1] + lettre + chaîne[indice+1:longueur_mot]
Marsh Posté le 15-11-2018 à 21:07:41
ReplyMarsh Posté le 15-11-2018 à 21:30:07
Nestati a écrit : ahh oui merci bcp j'avais pas pensé à ça milles mercis |
Sinon en se fondant sur le lien => https://stackoverflow.com/questions [...] tain-index
Code :
|
Ce qui revient en gros à faire ce que disait MaybeEijOrNot (modulo la petite erreur des index en moins).
Marsh Posté le 15-11-2018 à 22:27:36
dede_sav a écrit : (modulo la petite erreur des index en moins). |
Bien vu, ce n'est pas indice-1 mais bien indice pour le premier terme.
Sinon je n'avais pas regardé le lien, donc en effet le lien donnait la bonne réponse (et sans petite faute). Oui je suis allé trop vite à chacun de mes passages sur ce sujet.
Sinon, ce qu'il faut retenir, c'est que pour des problèmes où le contexte importe peu, Google donne très efficacement des réponses. Et du côté de la programmation, en détaillant bien le contexte dans la recherche, on peut généralement y arriver relativement rapidement à trouver la solution.
Aujourd'hui c'est inconcevable de vouloir faire de la programmation sans avoir les bases de l'informatique, et la recherche Google fait parti des bases de l'informatique.
Marsh Posté le 15-11-2018 à 22:34:01
Pour te répondre Maybe , j'ai vraiment recherché sur peut être 15 sites différents la réponse , rien ne me convenait.
Et pour les bases j'ai fait deux ans de langage C durant mes études.
Marsh Posté le 15-11-2018 à 22:43:22
Ce que je veux dire, c'est que la programmation c'est déjà un stade avancé de l'informatique on va dire. Donc normalement tu passes au stade avancé quand tu as les bases.
C'est comme si quelqu'un venait demander de l'aide pour le calcul d'une intégrale sans savoir faire une division euclidienne. C'est un peu déroutant...
Mais tu n'es pas le seul, c'est simplement que ça m'interloque à chaque fois.
Tu as fait quoi comme recherche ? Parce que si je tape "Python String" ou "Python string modify" je pense que je trouve la réponse dans les 5 premiers liens à chaque fois...
Après moi je m'en fous, c'est juste que si tu veux faire de la programmation tu es obligé d'apprendre à utiliser google et une doc autrement tu ne peux pas avancer.
Marsh Posté le 04-05-2019 à 19:32:11
Comme l'a dit Maybe, la bonne pratique en général pour faire du replace sur un type immuable c'est de construire son équivalent sous forme de list() et de jouer sur la list.
Marsh Posté le 15-11-2018 à 19:12:14
Bonsoir à tous , je dois faire un pendu et j'aimerais remplacer les caractères d'une chaine par ceux d'une autre à une certaine position
Avec admettons :
mot_machine='TEST'
mot_joueur='****'
lettre='E'
Je suis conscients qu'on ne peut pas faire d'opérations comme celle-ci sur les chaines et j'aimerais une alternative, j'ai déjà essayé avec chaine.replace()
Merci beaucoup