2016-11-06 2 views
0

Je veux que l'utilisateur puisse entrer une chaîne de caractères (je sais comment faire)Comment imprimer la voyelle la moins utilisée dans une chaîne?

Puis je veux que Python compte combien de fois chaque voyelle (aeiou) est utilisée. Après avoir compté combien de fois chaque voyelle est utilisée, j'ai besoin du programme pour renvoyer la voyelle/s la moins utilisée qui est utilisée au moins une fois. Si une voyelle n'est pas utilisée, elle ne doit pas être retournée. En cas d'égalité pour le moins utilisé, les deux doivent être retournés.

Si aucune voyelles sont utilisées, il faut imprimer un code d'erreur « Aucune voyelles ont été utilisés » (je sais comment faire)

Par exemple: Si cela est combien de fois les voyelles ont été utilisés dans une phrase :

a=4 
b=2 
c=0 
d=0 
e=2 

Il devrait imprimer "Les voyelles les moins utilisées étaient b et c, avec 2 utilisations".

Répondre

1

Vous pouvez:

  1. Supprimer tous les caractères non-voyelles de la chaîne.
  2. Divisez la chaîne par des caractères. Utilisez le Counter sur la liste que vous avez obtenue # 2.

import re 
from collections import Counter 
s = 'asdfwerasdfwaxciduso' 
only_vowels = re.sub(r"[^aeiou]", "", s) 
c = Counter(list(only_vowels)) 
c.most_common()[-1] 
+0

C'est vraiment très utile ... Merci. La seule chose que ce codage ne me laisse pas faire est la suivante: Si la voyelle la moins utilisée est utilisée le même nombre de fois qu'une autre voyelle, alors les deux voyelles doivent être imprimées. Comment puis-je faire ceci? –

+0

Je ne trouve pas votre réponse à mon commentaire? Comment imprimer les deux voyelles s'il y a plus d'une voyelle moins commune? Autre que cela - la réponse parfaite. Je vais marquer comme réponse acceptée bientôt - vous donnera la chance de répondre car je ne sais toujours pas comment imprimer plusieurs voyelles moins communes! –

+0

Merci pour l'aide par le chemin –

0

Faites-le à la dure - lettre par lettre. Itérer sur la chaîne avec une boucle for et pour chaque lettre incrémenter une valeur de dictionnaire. À la fin, vérifiez les touches avec les voyelles et trouvez le plus petit.

+0

Merci - Comment puis-je d'ignorer toutes les voyelles qui ont été utilisées zéro fois? –

+0

Si une lettre n'est pas utilisée, elle n'a pas de clé. Utilisez un defaultdict de Collections avec une valeur par défaut de 1 afin de ne pas paniquer en essayant d'en ajouter une la première fois. – zenlc2000

+0

Remerciements - dernier Q - supposons que deux voyelles partagent la même valeur, la plus basse. Comment puis-je l'obtenir pour imprimer les deux? –