Skip to content

Instantly share code, notes, and snippets.

@GravenilvecTV
Created January 22, 2019 11:29
Apprendre le python #6 - Fonctions
def get_vowels_numbers(word):
# créer un compteur de voyelles
nb_vowels = 0
# pour chaque lettre du mot vous verifiez s'il s'agit d'un voyelle
for letter in word:
if letter in ['a', 'e', 'i', 'o', 'u', 'y']:
# on ajoute un au compteur
nb_vowels += 1
# à la fin de la fonction, vous allez renvoyer le compteur
return nb_vowels
word = input("Entrer un mot")
vowels_count = get_vowels_numbers(word)
print("Il y a", vowels_count, "voyelles dans le mot", word)
@jojo23-tg
Copy link

salut je debute en python et j'aurais une question est ce que on a écrit "letter" sans définir ce que c'tait est ce python reconnait le mot letter sans qu'on le définisse ?

oui jcrois

@SAIDA556
Copy link

SAIDA556 commented Nov 1, 2022

def get_vowels_number(mots):
ama=0
for letter in mots :
if letter in ['a','o','i','e','y']:
ama+=1
return ama

mots=input("entrer le mots:")
owels_count=get_vowels_number(mots)
print("le nombre des vowels est:",owels_count)

@Miloud51
Copy link

Miloud51 commented Nov 1, 2022

Pourriez-vous m'enlever de votre liste de diffusion svp garoui@live.fr, je reçois trop de mails et impossible de se désinscrire.

@opak95
Copy link

opak95 commented Dec 7, 2022

coucou! voici mon code =)

# compter le nombre de voyelles d'un mot
# definition de la fct
def get_voy(word):
    count = 0
    for letters in word:
        if letters in ["a", "e", "i", "o", "u", "y"]:
            count += 1
    return count

word = input("entrez un mot svp ")
print("le nombre de voyelles est ", get_voy(word))

@Freyaness
Copy link

Freyaness commented Dec 13, 2022

Bonsoir, j'espère que quelqu'un pourra m'aider car malgré mes recherches sur Google je ne parviens pas à comprendre ce qui ne va pas dans mon code

def get_vowels_numbers(word):
    vowels = ["a", "e", "i", "o", "u", "y"]
    number_of_vowels = 0
    for vowels in word:
        number_of_vowels += 1
        print(number_of_vowels)
    return number_of_vowels


get_vowels_numbers(input("Tapez un mot pour compter le nombre de voyelles qu'il contient"))

1er problème : l'erreur m'indique que les éléments de la variable locale "vowels" n'est pas utilisée dans le code, or c'est ce que je pensais avoir fait dans la boucle "for"
Le 2ème problème (je suppose lié à la première erreur) est que le programme ne compte pas les voyelles, mais le nombre total de lettres du mot
Pouvez-vous m'aider à comprendre ce qui ne va pas dans mon code, s'il-vous-plaît ?

EDIT : Problèmes résolus, voici ma correction

def get_vowels_numbers(word):
    vowels = ["a", "e", "i", "o", "u", "y"]
    number_of_vowels = 0
    for letter in word:
        if letter in vowels:
            number_of_vowels += 1
    return number_of_vowels


vowels_count = get_vowels_numbers(input("Tapez un mot pour compter le nombre de voyelles qu'il contient"))
print("Le nombre de voyelles dans votre mot est : ", vowels_count)

@Miloud51100
Copy link

Miloud51100 commented Dec 22, 2022 via email

@nansence
Copy link

Je pense avoir totalement juste.

def get_voyels_numbers(n):
    voyels_numbers = 0
    voyels_list = ['a', 'e','y', 'u','o', 'i', 'A', 'E','Y', 'U','O','I']
    for lettre in n:
        for voyels in lettre:
            if voyels in voyels_list:
                voyels_numbers += 1
                
    return voyels_numbers
    
mot = input("inserez un mot: ")
print("Ce mot contient", get_voyels_numbers(mot), "voyelles")

@christian66-gif
Copy link

christian66-gif commented Apr 17, 2023

bonjour Graven ... le niveau up ... j'ai du aller voir la correction pour arriver à le faire :) ... bonne révision de toutes les vidéos précédentes .
je ne vois pas comment Python comprend que (i) ou (letter) sont les caractères entré car hors de la fonction il ne le reconnait pas
je vais approfondir les déclarations de fonction en Python ;) .

code

def compteur_de_voyelle():
    nb_voyelle = 0
    liste_voyelle = ['a', 'e', 'i', 'o', 'u', 'y']

    for i in texte:            #(i) représente les caractères dans le texte entré par l'utilisateur
        if i in liste_voyelle:
            nb_voyelle +=1
    return nb_voyelle

texte = input("entrez du texte en minuscule sans accent: ")

print("il y a", compteur_de_voyelle(), "voyelles dans le texte:", texte)

code sans la fonction

ca marche aussi ... j'avais laissé le tab avant la boucle for et le return :) ... j'adore Python ... tout est possible avec ce langage :)

texte = input("entrez du texte en minuscule sans accent: ")
liste_voyelle = ['a', 'e', 'i', 'o', 'u', 'y']
nb_voyelle = 0

for i in texte:   # (i) représente les caractères dans le texte entré par l'utilisateur
    if i in liste_voyelle:
        nb_voyelle +=1

print("il y a", nb_voyelle, "voyelles dans le texte:", texte)

@mahdi9815
Copy link

chaine = input("Entrez une chaine:")
voyelles = "aeuoiyAEYOUI"

def fonction_get_voyelles(chaine ):
nb_de_voyelles = 0
for lettre in chaine :
if lettre in voyelles:
nb_de_voyelles +=1

print(f"Le nombre de voyelles dans la chaine c'est :{nb_de_voyelles} vayelles.")

fonction_get_voyelles(chaine )

@Miloud51100
Copy link

Miloud51100 commented Apr 20, 2023 via email

@YaYdeYouTube
Copy link

Mon cerveau m'a sortie ça

def get_vowels_number(word):
    nb_of_vowels = 0
    for letter in word:
        if letter in ["a", "o", "i", "e", "u", "y"]:
            nb_of_vowels += 1

    return nb_of_vowels


word = input("Veuillez entrer un mot ")
print(" il y'a ", get_vowels_number(word), "voyelles")

@AlexisAmand
Copy link

Ma version !
J'ai une liste de voyelles plus importante, juste pour le programme puisse tenir compte de la casse des caractères.

# Tuto 06 de Graven : compteur de voyelles

def get_vowels_numbers():
    global mot
    global vowels
    vowels_count = 0
    for x in mot:
        if x in vowels:
            vowels_count += 1
    return vowels_count
 

vowels = ["a", "e", "i", "o", "u", "y", "A", "E", "I", "O", "U", "Y"]
mot = input("Entrez un mot: ")
print(f"Il y a {get_vowels_numbers()} voyelle(s) dans le mot {mot}.")

@deta1295
Copy link

Je vois que tout le monde a utiliser:
for letter in word:
if letter in vowell
etc...

Mais ou est ce qu'on a appris sa? J'arrive pas trouver.

@Tholkaanet
Copy link

Tholkaanet commented Jan 6, 2024

Voici ma version du code qui distingues les voyelles majuscules et minuscule là où beaucoup ont fait la faute, veuillez me précisez la présence ou non d'erreurs :


def get_vowel(word):

    vowel_upp = "AEIOUY"
    vowel_down = vowel_upp.lower()


    compteur_vowel = 0
    

    for x in word:
        if x in vowel_upp or x in vowel_down:
            compteur_vowel += 1

    return compteur_vowel


mot = str(input("Entrez un mot  : "))


print(f" Il y a {get_vowel(mot)} voyelles dans {mot}")

@TheFlomax
Copy link

J'ai développé ma réponse ainsi :

def get_vowels_numbers(mot):
    vowels_count = 0
    vowels_list = ['a', 'e', 'i', 'o', 'u', 'y', 'A', 'E', 'I', 'O', 'U', 'Y']

    for lettre in mot:
        if lettre in vowels_list:
            vowels_count += 1

    return vowels_count

mot = input("Enter un mot : ")
if get_vowels_numbers(mot) > 2:
    print("Il y a {} voyelles dans le mot {}.".format(get_vowels_numbers(mot), mot))
else:
    print("Il y a {} voyelle dans le mot {}.".format(get_vowels_numbers(mot), mot))

@Miloud51100
Copy link

Graven retire mon mail de ta liste de diffusion, je n'ai rien demandé, cela fait un moment que je te le demande, je suis tenté d'écrire à l'INPI

@BrumCmoua
Copy link

def get_vowels_numbers(word):
nb_vowels = 0
for lettre in word:
if lettre in ["a", "e", "i", "o", "u", "y", "A", "E", "I", "O", "U", "Y]":
nb_vowels += 1
return nb_vowels

word = input("Entrer votre mot : ")
vowels_count = get_vowels_numbers(word)
print("Il y a", vowels_count, "voyelles dans le mot", word)

@Miloud51100
Copy link

Miloud51100 commented May 10, 2024 via email

@anaconda347
Copy link

AVEC UN SYSTEME DE BOUCLE
running = True

while running:
def voyelle(word):
nb_voyelle = 0

    for letter in word:
     if letter in ['a','e','i','o','u','y']:
        nb_voyelle += 1

    return nb_voyelle

word = input("Entrer un mot")
result_voyelle = voyelle(word)
print("Il y a",result_voyelle,"dans le mot",word)

@themanpur
Copy link

Je me suis cassé la tete avec match ... case :)

Fonction qui calcul le nombre de voyelles dans un mot

def get_vowels_numbers(word):
count = 0
for character in list(word):
match character:
case 'a':
count += 1
case 'e':
count += 1
case 'i':
count += 1
case 'o':
count += 1
case 'u':
count += 1
case 'y':
count += 1

return count

print(get_vowels_numbers('bonjourno'))

@k0beyy
Copy link

k0beyy commented Aug 8, 2024

def get_vowels_numbers(word):
vowels_numbers = 0
for letter in word :
if letter in ['a','e','o','i','u','y']:
vowels_numbers += 1

return vowels_numbers

word = input("Entrer un mot")
vowels_count = get_vowels_numbers(word)
print("Il y'a", vowels_count, "voyelles dans le mot", word)

@Sensei-Snow
Copy link

Sensei-Snow commented Aug 22, 2024

def get_vowels(word):
    `number_vowel = 0`
    for letter in word:
        if letter in ["a", "e", "i", "o", "u", "y", "A", "E", "I", "O", "U", "Y"]:
            number_vowel += 1
    print("Il y a {} voyelles dans le mot {}.".format(number_vowel, word))

word = input("Entrez un mot : ")
get_vowels(word)

J'ai tenté un truc mais j'aurai besoin d'un peu d'aide. J'ai essayé d'écrire un mot avec des majuscules mais cela ne les a pas comptés alors j'ai rajouté les voyelles majuscules dans la liste. Cependant, j'aimerai savoir si il y a pas une formule magique pour faire ça. J'ai aussi testé avec le mot "Émotion" et il n'a pas compté le "É". Je me vois mal écrire toutes les formes de lettres dans la liste...

@eloge9
Copy link

eloge9 commented Oct 7, 2024

la fonction

def get_voyel_nombers(mot):

# création d'une liste de voyelle
list_voyels = ["a", "e", "i"
    , "u", "o", "y"
    , "é", "è", "î"
    , "ï", "ê", "ù"
    , "û", "ü", "à"
    , "â", "ä", "ô,"
    "ö"
    ]

# renistialisation du nombre de voyelle
nb_voyels = 0

# La boucle
for letre in mot:
    if letre in list_voyels:
        nb_voyels += 1
return nb_voyels

creation du mot

mot = input("enter un mot: ")

#affichage du resultat
if get_voyel_nombers() == 0:
print(f"il n'y a pas de voyelle dans le mot '{mot}' \n")
elif get_voyel_nombers() == 1 :
print(f"il y a une seul voyelle dans le mot '{mot}' \n")
else:
print(f"il y'a {get_voyel_nombers()}, dans le mot '{mot}' \n")

@MTO86
Copy link

MTO86 commented Jan 21, 2025

moi j'ai fait comme cela... ça m'a l'air pas trop long et plutôt efficace

def voy(a):
voyel = ["a","u","i","y","o","e"]
mot = a
nb_v = 0
for i in mot:
if i in voyel:
nb_v +=1
print("votre mot contient",nb_v," voyelles")

saisie = input("entré un mot")

voy(saisie)

@FlorentSylvestre
Copy link

moi j'ai fait comme cela... ça m'a l'air pas trop long et plutôt efficace

def voy(a): voyel = ["a","u","i","y","o","e"] mot = a nb_v = 0 for i in mot: if i in voyel: nb_v +=1 print("votre mot contient",nb_v," voyelles")

saisie = input("entré un mot")

voy(saisie)

Salut!
Ca fonctionne en effet bien
Je te propose deux suggestions pour améliorer ca:

  1. tu definis voy(a) puis stocke dans a dans mot a = mot. Tu n'as pas besoin de cette étape, tu peux directement faire for i in a.
    cependant, je te suggère de définir voy(mot) puis de faire for i in mot, qui est plus explicite sur ce que l'utilisateur doit donner a la fonction :)

  2. Plus une suggestion pour élargir: comme tu le fait actuellement, tu prends en compte uniquement les voyelle minuscles. Tu peux changer ca de deux manières:
    a) compléter ta liste: ["a","u","i","y","o","e"] en ajoutant les majuscules ou b) convertir le mot entré par l'utilisateurs en minuscule. Cela peut se faire avec la méthode "lowercase":
    saisie = input("entrez un mot")
    saisie = saisie.lowercase()

Tu trouvera aussi ailleur ici d'autre suggestion pour ajouter les accents par exemple

@MTO86
Copy link

MTO86 commented Jan 23, 2025

moi j'ai fait comme cela... ça m'a l'air pas trop long et plutôt efficace
def voy(a): voyel = ["a","u","i","y","o","e"] mot = a nb_v = 0 for i in mot: if i in voyel: nb_v +=1 print("votre mot contient",nb_v," voyelles")
saisie = input("entré un mot")
voy(saisie)

Salut! Ca fonctionne en effet bien Je te propose deux suggestions pour améliorer ca:

  1. tu definis voy(a) puis stocke dans a dans mot a = mot. Tu n'as pas besoin de cette étape, tu peux directement faire for i in a.
    cependant, je te suggère de définir voy(mot) puis de faire for i in mot, qui est plus explicite sur ce que l'utilisateur doit donner a la fonction :)
  2. Plus une suggestion pour élargir: comme tu le fait actuellement, tu prends en compte uniquement les voyelle minuscles. Tu peux changer ca de deux manières:
    a) compléter ta liste: ["a","u","i","y","o","e"] en ajoutant les majuscules ou b) convertir le mot entré par l'utilisateurs en minuscule. Cela peut se faire avec la méthode "lowercase":
    saisie = input("entrez un mot")
    saisie = saisie.lowercase()

Tu trouvera aussi ailleur ici d'autre suggestion pour ajouter les accents par exemple

Merci pour tes conseils 🙂 effectivement, je n'y avais pas pensé, je vais essayer cela des mon retour du taff 😜 bonne journée à toi.

@SkyDream-Ux
Copy link

Voici ma version cela fonctionne

def get_vowels_number(mots):
    global count
    vowels = ['a', 'e', 'i', 'o', 'u', 'y']
    for letter in mots:
        if letter in vowels:
            count += 1
    return count

count = 0
mots = input("quelle est ton mot ? ").lower()
print("Il y a {} voyelles dans le mots".format(get_vowels_number(mots)))

@LaudeDignus
Copy link

Voici mon code en tenant compte les lettres majuscules et minuscules.

vowels=['a','o','i','e','y','u']
def get_vowels_number(words):
    count=0
    for char in words:
        if char.lower() not in vowels:
            continue
        count+=1
    return count


word = input("Entrer un mot ")
vowels_count = get_vowels_number(word)
print("Il y a", vowels_count, "voyelles dans le mot", word)`

@Sborjah
Copy link

Sborjah commented Apr 1, 2025

J'ai ajouté la méthode lower() à input() pour permettre de tout convertir si l'on tape des chaines de caractères spécifiques. (é, E etc...)

def get_vowels_numbers(mot):                                #définition de la fonction get_vowels_numbers
  vowels_numbers = 0                                        #compteur de voyelles
  vowels_list = ["a", "e", "i"                              #liste des voyelles
, "u", "o", "y"
, "é", "è", "î"                                             
, "ï", "ê", "ù"
, "û", "ü", "à"
, "â", "ä", "ô,"
  "ö" 
]               
  for letters in mot:                                       #analyse de chaque lettre du mot et mise en minuscule pour éviter les erreurs
    if letters in vowels_list:                              #si la lettre est une voyelle
        print(letters)                        
        vowels_numbers += 1                                 #on incrémente le compteur de voyelles 
        print(vowels_numbers)                            
  return vowels_numbers                                     #on retourne le nombre de voyelles
  
mot = input("Veuillez entrer un mot: ").lower()                          #demande à l'utilisateur d'entrer un mot avec la mise en minuscule automatique
print(f"Le mot {mot} contient {get_vowels_numbers(mot)} voyelle(s)")     #affiche le nombre de voyelles du mot

@Sborjah
Copy link

Sborjah commented Apr 2, 2025

Hello @Sensei-Snow !
Tout d'abord voici les 16 voyelles en comptant les voyelles accentuées.
["a", "e", "i"
, "u", "o", "y"
, "é", "è", "î"
, "ï", "ê", "ù"
, "û", "ü", "à"
, "â", "ä", "ô,"
"ö" ]

De plus si tu veux lors de ton input() que toute les caractères saisis soient convertis en minuscules utilise la methode lower()

ex: word = input("Entrez un mot : ").lower()

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment