Alguien podría decirme donde está el error (IA-IA-OU)


#1



https://www.codecademy.com/es/courses/python-beginner-es-71SqJ/1/3?curriculum_id=50fc7aab5fab3aa9c2002444#


Por qué al escribir una palabra que NO inicie con vocal no se reconoce como consonante la primera letra de la palabra


pyg = 'ei'

original = raw_input('Escribe una palabra:')

if len(original) > 0 and original.isalpha():
    palabra = original.lower()
    primera = palabra[0]
	
    if primera == 'a' or 'e' or 'i' or 'o' or 'u':
        print ("vocal")
    else:
        print ("consonante")
else:
	print 'vacio'


#2

Bueno, no se cual era la solución en esos niveles. Yo voy algo más avanzado y utilicé un "for" para resolver esta duda.

pyg = 'ei'

original = raw_input('Escribe una palabra:')

if len(original) > 0 and original.isalpha():
    palabra = original.lower()
    primera = palabra[0]
    vocal=['a','e','i','o','u']
    resultado=0
    for x in vocal:
        if primera == x:
            resultado+=1
    if resultado>0:
        print ("vocal")
    else:
        print ("consonante")
else:
	print 'vacio'

"For" es un bucle. Creé la lista vocal, donde incluí todas las vocales. Inicié el bucle dentro de vocal. El bucle actúa desde el primer elemento hasta el último, pero en cada ciclo hace cosas. Lo que hace se codifica debajo (a continuación de los dos puntos en las siguientes líneas).

Si la primera letra coincide con alguna vocal incluida dentro de la lista "vocal", añadirá un 1 en una variable llamada resultado. Es una especie de memoria digamos. Cuando acaba de comprobar la lista "vocal" sale del bucle. A continuación comprueba si "resultado" es mayor que 1, vamos, si encontró alguna vocal como primera letra. Si es así, imprime "vocal" en la pantalla. Sino, "consonante"

No se si te ayudará demasiado pero bueno, espero que sí xDD


#3

Muchas gracias!!!!
Pero aún no llegamas a los bucles, aprecio tu ayuda de todos modos me sirve para el futuro.


#4

De todas formas tu problema está en los "or" que pones. De forma más rudimentaria evitando poner el or con la forma que tenía lo que pusiste funciona bien:

pyg = 'ei'

original = raw_input('Escribe una palabra:')

if len(original) > 0 and original.isalpha():
    palabra = original.lower()
    primera = palabra[0]
	
    if primera == 'a':
        print ("vocal")
    elif primera =='e':
        print 'vocal'
    elif primera == 'i':
        print 'vocal'
    elif primera == 'o':
        print 'vocal'
    elif primera== 'u':
        print 'vocal'
    else:
        print ("consonante")
else:
	print 'vacio'

Saludos


#5

Muchas graciaaaas!!!


#6

Yo lo hice comparando cada letra así: if primera == "a" or primera == "e"... y así con todas las vocales


#7

Hola Marcos, yo lo hice con un if anidado y varios or

pyg = 'ei'

original = raw_input('Escribe una palabra:')

if len(original) > 0 and original.isalpha():
palabra = lower.original
primera = palabra[0]
if primera==a or primera==e or primera==i primera==o or primera==u:
print 'Vocal'
elseif len(original) > 0 and original.isalpha()
print 'Consonante'
else print 'vacio'

Espero que a alguien mas le sea de utilidad.

Saludos.


#8

Hola buenas tardes, yo lo tengo así:

pyg = 'ei'

original = raw_input('Escribe una palabra:')

if len(original) > 0 and original.isalpha():
	palabra = original.lower()
	primera = palabra[0]	
	if primera == "a" or primera == "e" or primera == "i" or primera == "o" or primera == "u":
	    print "vocal"

	elif len(original) > 0 and original.isalpha():
	    print "consonante"
else:
	print 'vacio'

y me da error:

Escribe una palabra: 
vacio
None

Siempre me acaba diciendo que:
¡Uy! Probá otra vez. Asegúrate de que la variable 'palabra' aún existe.

He probado de todas las formas que habéis indicado y ninguna me da correcto.
¿Dónde está el fallo? ¿O es que el programa va mal?
Por favor, necesito una solución.
Gracias.


#9

Hola, yo use el mismo codigo pero si declaraba "a" or "e" or ... me saltaba un error, asi que hice lo siguiente:

pyg = 'ei'

original = raw_input('Escribe una palabra:')
if len(original) > 0 and original.isalpha():
palabra = original.lower()
if palabra[0]=="a" or palabra[0]=="e" or palabra[0]=="i" or palabra[0]=="o" or palabra[0]=="u":
print "vocal"
else:
print "consonante"
else:
print "Vacio"