16. Introducción a Python#

“La revolución científica no ha sido una revolución del conocimiento. Ha sido, ante todo, una revolución de la ignorancia. El gran descubrimiento que puso en marcha la revolución científica fue el descubrimiento de que los humanos no saben las respuestas a sus preguntas más importantes.”

—Yuval Noah Harari, De animales a dioses (2014)

16.1. 🎯 Objetivos de Aprendizaje#

Al finalizar este capítulo, serás capaz de:

  1. Explicar qué es Python y por qué es útil para analizar datos históricos

  2. Escribir tu primer programa en Python usando la función print()

  3. Realizar operaciones matemáticas básicas aplicadas a cálculos históricos

  4. Identificar los cuatro tipos de datos básicos en Python

  5. Crear y manipular listas, tuplas y diccionarios con información histórica

Tiempo estimado

⏱️ 90 minutos de trabajo (incluye práctica)

16.2. ¿Qué es Python?#

Python es un lenguaje de programación ampliamente utilizado en aplicaciones web, desarrollo de software, ciencia de datos y machine learning (aprendizaje automático). Los desarrolladores y científicos utilizan Python porque es eficiente, fácil de aprender y se puede ejecutar en múltiples plataformas.

¿Por qué Python para estudiar Historia?

Python nos permite:

  • Analizar grandes volúmenes de datos históricos (censos, registros, archivos)

  • Visualizar tendencias a lo largo del tiempo

  • Automatizar tareas repetitivas de investigación

  • Procesar textos históricos de manera eficiente

16.2.1. Características principales de Python#

Característica

Descripción

Ventaja para el historiador

Lenguaje interpretado

Ejecuta el código línea por línea

Puedes ver resultados inmediatamente

Fácil de aprender

Sintaxis similar al inglés

Curva de aprendizaje suave

Tipado dinámico

No necesitas declarar tipos de variables

Escritura de código más rápida

Alto nivel

Cercano al lenguaje humano

Menos preocupación por detalles técnicos

Tabla 14.1: Características principales de Python

16.2.2. Breve Historia de Python#

Guido van Rossum, un programador de los Países Bajos, creó Python en 1989 en el Centrum Wiskunde & Informatica (CWI). Comenzó como un proyecto personal durante las vacaciones de Navidad. El nombre del lenguaje se inspiró en el programa de televisión de la BBC “Monty Python’s Flying Circus”, del cual Van Rossum era gran admirador.

Conexión histórica

En 1989, mientras Van Rossum creaba Python, ocurrían eventos históricos trascendentales: la caída del Muro de Berlín, el fin de la Guerra Fría y en Chile, las primeras elecciones democráticas después de la dictadura militar.

16.3. ¿Qué es Jupyter Notebook?#

Jupyter Notebook es una aplicación que permite crear documentos que combinan:

  • Código ejecutable en Python

  • Texto explicativo con formato enriquecido

  • Visualizaciones como gráficos e imágenes

  • Ecuaciones matemáticas

Esta combinación hace que Jupyter sea ideal para la investigación y la educación, permitiendo documentar el proceso de análisis paso a paso.


16.4. Mi Primer Programa: Registros Históricos#

La función print() es la forma más básica de mostrar información en pantalla. Imagina que eres un cronista colonial y necesitas registrar eventos importantes:

# Mi primer programa: Un registro histórico
print("Registro Histórico: Comienza nuestra exploración del pasado con Python")
Registro Histórico: Comienza nuestra exploración del pasado con Python
# Podemos imprimir fechas históricas importantes
print("Primera Junta Nacional de Gobierno de Chile: 18 de septiembre de 1810")
print("Declaración de Independencia de Chile: 12 de febrero de 1818")
Primera Junta Nacional de Gobierno de Chile: 18 de septiembre de 1810
Declaración de Independencia de Chile: 12 de febrero de 1818
# También podemos imprimir números (sin comillas)
print(1810)  # Año de la Primera Junta
print(1818)  # Año de la Independencia
1810
1818

16.5. Operaciones Matemáticas: Calculando la Historia#

Python puede realizar operaciones matemáticas directamente. Esto es muy útil para calcular duraciones, poblaciones, distancias y otros datos históricos.

16.5.1. Operadores aritméticos básicos#

Operador

Operación

Ejemplo

Resultado

+

Suma

5 + 3

8

-

Resta

10 - 4

6

*

Multiplicación

6 * 7

42

/

División

20 / 4

5.0

**

Potencia

2 ** 3

8

//

División entera

17 // 5

3

%

Módulo (resto)

17 % 5

2

Tabla 14.2: Operadores aritméticos en Python

# ¿Cuántos años han pasado desde la Independencia de Chile?
año_actual = 2025
año_independencia = 1818

años_transcurridos = año_actual - año_independencia
print(f"Han pasado {años_transcurridos} años desde la Independencia de Chile")
Han pasado 207 años desde la Independencia de Chile
# Calculemos la duración del Imperio Romano de Occidente
# Desde la fundación tradicional de Roma (753 a.C.) hasta la caída (476 d.C.)

inicio_roma = -753  # Usamos números negativos para a.C.
caida_occidente = 476

duracion = caida_occidente - inicio_roma
print(f"El Imperio Romano (occidental) duró aproximadamente {duracion} años")
El Imperio Romano (occidental) duró aproximadamente 1229 años
# Estimación de población: Si el Imperio Romano tenía ~60 millones de habitantes
# y el mundo actual tiene ~8000 millones, ¿cuántas veces mayor es la población actual?

poblacion_romana = 60_000_000  # Podemos usar guiones bajos para legibilidad
poblacion_actual = 8_000_000_000

proporcion = poblacion_actual / poblacion_romana
print(f"La población mundial actual es {proporcion:.1f} veces mayor que la del Imperio Romano")
La población mundial actual es 133.3 veces mayor que la del Imperio Romano

16.6. Tipos de Datos Básicos#

En Python, cada dato tiene un tipo que determina qué operaciones se pueden realizar con él. Los cuatro tipos básicos son:

Los cuatro tipos básicos

  1. int (entero): Números sin decimales → 1810, -753, 42

  2. float (flotante): Números con decimales → 3.14, 19.99, -273.15

  3. str (string/cadena): Texto entre comillas → "Bernardo O'Higgins", 'Chile'

  4. bool (booleano): Valores lógicos → True, False

# Ejemplos con datos históricos chilenos

# Entero (int): Año de un evento
año_batalla_maipu = 1818
print(f"Año de la Batalla de Maipú: {año_batalla_maipu}")
print(f"Tipo: {type(año_batalla_maipu)}")
Año de la Batalla de Maipú: 1818
Tipo: <class 'int'>
# Flotante (float): Coordenadas geográficas
latitud_santiago = -33.45
longitud_santiago = -70.67
print(f"Coordenadas de Santiago: ({latitud_santiago}, {longitud_santiago})")
print(f"Tipo: {type(latitud_santiago)}")
Coordenadas de Santiago: (-33.45, -70.67)
Tipo: <class 'float'>
# String (str): Nombres y textos
procer_chileno = "Bernardo O'Higgins Riquelme"
cargo = 'Director Supremo de Chile'
print(f"{procer_chileno} fue {cargo}")
print(f"Tipo: {type(procer_chileno)}")
Bernardo O'Higgins Riquelme fue Director Supremo de Chile
Tipo: <class 'str'>
# Booleano (bool): Verdadero o Falso
chile_es_republica = True
tiene_monarquia = False
print(f"¿Chile es una república? {chile_es_republica}")
print(f"¿Chile tiene monarquía? {tiene_monarquia}")
print(f"Tipo: {type(chile_es_republica)}")
¿Chile es una república? True
¿Chile tiene monarquía? False
Tipo: <class 'bool'>

16.6.1. La función type()#

La función type() nos permite verificar el tipo de cualquier dato:

# Verificando tipos de datos
print(type(1810))           # int
print(type(3.14159))        # float
print(type("Historia"))     # str
print(type(True))           # bool
<class 'int'>
<class 'float'>
<class 'str'>
<class 'bool'>

16.7. Estructuras de Datos: Organizando la Historia#

Además de los tipos básicos, Python tiene estructuras de datos que permiten organizar múltiples valores.

16.7.1. Listas (list)#

Una lista es una colección ordenada y modificable de elementos. Se crean usando corchetes [].

Analogía histórica

Piensa en una lista como un catálogo de museo: cada pieza tiene una posición específica y podemos agregar o quitar piezas.

# Lista de presidentes de Chile durante el siglo XX (algunos)
presidentes_chile = [
    "Arturo Alessandri Palma",
    "Carlos Ibáñez del Campo", 
    "Pedro Aguirre Cerda",
    "Gabriel González Videla",
    "Eduardo Frei Montalva",
    "Salvador Allende"
]

print("Algunos presidentes de Chile en el siglo XX:")
print(presidentes_chile)
Algunos presidentes de Chile en el siglo XX:
['Arturo Alessandri Palma', 'Carlos Ibáñez del Campo', 'Pedro Aguirre Cerda', 'Gabriel González Videla', 'Eduardo Frei Montalva', 'Salvador Allende']
# Acceder a elementos por índice (¡empieza en 0!)
print(f"Primer presidente en la lista: {presidentes_chile[0]}")
print(f"Último presidente en la lista: {presidentes_chile[-1]}")
print(f"Total de presidentes en la lista: {len(presidentes_chile)}")
Primer presidente en la lista: Arturo Alessandri Palma
Último presidente en la lista: Salvador Allende
Total de presidentes en la lista: 6
# Las listas son modificables: podemos agregar elementos
presidentes_chile.append("Patricio Aylwin")
print(f"Lista actualizada: {presidentes_chile}")
Lista actualizada: ['Arturo Alessandri Palma', 'Carlos Ibáñez del Campo', 'Pedro Aguirre Cerda', 'Gabriel González Videla', 'Eduardo Frei Montalva', 'Salvador Allende', 'Patricio Aylwin']

16.7.2. Tuplas (tuple)#

Una tupla es una colección ordenada pero inmutable (no se puede modificar). Se crean usando paréntesis ().

Analogía histórica

Piensa en una tupla como una inscripción en piedra: una vez grabada, no puede modificarse.

# Coordenadas geográficas de sitios históricos (no deben cambiar)
coordenadas_palacio_moneda = (-33.4425, -70.6538)
print(f"Coordenadas del Palacio de La Moneda: {coordenadas_palacio_moneda}")
print(f"Tipo: {type(coordenadas_palacio_moneda)}")
Coordenadas del Palacio de La Moneda: (-33.4425, -70.6538)
Tipo: <class 'tuple'>

16.7.3. Diccionarios (dict)#

Un diccionario es una colección de pares clave-valor. Se crean usando llaves {}.

Analogía histórica

Piensa en un diccionario como una ficha de archivo histórico: cada campo (clave) tiene un valor asociado.

# Ficha de un personaje histórico
ficha_ohiggins = {
    "nombre": "Bernardo O'Higgins Riquelme",
    "nacimiento": 1778,
    "fallecimiento": 1842,
    "cargo": "Director Supremo de Chile",
    "periodo": "1817-1823",
    "lugar_nacimiento": "Chillán Viejo"
}

print("Ficha histórica de O'Higgins:")
for clave, valor in ficha_ohiggins.items():
    print(f"  {clave}: {valor}")
Ficha histórica de O'Higgins:
  nombre: Bernardo O'Higgins Riquelme
  nacimiento: 1778
  fallecimiento: 1842
  cargo: Director Supremo de Chile
  periodo: 1817-1823
  lugar_nacimiento: Chillán Viejo

16.7.4. Resumen: Comparación de estructuras de datos#

Estructura

Símbolo

Ordenada

Modificable

Ejemplo histórico

Lista

[ ]

✅ Sí

✅ Sí

Lista de batallas

Tupla

( )

✅ Sí

❌ No

Coordenadas geográficas

Diccionario

{ }

✅ Sí

✅ Sí

Ficha biográfica

Tabla 14.3: Comparación de estructuras de datos en Python


16.8. 📝 Actividades de Cierre#

Instrucciones

Resuelve cada ejercicio en las celdas de código. Usa comentarios para explicar tu razonamiento.

16.8.1. Ejercicio 1: Cálculos históricos#

Calcula cuántos años duró la Colonia en Chile (desde la fundación de Santiago en 1541 hasta la Primera Junta de 1810).

# Ejercicio 1: Escribe tu código aquí

16.8.2. Ejercicio 2: Lista de batallas#

Crea una lista con las fechas de las principales batallas de la Independencia de Chile: Rancagua (1814), Chacabuco (1817), Maipú (1818).

# Ejercicio 2: Escribe tu código aquí

16.8.3. Ejercicio 3: Diccionario histórico#

Crea un diccionario con información sobre la Batalla de Maipú (fecha, lugar, resultado, comandante patriota).

# Ejercicio 3: Escribe tu código aquí

16.9. 📋 Resumen del Capítulo#

Concepto

Descripción

Ejemplo

print()

Muestra información en pantalla

print("Hola")

Operadores

Realizan cálculos matemáticos

+, -, *, /, **

int

Números enteros

1818

float

Números decimales

3.14

str

Texto/cadenas

"O'Higgins"

bool

Valores lógicos

True, False

list

Colección ordenada y modificable

[1814, 1817, 1818]

tuple

Colección ordenada e inmutable

(-33.45, -70.67)

dict

Pares clave-valor

{"nombre": "O'Higgins"}

Tabla 14.4: Resumen de conceptos del Capítulo 14


16.10. 📚 Referencias y Bibliografía#

  1. Amazon Web Services. (2024). ¿Qué es Python? AWS Documentation. https://aws.amazon.com/es/what-is/python/

  2. Python Software Foundation. (2024). The Python Tutorial. https://docs.python.org/3/tutorial/

  3. Memoria Chilena. (s.f.). Independencia de Chile (1810-1818). Biblioteca Nacional de Chile. https://www.memoriachilena.gob.cl/