Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: BigKaz en 13 Diciembre 2016, 22:25 pm



Título: (PYTHON 3.5) Else no funcona
Publicado por: BigKaz en 13 Diciembre 2016, 22:25 pm
Código
  1. #!usr/bin/env python
  2. def vocales(string):
  3. if "A" or "a" or "E" or "e" or "I" or "i" or "O" or "o" or "U" or "u" in string:
  4. nvocalesami = (string.count("a"))
  5. nvocalesama = (string.count("A"))
  6. nvocalesemi = (string.count("e"))
  7. nvocalesema = (string.count("E"))
  8. nvocalesimi = (string.count("i"))
  9. nvocalesima = (string.count("I"))
  10. nvocalesomi = (string.count("o"))
  11. nvocalesoma = (string.count("O"))
  12. nvocalesumi = (string.count("u"))
  13. nvocalesuma = (string.count("U"))
  14. part1 = (nvocalesami + nvocalesama + nvocalesemi + nvocalesema + nvocalesimi + nvocalesima)
  15. part2 = (nvocalesomi + nvocalesoma + nvocalesumi + nvocalesuma)
  16. todo = (part1 + part2)
  17. return ("Hay",todo,"vocales en la frase")
  18. else:
  19. return("No hay vocales en la frase")
  20.  

Tengo un problema con este codigo al utilizar la funcion vocales con un argumento sin vocales por ejemplo:

Salida
Código
  1. vocales(r)
  2. Hay 0 vocales en la frase
-----------------------
Porque no sale "No hay vocales en la frase"?


Título: Re: (PYTHON 3.5) Else no funcona
Publicado por: engel lex en 13 Diciembre 2016, 22:39 pm
el  if está mal...

colocaré parentesis para que entiendas el alcance de cada operador


Código
  1. 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...


Título: Re: (PYTHON 3.5) Else no funcona
Publicado por: Once en 14 Diciembre 2016, 20:44 pm
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:

Código
  1. vocales = "AEIOUaeiou"
  2. string = "Hola"
  3.  
  4. a = [x for x in vocales if x in string]
  5.  
  6. print(a)

Saludos!