Variables de Python, ¿son contenedores o etiquetas?

Tutoriales introductorios, código fuente del caso, materiales de aprendizaje, lectores

Visite:  python666.cn

¡Hola a todos, bienvenidos al salón de clases de programación de Crossin!

La última vez, hablamos un poco sobre los conceptos básicos de las variables en Python. Sigamos con este tema hoy.

1. Asignación de variables

Como se mencionó anteriormente, el operador de "asignación" en Python es un signo igual (=). Se puede crear una variable a través de una operación de asignación y también se puede modificar un valor existente de una variable.

Entonces alguien dirá:

¿Por qué se puede asignar a = 1, pero 1 = a informará un error? ¿No es todo una ecuación?

Esto se debe a que el operador de asignación de Python (=) no es equivalente a la igualdad en matemáticas. En matemáticas, la ecuación satisface la ley conmutativa y no hay problema en intercambiar los lados izquierdo y derecho. Pero la asignación en programación es direccional, que consiste en asignar el resultado del lado derecho del signo igual a la variable de la izquierda.

Después de comprender la direccionalidad de la asignación, muchas gramáticas son fáciles de entender:

a = 1

Es asignar el valor 1 de la derecha a la variable a de la izquierda, que está bien.

1 = a

El lado derecho es el valor de la variable a, lo cual está bien, pero el valor asignado al lado izquierdo es un valor que no funciona, por lo que se informa un error.

Debido a que el "resultado" de la derecha se asigna a la variable de la izquierda, el lado derecho puede ser no solo un valor fijo, sino también una fórmula de cálculo:

a = 1 + 2 * 3 ** 4 / 5

Este cálculo también puede contener variables:

b = 3
a = b * 2 + 3

Incluso puede tener funciones, siempre que la propia fórmula de cálculo sea ejecutable:

a = input() + 'abc'

Por lo tanto, la propia variable asignada también se puede utilizar como parte de la fórmula de cálculo de la derecha:

a = 2
a = a + 1

Esta fórmula obviamente no es válida desde el punto de vista matemático, pero es muy común en programación, y su función es aumentar el valor de la variable a en 1.

También tiene una forma simplificada de escribir:

a += 1

También hay -=, *=, /=, %=, //= y así sucesivamente.

Si ha estudiado C++, debe saber que hay una forma más simplificada de escribir esta declaración que incrementa la variable en 1:

a++

Pero lo siento, esto es Python, no puedes escribir así.

En cuanto a la igualdad en matemáticas, Python tiene un operador de comparación más cercano (==), como:

a == 1
2 == a
1 + 3 == a + 3

Se utiliza para juzgar (==) si los resultados del cálculo de los lados izquierdo y derecho son iguales y si el resultado es Verdadero o Falso. Hablemos de esto la próxima vez.

2. Una variable de Python no es un "contenedor"

Lo que sigue es un poco más avanzado.

Después de comprender el uso de las variables, muchas personas pueden pensar en las variables como un "recipiente" para almacenar datos, como una taza. La asignación es verter bebidas en él y la reasignación es servir otras bebidas.

Esta comprensión no es problema en un lenguaje como C++. Debido a esto, C++ necesita "definir" las variables antes de usarlas para determinar el tipo, y el programa asignará el espacio de memoria correspondiente.

Desafortunadamente, esta comprensión es incorrecta en Python.

Las variables en Python no son tanto un contenedor de datos como una etiqueta adjunta a los datos.

Las variables no ocupan espacio, son los propios datos los que ocupan espacio. Cuando reasignas, es equivalente a arrancar la etiqueta y pegar otro dato.

Todo en Python es un objeto , incluidas funciones, clases, módulos, incluso la cadena 'hola', y los números 1, 2 y 3 son todos objetos.

Para ilustrar con un ejemplo:

a = 1
b = 2
c = 1
# 再次赋值
a = b

En este código, a y c en realidad apuntan al mismo objeto: el número entero 1. Después de asignar un valor a b, a se convierte en una etiqueta que apunta a 2, pero ni 1 ni c se verán afectados.

Diagrama esquemático:

8249a916f88e1e48f2351cfe4392e844.jpeg

Una verificación un poco más convincente:

a = 1
print('a', a, id(a))
b = 2
print('b', b, id(b))
c = 1
print('c', c, id(c))
# 再次赋值
a = b
print('a', a, id(a))

producción:

a 1 4301490544
b 2 4301490576
c 1 4301490544
a 2 4301490576

 Se puede pensar que id() obtiene la dirección de un objeto. Puede verse que a y c son en realidad la misma dirección al principio, y después de la asignación, a y b son la misma dirección.

Cada vez que se reasigna una variable, apunta a una nueva dirección, que no tiene nada que ver con la dirección original.

Para una explicación detallada al respecto, puede consultar los artículos anteriores:

¿Qué más quieres saber sobre la asignación de variables en Python? Bienvenido a discutir en el área de mensajes.


El siguiente es el tiempo del video, invitamos a todos a prestar atención, dar me gusta y reenviar:


El nuevo libro de Crossin " Action on Code: Learning PYTHON Programming from Zero Basics (CHATGPT Edition) " ya está en el mercado.

0018fa616b2ccb144fe88752ac4811be.jpeg

Este libro se esfuerza por ser fácil de entender, para que los "principiantes" de base cero que no tienen ninguna experiencia en programación puedan aprender Python. El contenido comienza con los pasos más básicos de la construcción del entorno y, gradualmente, profundiza en las aplicaciones prácticas comunes. Mientras explica los puntos de conocimiento, está equipado con ejemplos de código correspondientes, para que los lectores puedan aprender y practicar para profundizar su comprensión. El libro también utiliza de manera innovadora ChatGPT como ayuda para el aprendizaje de la programación, lo que lleva a los lectores a explorar un nuevo modo de aprender a programar en la era de la IA.

Los lectores y amigos de la cuenta oficial pueden contactarme en segundo plano después de la compra y unirse al grupo de intercambio de lectores. Crossin abrirá el modo de lectura adjunto para usted y responderá todas sus preguntas al leer este libro.

Gracias por retuitear y dar me gusta ~


_Recomendación artículo anterior_

Conceptos básicos de las variables de Python


Si desea obtener información sobre cursos de calidad pagados y servicios de preguntas y respuestas de enseñanza

Por favor responda en el aula de programación de Crossin : 666

d4c2c84ab1d1b157bed77170a628e679.jpeg

Supongo que te gusta

Origin blog.csdn.net/qq_40523737/article/details/131778133
Recomendado
Clasificación