Maison > Article > développement back-end > Pourquoi Python ne peut-il pas commencer par un nombre ?
Tant que quelqu'un stipule quelque chose par écrit, il doit y avoir une raison, c'est-à-dire sa rationalité
Règles de dénomination des variables Python (Apprentissage recommandé : Tutoriel vidéo Python)
Les noms de variables ne peuvent contenir que des lettres, des chiffres et des traits de soulignement. Les noms de variables peuvent commencer par une lettre ou un trait de soulignement, mais pas par un chiffre. Par exemple, vous pouvez nommer une variable message_1, mais vous ne pouvez pas la nommer 1_message.
Les noms de variables ne peuvent pas contenir d'espaces, mais des traits de soulignement peuvent être utilisés pour séparer les mots. Par exemple, le nom de variable Greeting_message fonctionne, mais le nom de variable Greeting message génère une erreur.
N'utilisez pas de mots-clés et de noms de fonctions Python comme noms de variables, c'est-à-dire n'utilisez pas de mots réservés par Python à des fins spéciales, telles que l'impression.
Les noms de variables doivent être courts et descriptifs. Par exemple, name est meilleur que n, student_name est meilleur que s_n, name_length est meilleur que length_of_persons_name.
Utilisez les lettres minuscules l et majuscules O avec prudence, car elles peuvent être confondues avec les chiffres 1 et 0.
Remarque : les noms de variables Python en minuscules doivent être utilisés. Bien que l’utilisation de lettres majuscules dans les noms de variables ne provoque pas d’erreurs, il est conseillé d’éviter d’utiliser des lettres majuscules.
Alors pourquoi les variables ne peuvent-elles pas commencer par un nombre ? Cela doit être expliqué du point de vue des principes de compilation.
C'est ce à quoi j'ai soudainement pensé lorsque je faisais une analyse de script aujourd'hui. Expliquons d'abord notre outil d'analyse grammaticale. Le script à analyser est très simple et ne comprend que des opérateurs tels que &, |, ~, =, !=, () et {}. Au début, le principe de compilation a été adopté, dessinant NFA et DFA, trouvant le statut, puis écrivant une analyse lexicale pour générer le jeton. Ensuite, l'analyse syntaxique générera un arbre syntaxique basé sur la sémantique du jeton généré, et enfin l'évaluera. Après réflexion, ce script est très simple : il lui suffit de juger caractère par caractère et d'entrer différentes sous-fonctions à traiter lorsqu'il rencontre différents types de caractères. En même temps, il complète le processus d'analyse lexicale, d'analyse syntaxique et de traitement. évaluation. Cependant, quelle que soit la méthode utilisée, il est nécessaire de déterminer quel jeton est actuellement saisi en fonction des caractères lus. C'est le nœud du problème.
Pourquoi est-il essentiel de déterminer à quel jeton appartient un personnage ?
Supposons que nous annulions la restriction selon laquelle la définition du nom de variable ne peut pas commencer par un nombre à ce moment-là, lorsque l'analyseur lexical entre dans l'état de départ d'une analyse de jeton, si le premier caractère lu est un nombre. , alors l'analyseur lexical ne peut pas déterminer si le jeton qu'il analyse actuellement est un nom de variable ou une constante numérique. Eh bien, si vous dites que l'analyseur peut juger sur la base des caractères suivants, alors si le caractère suivant est une lettre, alors il est facile de déterminer que le jeton actuel appartient au nom de la variable (nous ignorerons les mots-clés réservés pour le moment étant), mais si le suivant Et si les caractères étaient tous des nombres ? L'analyseur ne pourra pas le dire car les nombres sont autorisés dans la définition des noms de variables.
Haha, ce que j'ai dit ci-dessus peut être alambiqué et difficile à comprendre. En termes simples, c'est : lors de l'analyse de la chaîne "123", si le nom de la variable permet que le premier caractère soit un nombre. , l'analyseur ne saura pas si "123" est une constante numérique ou un nom de variable.
Pour plus d'articles techniques liés à Python, veuillez visiter la colonne Tutoriel Python pour apprendre !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!