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
A voir également:

4 réponses

jee pee Messages postés 41503 Date d'inscription   Statut Modérateur Dernière intervention   9 712
 
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
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
Utilisateur anonyme > Momodubendo
 
Bonsoir

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