Doubler les voyelles d'un mot

Résolu
Momodubendo -  
 Momodubendo -
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. jee pee Messages postés 9450 Date d'inscription   Statut Modérateur Dernière intervention   9 994
     
    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. Momodubendo
       
      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
      1. Utilisateur anonyme > Momodubendo
         
        Bonsoir

        Quel est le type de i ?
        0
  2. jee pee Messages postés 9450 Date d'inscription   Statut Modérateur Dernière intervention   9 994
     
    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. Momodubendo
       
      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
      1. jee pee Messages postés 9450 Date d'inscription   Statut Modérateur Dernière intervention   9 994 > Momodubendo
         
        Il 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. Utilisateur anonyme
     
    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
  4. Momodubendo
     
    Ok merci mais dans mon code j’ai juste à remplacer i par mot[i] et ça devrait marcher ?
    0
    1. jee pee Messages postés 9450 Date d'inscription   Statut Modérateur Dernière intervention   9 994
       
      Si tu as testé tu devrais savoir si ça fonctionne
      0
      1. Momodubendo > jee pee Messages postés 9450 Date d'inscription   Statut Modérateur Dernière intervention  
         
        je viens de tester et ça marche , merci beaucoup
        0