#!usr/bin/env python
def vocales(string):
if "A" or "a" or "E" or "e" or "I" or "i" or "O" or "o" or "U" or "u" in string:
nvocalesami = (string.count("a"))
nvocalesama = (string.count("A"))
nvocalesemi = (string.count("e"))
nvocalesema = (string.count("E"))
nvocalesimi = (string.count("i"))
nvocalesima = (string.count("I"))
nvocalesomi = (string.count("o"))
nvocalesoma = (string.count("O"))
nvocalesumi = (string.count("u"))
nvocalesuma = (string.count("U"))
part1 = (nvocalesami + nvocalesama + nvocalesemi + nvocalesema + nvocalesimi + nvocalesima)
part2 = (nvocalesomi + nvocalesoma + nvocalesumi + nvocalesuma)
todo = (part1 + part2)
return ("Hay",todo,"vocales en la frase")
else:
return("No hay vocales en la frase")
Tengo un problema con este codigo al utilizar la funcion vocales con un argumento sin vocales por ejemplo:
Salida
vocales(r)
Hay 0 vocales en la frase
-----------------------
Porque no sale "No hay vocales en la frase"?
el if está mal...
colocaré parentesis para que entiendas el alcance de cada operador
if( ("A") or ("a") or ("E") or ("e") or ("I") or ("i") or ("O") or ("o") or ("U") or ("u" in string) ):
siempre será cierto porque todo diferente a 0 es True...
Hola, como dice @engel_lex el condicional está muy mal, y no solo eso, sino que si intentas seguir con esa lógita, el condicional te quedará MUY grande, así que te recomiendo otra opción, listas por conprensión. (Hay muchas otras formas de hacerlo). Te dejo un ejemplo:
vocales = "AEIOUaeiou"
string = "Hola"
a = [x for x in vocales if x in string]
print(a)
Saludos!