La jeune Ada, fascinée par votre robot, a écrit plusieurs programmes, mais elle a souvent des difficultés avec les noms de variables : elle a du mal à savoir si un nom de variable est correct ou pas.
Ada utilise, elle, le langage C++ pour programmer et la règle pour les noms de variables dans ce langage est la suivante : le nom de variable doit commencer par une lettre non accentuée ou un caractère _
, et chacune des lettres suivantes est soit une lettre non accentuée, soit un _
, soit un chiffre.
La longueur de chaque nom proposé ne dépassera pas 100 caractères.
La première ligne contient l’entier nbNoms
. Les nbNoms
lignes suivantes contiennent chacune un nom de variable possible.
Aucun des noms de variable possibles ne sera un mot-clef du langage. Vous n’avez donc pas à vous en occuper.
Vous devez afficher nbNoms
lignes sur la sortie, indiquant dans l'ordre où ils sont donnés en entrée, si les noms proposés sont valides.
Affichez le texte "YES" pour un identifiant valide et "NO" pour un identifiant invalide.
entrée :
5 Bonjour32 r~ussi _toto_ passe-partout 2_fois
sortie :
YES NO YES NO NO
def est_valide(nom: str) -> bool: """Renvoie si 'nom' est un identifiant valide. >>> est_valide("Bon_jour32") True >>> est_valide("32Bonjour") False """ if not(('a' <= nom[0] <= 'z') or ('A' <= nom[0] <= 'Z') or (nom[0] == '_')): return False for i in range(1, len(nom)): if not( ('a' <= nom[i] <= 'z') or \ ('A' <= nom[i] <= 'Z') or \ (nom[i] == '_') or \ ('0' <= nom[i] <= '9')): return False return True nb_noms = int(input()) for _ in range(nb_noms): nom = input() if est_valide(nom): print("YES") else: print("NO")
\
, et poursuivie à la ligne suivante.nb_noms = int(input()) for _ in range(nb_noms): nom = input() print("YES" if est_valide(nom) else "NO") # pas d'erreur, il n'y a pas de ':'
# factorisation maximale, mais moins lisible for _ in range(int(input())): print("YES" if est_valide(input()) else "NO")