tablas tabla que para libreria hacer ejemplo crear con biblioteca python variable-names

tabla - Los nombres de variables en Python no pueden comenzar con un número o pueden?



que es python pandas (2)

El analizador de Python prohíbe nombrar las variables de esa manera, para analizar números y variables por separado, ya que nombrar una variable 1e1 crearía un caos, ¿es el número 10.0 o la variable 1e1 ?

"Python, por favor, déjame 1e1 !" - "¿Por qué es 10.0? ¡Guardé 100 allí!"

Pero las variables realmente se almacenan de una manera que permite unir una cadena que comienza con un número a un valor, porque esa característica no es perjudicial en los mapas de hashing de ningún tipo, por lo que al usar este "truco" puede lograr el número deseado. Variable de nombre prefijado sin dañar la capacidad de separación del analizador.

Yo diría que técnicamente, nombrar las variables de esa manera no es una violación de las directrices de Python, pero es altamente desaconsejable y, por regla general, innecesario. El uso de variables globals para inyectar variables se conoce como una práctica muy mala y este caso no debe ser un hecho sobresaliente.

Por supuesto, python podría haber usado un encierro para números como cadenas, digamos *123* , pero creo que la intención de inventar python fue hacer la programación más fácil, no estirar los límites del espacio de nombres de variables.

Hablando de manera práctica, si debe usar nombres con encabezados numéricos, es mejor que lo haga con su propio diccionario, en lugar de los globals :

>>> number_headed_vars = {''1a'': 100} >>> number_headed_vars[''1a''] 100

De esa manera, puede crear su propio sistema de variables y evitar abusar de las variables globals() .

Esto es algo académico, pero sin embargo.

La sintaxis de Python prohíbe iniciar un nombre de variable con un número. Pero esto se puede eludir así:

>>> globals()[''1a''] = 1 >>> globals()[''1a''] 1

Igualmente para los locals() .

¿Eso significa que Python en realidad lo permite, pero no es muy visible?

editar:

Mi pregunta no es si está permitido. Soy consciente de que no está permitido formalmente en Python. La pregunta es por qué puedo solucionarlo abordando globals() directamente, y si eso rompe otras reglas o pautas, ¿puede incluso tener una buena razón / aplicación para permitir eso?


Esto es lo que puedes y no puedes hacer con ese 1a en los globales. Realmente no puede usarlo en una variable, a menos que use toda su definición en globales (me refiero a acceder a ese diccionario), lo que lo hace muy incómodo para el uso (otra razón para no hacerlo).

Básicamente, 1a no es una variable real como a1 , como se muestra en la siguiente salida:

>>> globals()[''1a''] = 1 >>> globals()[''1a''] 1 >>> a = 1a File "<stdin>", line 1 a = 1a ^ SyntaxError: invalid syntax >>> a = globals()[''1a''] >>> a 1 >>> globals()[''a1''] = 5 >>> a = a1 >>> a 5