Pensamiento Computacional (090) · Unidad 1 — Algoritmos y programación
Cómo ejecuta la computadora
La computadora sólo entiende ceros y unos. Python es un idioma intermedio: vos lo escribís, un intérprete lo traduce, y recién ahí la máquina lo ejecuta.
La explicación
Hardware y software
- Hardware: lo que se toca. Procesador (CPU), memoria RAM, disco, teclado, pantalla.
- Software: los programas. No se tocan; son instrucciones guardadas.
- Sistema operativo: el software que administra el hardware y hace de intermediario. Windows, Linux, macOS, Android. Cuando tu programa quiere escribir un archivo, no habla con el disco: le pide al sistema operativo que lo haga.
Memoria y disco no son lo mismo
Por eso una variable desaparece cuando el programa termina, y por eso hay que guardar en un archivo lo que quieras conservar — que es la unidad 5.
Lenguaje de programación
El procesador sólo ejecuta código máquina: números. Escribir en eso es inviable, así que se usan lenguajes que las personas pueden leer, y algo los traduce.
El intérprete traduce y ejecuta
El procesador hace: 10110000 01100001 ...
Python es interpretado: un programa (el intérprete) lee tu código línea por línea y lo va ejecutando. No hay un paso previo de compilación. Eso tiene dos consecuencias prácticas que se notan todo el tiempo:
- Podés probar una línea suelta y ver el resultado al instante.
- Los errores aparecen recién cuando esa línea se ejecuta. Un error escondido en un
ifque nunca se cumple puede pasar desapercibido mucho tiempo.
Entorno de desarrollo
Es dónde escribís y corrés el código. La cátedra usa Google Colab: no hay que instalar nada, corre en el navegador y el código vive en celdas que se ejecutan de a una.
El sistema operativo, que está en el medio de todo
Ningún programa habla directamente con el hardware. En el medio hay un programa especial —el sistema operativo— que reparte el procesador entre todo lo que está abierto, administra la memoria y es el único que sabe realmente dónde está guardado cada archivo en el disco.
Python no se compila: se interpreta
Hay dos maneras de convertir tu código en algo que el procesador entienda:
- Compilar (C, por ejemplo): un programa traduce el archivo entero de una sola vez, antes de correr, y queda un ejecutable. Es más rápido al ejecutar, y los errores de escritura aparecen todos antes de arrancar.
- Interpretar (Python): hay un programa, el intérprete, que lee y ejecuta línea por línea, cada vez que corrés.
SyntaxError, que aparece antes de ejecutar nada, porque el intérprete necesita poder leer el archivo entero para empezar.
¿Por qué este programa imprime 13 y no 103?
y = 3
print(x + y)
Porque x e y guardan números, no texto. El + entre
dos números suma; entre dos textos, pega uno atrás del otro.
Si en cambio escribieras:
y = "3"
print(x + y)
saldría 103, porque las comillas convierten eso en texto y + concatena.
input():
todo lo que entra por teclado es texto, aunque el usuario escriba un número. Si no lo
convertís con int(), sumar dos "números" te va a dar una concatenación.
El control: si un resultado numérico salió con los dígitos pegados en vez de sumados, casi siempre son strings disfrazados de números.
Y por qué esto explica media clase de errores. Si en Colab una variable «existe» sin que
la hayas definido en la celda que estás mirando, es porque quedó en memoria de una celda
anterior que corriste antes. El programa te funciona a vos y no a quien lo abre de nuevo. El
control es siempre el mismo: reiniciar el entorno y correr todo de arriba abajo. Si ahí
aparece un NameError, el programa estaba mal desde el principio y lo tapaba el
estado viejo.
Dónde se cae la mayoría
- Confundir memoria con disco, y esperar que una variable siga existiendo después de que el programa termina.
- Creer que si el programa arranca, está bien: en Python un error puede estar esperando en una línea que todavía no se ejecutó.
- En Colab, correr celdas fuera de orden y pelearse con un estado que quedó inconsistente.
Hasta acá la explicación. La práctica es la otra mitad: 7 ejercicios de este tema, en cuatro niveles, que no te dicen sólo si está bien al final sino que te corrigen en cada paso y te explican por qué. Además trae una animación que muestra la idea en movimiento.
Practicar Cómo ejecuta la computadora →