edubun
Español

Valores y variables

En álgebra, score = score + 5 no tiene solución. En Python es una línea de todos los días: si score valía 10, pasa a valer 15.

El signo = no significa «es igual a»

Muéstrale a un estudiante de matemáticas la línea score = score + 5 y te dirá que es falsa: ningún número es igual a sí mismo más cinco. Tiene razón en álgebra, y por eso mismo la línea confunde la primera vez que se ve en un programa. En Python, = no afirma que dos cosas sean iguales. Es una instrucción con dirección. Se calcula primero el lado derecho y luego se asocia el nombre de la izquierda con el resultado.

score = 10
score = score + 5
print(score)
Salida
15

Léela como lo hace Python. Línea 1: el lado derecho es 10, así que el nombre score ahora se refiere a 10. Línea 2: el lado derecho es score + 5, que es 10 + 5, que es 15, así que score ahora se refiere a 15. El 10 anterior desaparece. La línea 3 imprime a qué se refiere score en ese momento. Un nombre que se refiere a un valor de esta manera se llama variable, y la línea que le da un valor es una asignación.

Una variable funciona como una etiqueta con un nombre. Después de score = score + 5, la etiqueta pasa al nuevo valor 15; el valor anterior, 10, queda atrás.

Una tabla de seguimiento sigue cada variable línea por línea

Cuando cambian varias variables, lleva una tabla de seguimiento: una fila por cada línea de código, una columna por cada variable, y anota el valor que tiene cada variable después de ejecutarse esa línea. Es lento, pero funciona. La mayoría de las preguntas del tipo «¿por qué imprime eso?» se resuelven con una tabla de seguimiento en menos de un minuto.

score = 10
bonus = score * 2
score = 0
print(score, bonus)
Salida
0 20
Líneascorebonus
score = 1010(aún ninguno)
bonus = score * 21020
score = 0020
print(score, bonus)020

Mira las dos últimas filas. Cambiar score a 0 no cambió bonus. Cuando se ejecutó la línea 2, Python calculó 10 * 2 = 20 y le dio ese número a bonus. bonus guarda el resultado, no la receta, así que no recuerda de dónde salió el 20.

Todo valor tiene un tipo

Los valores se agrupan en categorías llamadas tipos. Los números enteros como 42 son int. Los números con punto decimal, como 3.5, son float. El texto entre comillas es str. True y False son bool. La función integrada type te dice cuál tienes. El tipo importa porque decide qué hace una operación: 2 + 3 suma, mientras que "2" + "3" une dos cadenas en "23".

print(type(42))
print(type(3.5))
print(type("42"))
print(type(True))
print(2 + 3, "2" + "3")
Salida
<class 'int'>
<class 'float'>
<class 'str'>
<class 'bool'>
5 23

Reglas para los nombres

Un nombre de variable puede usar letras, dígitos y el guion bajo _, pero no puede empezar con un dígito ni contener espacios. Las mayúsculas cuentan como letras distintas, así que Score y score son dos variables separadas. Algunas palabras, como if, for y True, pertenecen al lenguaje y no se pueden usar como nombres. Los programadores de Python suelen escribir los nombres en minúsculas con guiones bajos entre palabras, como lunch_price, y eligen nombres que dicen qué significa el valor. x sirve para una prueba rápida, y seats_left es mejor en un programa que leerá otra persona.

a = "left"
b = "right"
a, b = b, a
print(a, b)
Salida
right left

El último ejemplo intercambia dos valores en una línea. Python calcula primero todo el lado derecho, b, a, y solo después asigna los dos resultados a las variables a y b. Muchos otros lenguajes necesitan una tercera variable para hacer lo mismo.

variableUn nombre que se refiere a un valor
asignaciónnombre = valor: se calcula el lado derecho y luego se asocia el nombre
intNúmeros enteros: 7, -3, 2026
floatNúmeros con punto decimal: 3.5, 0.1
strTexto entre comillas
boolTrue o False
tabla de seguimientoUna tabla con el valor de cada variable después de cada línea
  1. ¿Qué imprime esto?
    x = 4
    x = x + 3
    print(x)
  2. ¿Qué imprime esto?
    a = 3
    b = a
    a = 7
    print(b)
  3. ¿Qué imprime esto?
    price = 1500
    count = 3
    total = price * count
    print(total)
  4. ¿Qué imprime esto?
    n = 2
    n = n * n
    n = n * n
    print(n)
    • 4
    • 8
    • 16
    • 2
  5. ¿Qué imprime esto?
    print(type(7.0))
  6. ¿Qué imprime esto?
    print("7" + "7")
  7. ¿Cuál de estos es un nombre de variable válido?
    • 2nd_place
    • seats left
    • seats_left
    • for
  8. ¿Qué imprime esto?
    a = "left"
    b = "right"
    a, b = b, a
    print(b)
  9. ¿Qué imprime esto?
    Score = 5
    score = 9
    print(Score)
    • 5
    • 9
    • 14
    • Un error
  10. Después de x = 10 y luego x + 1 en una línea sola, ¿cuánto vale x?
    • 10
    • 11
    • x + 1
    • Un error
Errores frecuentes
  • «5 = x y x = 5 significan lo mismo». El nombre debe ir a la izquierda. 5 = x se detiene con SyntaxError: cannot assign to literal here. Maybe you meant '==' instead of '='?
  • «bonus = score * 2 une bonus a score para siempre». bonus recibe el número que dio el cálculo en ese momento. Los cambios posteriores en score no lo afectan, como muestra la tabla de seguimiento.
  • «Escribir x + 1 suma uno a x». Una expresión sola no cambia nada. Necesitas x = x + 1, o la forma corta x += 1.
Nota para docentesEl signo = es el mayor resto que queda de las matemáticas. Un hábito que ayuda es leer = en voz alta como «recibe» o «pasa a ser» («score recibe score más cinco») y nunca como «es igual a». Las tablas de seguimiento merecen tiempo real de clase: da un programa de cinco líneas, pide la tabla antes de que nadie lo ejecute, y luego ejecútalo y compara. El intercambio a, b = b, a es una buena prueba de si el estudiante entiende que primero se calcula todo el lado derecho. Mantén type() a la vista desde el principio, porque la sorpresa de "7" + "7" vuelve en la unidad sobre la entrada de datos.
Ideas clave
  • = significa «calcula el lado derecho y luego dale este nombre».
  • Una tabla de seguimiento registra cada variable después de cada línea.
  • Tipos: int, float, str, bool. type() te dice cuál es.
  • Nombres: letras, dígitos, _; no empiezan con dígito; importan las mayúsculas.
Fuentes de este curso (6)
  • Python Software Foundation, The Python Tutorial for Python 3.12 (docs.python.org/3.12/tutorial: 2 Using the Python Interpreter, 3 An Informal Introduction to Python (numbers, text, lists), 4 More Control Flow Tools (if, for, range, break and continue, defining functions, default argument values, 4.10 coding style: 4-space indentation), 5 Data Structures (list methods, 5.5 dictionaries, insertion order), 8 Errors and Exceptions (syntax errors, exceptions, reading the traceback, handling exceptions), 15 Floating-Point Arithmetic (0.1 + 0.2))
  • Built-in Functions (docs.python.org/3.12/library/functions.html: print, input, len, int, float, str, type, round (round half to even: round(0.5) and round(-0.5) are 0, round(1.5) is 2), range, sum, min, max, sorted)
  • Built-in Types (str methods upper, lower, replace, strip; dict.get; list.append, pop, remove, sort returning None)
  • General Python FAQ (docs.python.org/3.12/faq/general.html: Guido van Rossum began Python in the 1989 Christmas holidays, posted it to USENET in February 1991, named it after Monty Python's Flying Circus)
  • Curriculum for the Korean pages: 교육부 고시 제2022-33호 [별책 10] 정보과 교육과정 (PDF read 2026-10-19: 중학교 정보 [9정03-05] 리스트 등 데이터를 순차적으로 저장하는 구조, [9정03-06] 논리 연산과 중첩 제어 구조, [9정03-07] 함수 활용과 디버거로 오류 수정, [9정03-08] 실생활 문제를 프로그래밍으로 해결, 적용 시 고려 사항 「학생의 수준을 고려하여 적합한 프로그래밍 언어를 선정」; 고등학교 정보 [12정03-04] 자료형, [12정03-05] 표준입출력, [12정03-07] 제어 구조)
  • Bug story only: Smithsonian National Museum of American History, Log Book With Computer Bug, 1947, Harvard Mark II, "first actual case of bug being found", probably not Hopper's log book (americanhistory.si.edu/collections/object/nmah_334663, read 2026-10-19)

Fecha de consulta: 2026-10-19