Tiza Las materias del CBC
Practicar →

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.

Practicar este tema →7 ejercicios que te corrigen paso a paso · gratis, sin cuenta

La explicación

Hardware y software

Memoria y disco no son lo mismo

La RAM es donde viven las variables mientras el programa corre. Es rápida y se borra al apagar. El disco es lento pero permanente.
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.

Vos escribís:   print("Hola")
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:

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.

Ojo con una trampa de Colab: las celdas comparten las variables y se ejecutan en el orden en que vos las corrés, no en el orden en que aparecen. Si corrés una celda de abajo y después una de arriba, el estado puede quedar raro. Ante cualquier cosa inexplicable: reiniciar el entorno y correr todo de arriba abajo.

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.

Por eso, cuando tu programa abre un archivo, no lo busca él: se lo pide al sistema operativo, que le contesta que sí o que no. Ésa es la razón de que un programa pueda fallar con «archivo no encontrado» o «permiso denegado» sin que haya nada mal en el código, y de que una ruta que funciona en una computadora no funcione en otra. Vuelve a aparecer en la unidad 5, cuando se trabaja con archivos de verdad.

Python no se compila: se interpreta

Hay dos maneras de convertir tu código en algo que el procesador entienda:

La consecuencia práctica se nota desde el primer día: en Python, un error en la línea 20 no impide que las líneas 1 a 19 se ejecuten y muestren su salida. Vas a ver media salida y después el error, y eso te dice exactamente hasta dónde llegó. La excepción es el SyntaxError, que aparece antes de ejecutar nada, porque el intérprete necesita poder leer el archivo entero para empezar.
Ejemplo resuelto

¿Por qué este programa imprime 13 y no 103?

x = 10
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:

x = "10"
y = "3"
print(x + y)

saldría 103, porque las comillas convierten eso en texto y + concatena.

Este es el error número uno de los primeros programas, y viene de 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.

Dónde vive cada cosa mientras el programa corre. El archivo con el código está en el disco, y ahí queda cuando apagás. Al ejecutarlo, el intérprete lo carga en la memoria y ahí viven las variables — por eso al terminar el programa se pierden todas, y por eso volver a correrlo empieza siempre de cero. Guardar algo de una corrida para la siguiente requiere escribirlo en un archivo, que es todo el sentido de la unidad 5.

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

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 →

Ver todos los temas de Pensamiento Computacional