Vous pouvez le faire de plusieurs manières différentes, je mettrais un harnais. set
pour ce chemin de traverse :
import string
correct = {char for char in string.ascii_letters + string.digits}
def is_correct(text):
return {char for char in text}.issubset(correct)
print(is_correct('letters123')) # True
print(is_correct('???')) # False
print(is_correct('\n')) # False
Je vérifie simplement si set
constitué des caractères d'un texte donné est un sous-ensemble de set
de tous les caractères légaux. Gardez à l'esprit que cette méthode traite toujours l'ensemble du texte, ce qui n'est pas le mieux du point de vue des performances (car vous risquez de terminer la vérification après avoir trouvé le premier caractère illégal), mais cela ne devrait pas poser de problème, sauf si vous devez traiter des textes très longs ou en très peu de temps.