si se puede en python , no hay ninguna necesidad de usar objetos.EL programa que pusiste funciona con dos o tres animales maximo por eso es muy simple , si aprendiera ya es algo (mucho)mas complejo xD.
yo lo enfocaria de esta forma
supon que tienes una lista de animales marcados con caracteristicas propias(solo de este) y generales(compartidas por muchos animales)por ejemplo si son acuaticos o terrestres esas serian compartidas por muchos animales hasta las mas especificas compartidas por unos pocos o ninguno por ejemplo si son "el mejor amigo del hombre xD"
Entonces las preguntas irian desde lo mas general a lo mas especifico descartando a los animanes que no poseen esas cualidades hasta llegar a las propias..
en caso de que el animal no exista entonces el usuario nos habra dado mucha informacion sobre este animal a medida que va contestando preguntas(cuando se han contestado todas las caracteristicas generales y no cumple ninguna de las propias sabremos que no existe xD)
Asi que se guardarian todas las caracteristicas generales que respondio el usuario y se le pregunta por una propia del animal. para agregarlo a la base de datos
si por ejemplo el usuario dice "tiene alas" lo marcaremos dentro de los animales que poseen esta caracteristica. y asi con cada caracteristica general que nos dio el usuario , ademas de preguntarle una especifica