s2Eva_IT2005_T3 Adivina palabra (ahorcado)

Ejercicio: 2Eva_IT2005_T3 Adivina palabra (ahorcado)

Instrucciones en Python

# 2Eva_IT2005_T3 Adivina palabra (ahorcado)
# ICM00794-Fundamentos de Computación - FCNM-ESPOL
# propuesta: edelros@espol.edu.ec

def esvocal(letra):
    letra = letra.upper()
    vocal = 'AEIOU'
    tipo = 0
    if letra in vocal:
        tipo = 1
    return(tipo)

# INGRESO
palabra = input('¿Cuál palabra?: ')
m = len(palabra)
while m>9:
    print(' palabra de hasta 9 letras')
    palabra = input('¿Cuál palabra?: ')
    m = len(palabra)

# PROCEDIMIENTO
m = len(palabra)
palabra = palabra.upper()
cadena  = ''
vocal ='AEIOU'
falla = 0

i = 0
while i<m:
    cadena = cadena + str(i+1)
    i = i + 1

# una letra
j = 0
while (j<m) and falla<5:
    letra = palabra[j]
    cual  = esvocal(letra)
    if cual==1:
        pista = ' es vocal'
    else:
        pista = ' es consonante'
    print(cadena)
    print(str(j+1)+pista + ', fallas:'+str(falla))

    unaletra = input('¿cuál letra?: ')
    unaletra = unaletra.upper()

    if unaletra == letra:
        print(' adivinado..!')
        j = j + 1
        nueva = palabra[0:j]+cadena[j:]
        cadena = nueva
    else:
        print(' fallaste, no es la letra..!')
        falla = falla + 1

if falla>=5:
    print(' Fallaste 5 veces, perdiste..!')
else:
    print(' Felicitaciones, ganaste...!!')

Tarea: validar que el ingreso del usuario sea de una sola letra.

resultado del algoritmo

¿Cuál palabra?: conocimiento
 palabra de hasta 9 letras
¿Cuál palabra?: sabiduria
123456789
1 es consonante, fallas:0
¿cuál letra?: s
 adivinado..!
S23456789
2 es vocal, fallas:0
¿cuál letra?: i
 fallaste, no es la letra..!
S23456789
2 es vocal, fallas:1
¿cuál letra?: o
 fallaste, no es la letra..!
S23456789
2 es vocal, fallas:2
¿cuál letra?: a
 adivinado..!
SA3456789
3 es consonante, fallas:2
¿cuál letra?: x
 fallaste, no es la letra..!
SA3456789
3 es consonante, fallas:3
¿cuál letra?: y
 fallaste, no es la letra..!
SA3456789
3 es consonante, fallas:4
¿cuál letra?: z
 fallaste, no es la letra..!
 Fallaste 5 veces, perdiste..!
>>>