00 — Python vs C: el puente

Idea central

Ya sabes programar (lo aprendiste en C). Python es los mismos conceptos con mucha menos ceremonia: no declaras tipos, no compilas, no pones ; ni {} — la indentación marca los bloques. Aprenderlo es sobre todo traducir lo que ya sabes.

Qué aprendes

ConceptoPara qué sirve
Interpretado vs compiladoPor qué Python se ejecuta directo (sin gcc)
Tipado dinámicoPor qué no declaras int/float
Indentación como bloqueLo que en C eran { }
REPL y python3 archivo.pyLas dos formas de ejecutar

C ↔ Python (mismo programa, lado a lado)

Hola Mundo + una variable + condicional + bucle + función:

En CEn Python
#include <stdio.h>(nada)
int main(void) {(el código va directo)
int x = 5;x = 5
printf("%d\n", x);print(x)
if (x > 3) { ... }if x > 3: (indentado)
for (int i=0;i<5;i++)for i in range(5):
int suma(int a,int b){return a+b;}def suma(a, b): return a + b
return 0; }(nada)
compilar: gcc x.c -o x && ./xejecutar: python3 x.py

Diferencias clave (al venir de C)

  • No declaras tipos: x = 5 (Python deduce que es int). Una variable puede cambiar de tipo.
  • Indentación obligatoria: los bloques se marcan con sangría (4 espacios), no con { }. Si la sangría está mal, el programa falla.
  • Sin ; al final de línea (cada línea es una sentencia).
  • input() siempre devuelve texto (str): si quieres un número, conviértelo con int(input()).
  • No hay punteros ni gestión de memoria: Python lo maneja por ti (te quitas *, &, malloc).
  • Estructuras potentes de serie: listas dinámicas, diccionarios y sets (lo que en C te costaba) vienen incluidos — y son la base de NeetCode.

Cómo ejecutar

python3 archivo.py      # ejecutar un script
python3                 # REPL interactivo (probar líneas sueltas)

No necesitas instalar nada (Python 3 viene en Ubuntu). Para proyectos, un entorno aislado:

python3 -m venv .venv && source .venv/bin/activate

Por qué este orden (C → Python → NeetCode)

  • C te dio lo explícito (tipos, memoria, cómo funciona la máquina).
  • Python te da la productividad: los mismos conceptos, rápido y cómodo.
  • Con listas/dicts/sets dominados → NeetCode (algoritmos) es el siguiente paso natural.

Cómo está organizado este curso

Igual que el de C: modelo/ (teoría + soluciones) y practica/<modulo>/ con, por ejercicio, ejNN_modelo.py (resuelto) y ejNN_practica.py (esqueleto con # TODO). Cada .py lleva cabecera y se ejecuta con python3.

Conexiones