Doubler les voyelles d'un mot

Résolu
Bonjour,
j'ai un exercice a faire et l'énoncé est le suivant:

Ecrire un programme dans lequel le joueur choisit un mot, l’ordinateur affiche le mot mais en doublant toutes
les voyelles.
Exemple : « bonjour » donne « boonjoouur »

Et je n'ai aucune idée de comment le faire donc si quelqu'un pourrait m'aider ce serait gentil.

Merci d'avance !

Configuration: Windows / Chrome 88.0.4324.146

4 réponses

  1. Modérateur
    Bonjour,

    Je te donne la logique, tu écris le code.
    - le joueur donne un mot
    - tu fais une boucle sur chaque caractère du mot
    - c'est une voyelle tu la concatènes 2 fois au résultat
    - ce n'est pas une voyelle tu concatènes ce caractère au résultat
    - tu affiches le résultat.

    Mais il faut que tu apprennes, car dans la programmation, il y a 2 phases primordiales, imaginer une logique amenant à la solution (l’algorithmie) et coder la démarche.
    1
    1. J'ai écrit ce code :

      mot=str(input("Donnez un mot"))
      n=len(mot)
      mot2=""
      voyelles="aeiouy"
      i=0
      while i<n:
          if i in voyelles:
              mot2= mot2 + i*2
              i+=1
          else:
              mot2=mot2 + i
              i+=1
      print(mot2)   


      mais ça m'affiche TypeError: 'in <string>' requires string as left operand, not int
      ça vient d'où ?
      0
    2. @MomodubendoBonsoir

      Quel est le type de i ?
      0
  2. Modérateur
    i est un indice, le caractère c'est mot[i]

    Pour la mise en forme des sources, au dessus de la zone d'édition de tes messages, il y a des icônes pour l'enrichissement du texte. Celle qui a cet aspect
    <> ▼
    permet d'appliquer au code, suivant une liste de valeurs, le format correspondant à sa nature.
    Un petit tuto là : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
    J'ai modifié ta réponse pour le faire, mais penses y la prochaine fois.
    0
    1. je ne trouve pas la zone d'édition de message et je ne comprend pas où vous avez modifié ma réponse (désolé je suis nouveau sur ce forum)
      0
    2. Modérateur
      @MomodubendoIl faut lire mon lien, la zone d'édition c'est quand tu saisis ton message, au dessus il y a une barre d'icones : gras, italique, souligné, code, image
      0
  3. Ton code était

    mot=str(input("Donnez un mot"))
    n=len(mot)
    mot2=""
    voyelles="aeiouy"
    i=0
    while i<n:
    if i in voyelles:
    mot2= mot2 + i*2
    i+=1
    else:
    mot2=mot2 + i
    i+=1
    print(mot2)

    jee pee a fait en sorte qu'on le voit comme ça

    mot=str(input("Donnez un mot"))
    n=len(mot)
    mot2=""
    voyelles="aeiouy"
    i=0
    while i<n:
        if i in voyelles:
            mot2= mot2 + i*2
            i+=1
        else:
            mot2=mot2 + i
            i+=1
    print(mot2)   


    Ce qui est à la fois plus agréable pour le lecteur mais surtout primordial pour python car c'est le seul moyen de conserver l'indentation.

    Maintenant, si tu avais fais l'effort de lire le lien que jee pee t'as mis dans le message 3, tu l'aurais compris....
    0
    1. Ok merci mais dans mon code j’ai juste à remplacer i par mot[i] et ça devrait marcher ?
      0
      1. Modérateur
        Si tu as testé tu devrais savoir si ça fonctionne
        0
      2. @jee peeje viens de tester et ça marche , merci beaucoup
        0