2016-09-10 1 views
2

Je suis nouveau en Python et j'essaie d'imprimer toutes les voyelles dans une chaîne. Donc, si quelqu'un entre "Hey là-bas, tout va bien?" , toutes les voyelles doivent être imprimées ... mais je ne sais pas comment? (donc il ne s'agit pas de compter les voyelles, c'est d'imprimer les voyelles)Imprimer uniquement les voyelles dans une chaîne

Pour l'instant j'ai ceci;

sentence = input('Enter your sentence: ') 

if 'a,e,i,o,u' in sentence: 
    print(???) 

else: 
    print("empty") 
+0

S ee [Suppression de consonnes d'une chaîne en Python] (http://stackoverflow.com/questions/29998052/deleting-consonants-from-a-string-in-python) pour une variété de techniques utiles qui peuvent être appliquées à ce problème . –

Répondre

2

Quelque chose comme ça?

sentence = input('Enter your sentence: ') 
for letter in sentence: 
    if letter in 'aeiou': 
     print(letter) 
+0

Merci, c'est ... Merci de m'avoir aidé! – Ruben

0

fournir une offre une compréhension de la liste print et décompressez-le:

>>> s = "Hey there, everything allright?" # received from input 
>>> print(*[i for i in s if i in 'aeiou']) 
e e e e e i a i 

Cela fait une liste de toutes les voyelles et fournit comme arguments de position à l'appel d'impression par le déballage *.

Si vous avez besoin voyelles distinctes, seulement l'offre une compréhension de jeu:

print(*{i for i in s if i in 'aeiou'}) # prints i e a 

Si vous devez ajouter la clause else qui imprime, avant de construire la liste et d'agir sur elle selon si elle est vide ou non :

r = [i for i in s if i in 'aeiou'] 
if r: 
    print(*r) 
else: 
    print("empty") 
1

les deux réponses sont bonnes si vous voulez imprimer tous les occurrences des voyelles dans la phrase - donc « Bonjour tout le monde » imprimerait « o » deux fois, etc.

Si vous vous souciez seulement de distinctes voyelles, vous pouvez à la place boucle sur les voyelles. Dans un sens, vous renversant le code suggéré par les autres réponses: « Hé, tout va bien »

sentence = input('Enter your sentence: ') 

for vowel in 'aeiou': 
    if vowel in sentence: 
     print(vowel) 

Ainsi, imprimerait

a e i 

Contrairement à:

e e e e e i a i 

Et la même idée, mais après la méthode de Jim de déballer une compréhension de la liste print:

print(*[v for v in 'aeiou' if v in sentence]) 
0

Vous pouvez toujours utiliser RegEx:

import re 

sentence = input("Enter your sentence: ") 
vowels = re.findall("[aeiou]",sentence.lower()) 

if len(vowels) == 0: 
    for i in vowels: 
     print(i) 
else: 
    print("Empty")