Imprimir solo vocales en una cuerda

Soy nuevo en Python y estoy tratando de imprimir todas las vocales en una cadena. Así que si alguien escribe “Oye, ¿todo bien?” , todas las vocales necesitan ser impresas … pero no sé cómo? (así que no se trata de contar las vocales, se trata de imprimir las vocales)

Por ahora tengo esto;

sentence = input('Enter your sentence: ' ) if 'a,e,i,o,u' in sentence: print(???) else: print("empty") 

¿Algo como esto?

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

Las dos respuestas son buenas si desea imprimir todas las apariciones de las vocales en la oración, por lo que “Hello World” imprimiría ‘o’ dos veces, etc.

Si solo te interesan las vocales distintas , puedes alternar las vocales. En cierto sentido, estás cambiando el código sugerido por las otras respuestas:

 sentence = input('Enter your sentence: ') for vowel in 'aeiou': if vowel in sentence: print(vowel) 

Entonces, “oye, ¿todo bien?” imprimiría

 aei 

Opuesto a:

 eeeeeiai 

Y la misma idea, pero siguiendo el método de Jim de desempacar una lista de comprensión para print :

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

Siempre puedes usar 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") 

Proporcionar proporcionar una lista de comprensión para print y desempaquetar:

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

Esto hace una lista de todas las vocales y la proporciona como argumentos posicionales a la llamada de impresión desempaquetando * .

Si necesita vocales distintas, simplemente proporcione un conjunto de comprensión:

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

Si necesita agregar la cláusula else que se imprime, pre-construya la lista y actúe según si está vacía o no:

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