>Me parece que para una verificación rápida, bastaría con type([expresión del usuario]) # "U".No. Eso solo mira que el resultado sea "válido". O sea que retorne algo diferente a "U".
Retornar "L" por ejemplo y que sea .T. no dice mucho sobre lo que el usuario entró. Puede ser código malicioso que retorne .T.
Por ello, el debe verificar que la expresión en si sea válida (o al menos tenga algun sentido en su caso particular).