IF0100 - Programación OO II

Unidad 0: Fundamentos de Python

Clase 0: Introducción y Variables

Martes, 03 de febrero de 2026 Semana 1 - Martes (120 minutos) 60 min Teoría 60 min Práctica

E1: Examen POO - Jueves 26/02/2026 (23 días)

Objetivos de Aprendizaje

Al finalizar esta clase, serás capaz de:

  • Configurar Python y VSCode en tu computadora
  • Crear variables con los tipos básicos: int, float, str, bool
  • Usar operadores aritméticos y de comparación
  • Leer datos del usuario con input() y mostrar resultados con print()
  • Escribir tu primer programa Python funcional
Video Recomendado

Curso completo de Python para principiantes:

Ver Playlist "Python desde Cero" (59 videos) Canal: Sergio A. Castaño Giraldo

Configuración del Entorno (15 min)

1. Instalar Python

  1. Ve a python.org
  2. Descarga Python 3.11 o superior
  3. IMPORTANTE: Marca "Add Python to PATH"
  4. Verifica en terminal: python --version

2. Instalar VSCode

  1. Descarga de code.visualstudio.com
  2. Instala la extensión "Python" de Microsoft
  3. Abre la paleta (Ctrl+Shift+P) → "Python: Select Interpreter"
Tip: VSCode te dará autocompletado y resaltado de sintaxis para Python.

Introducción a Git y GitHub (15 min)

Git es un sistema de control de versiones que te permite:

  • Guardar el historial de cambios de tu código
  • Volver a versiones anteriores si algo falla
  • Trabajar en equipo sin sobrescribir el trabajo de otros
  • Subir tu código a la nube (GitHub)

1. Instalar Git

  1. Ve a git-scm.com
  2. Descarga e instala Git
  3. Verifica en terminal: git --version

2. Configurar Git

# Configurar tu nombre (aparecerá en tus commits)
git config --global user.name "Tu Nombre"

# Configurar tu email (usa el mismo de GitHub)
git config --global user.email "tu@email.com"

# Verificar configuración
git config --list

3. Crear cuenta en GitHub

  1. Ve a github.com
  2. Crea una cuenta gratuita con tu email institucional
  3. Verifica tu email
Ejercicio Rápido: Tu Primer Repositorio (10 min)

Sigue estos pasos para crear tu primer repo:

  1. En GitHub, haz clic en "New Repository"
  2. Nombra: poo2-practicas
  3. Marca "Add a README file"
  4. Haz clic en "Create repository"
  5. Copia la URL del repo (botón verde "Code")

Resultado: Tendrás tu repositorio en la nube donde subirás todos los ejercicios.

Conceptos clave:
  • Repositorio: Carpeta que Git controla
  • Commit: Foto de tu código en un momento específico
  • GitHub: Servicio en la nube para almacenar repos

Variables y Tipos de Datos (20 min)

Una variable es un nombre que almacena un valor en memoria.

Tipos Básicos

# Enteros (int)
edad = 25
cantidad = -10

# Decimales (float)
precio = 19.99
altura = 1.75

# Texto (str)
nombre = "Juan"
mensaje = 'Hola mundo'

# Booleanos (bool)
es_activo = True
esta_completado = False

# None (sin valor)
resultado = None
Ejercicio Rápido 1: Tipos de Datos (5 min)

Abre VSCode y crea un archivo ejercicio1.py:

  1. Crea 3 variables: tu nombre (str), tu edad (int), tu altura (float)
  2. Usa type() para verificar el tipo de cada una
  3. Imprime los valores con f-strings

Verificación: ¿Coinciden los tipos con lo que esperabas?

Conversión entre Tipos

# Convertir a entero
edad = int("25")        # 25

# Convertir a decimal
precio = float("19.99") # 19.99

# Convertir a texto
texto = str(100)        # "100"
Atención: input() siempre retorna texto (str). Debes convertirlo si necesitas números.
Ejercicio Rápido 2: Calculadora Geométrica (5 min)

En tu archivo ejercicio2.py:

  1. Pide al usuario el radio de un círculo
  2. Calcula el área: area = 3.14159 * radio ** 2
  3. Calcula el perímetro: perimetro = 2 * 3.14159 * radio
  4. Muestra los resultados formateados a 2 decimales

Ejemplo de ejecución:

Radio: 5
Área: 78.54
Perímetro: 31.42

Operadores (10 min)

Aritméticos

+Suma5 + 3 = 8
-Resta5 - 3 = 2
*Multiplicación5 * 3 = 15
/División10 / 3 = 3.33
//División entera10 // 3 = 3
%Resto10 % 3 = 1
**Potencia2 ** 3 = 8
Ejercicio Rápido 3: Mini Calculadora (5 min)

Crea ejercicio3.py:

  1. Pide dos números al usuario
  2. Muestra: suma, resta, multiplicación, división, módulo
  3. Usa f-strings para formatear resultados a 2 decimales

Comparación (retornan True/False)

==Igual5 == 5 → True
!=Diferente5 != 3 → True
>Mayor5 > 3 → True
<Menor5 < 3 → False
Ejercicio Rápido 4: Comparador de Edades (5 min)

Crea ejercicio4.py:

  1. Pide la edad de dos personas
  2. Compara quién es mayor usando operadores de comparación
  3. Muestra si son de la misma edad
  4. Muestra si la diferencia es menor a 5 años

Input y Output (10 min)

Mostrar información (print)

# Básico
print("Hola, mundo!")

# Múltiples valores
nombre = "Ana"
edad = 20
print("Nombre:", nombre, "Edad:", edad)

# F-strings (recomendado)
print(f"Hola, {nombre}. Tienes {edad} años.")

# Formatear números
precio = 19.999
print(f"Precio: ${precio:.2f}")  # Precio: $20.00
Ejercicio Rápido 5: Formato de Factura (5 min)

Crea ejercicio5.py:

  1. Crea variables: producto, cantidad, precio_unitario
  2. Calcula subtotal, IVA (19%), total
  3. Muestra una factura formateada con alineación

Leer información (input)

# Leer texto
nombre = input("¿Cuál es tu nombre? ")

# Leer número (convertir)
edad = int(input("¿Cuántos años tienes? "))
altura = float(input("¿Cuánto mides (metros)? "))

print(f"Hola {nombre}, tienes {edad} años y mides {altura}m")
Ejercicio Rápido 6: Conversor de Temperatura (5 min)

En tu archivo ejercicio6.py:

  1. Pide al usuario una temperatura en Celsius
  2. Convierte a Fahrenheit: F = (C × 9/5) + 32
  3. Convierte a Kelvin: K = C + 273.15
  4. Muestra las tres temperaturas formateadas

Ejemplo de ejecución:

Temperatura en Celsius: 25
Fahrenheit: 77.0°F
Kelvin: 298.15K

Laboratorio 1: Calculadora de IMC Mejorada (20 min)

Vamos a crear un programa que calcule el Índice de Masa Corporal.

Fórmula

IMC = peso / (altura × altura)

  • Bajo peso: IMC < 18.5
  • Normal: 18.5 ≤ IMC < 25
  • Sobrepeso: 25 ≤ IMC < 30

Código

# calculadora_imc.py
print("=== CALCULADORA DE IMC AVANZADA ===")

# Pedir datos al usuario
nombre = input("¿Cuál es tu nombre? ")

# Validar entrada de peso
while True:
    try:
        peso = float(input("¿Cuál es tu peso en kg? "))
        if peso > 0:
            break
        print("❌ El peso debe ser mayor que 0")
    except ValueError:
        print("❌ Por favor ingresa un número válido")

# Validar entrada de altura
while True:
    try:
        altura = float(input("¿Cuál es tu altura en metros? "))
        if altura > 0:
            break
        print("❌ La altura debe ser mayor que 0")
    except ValueError:
        print("❌ Por favor ingresa un número válido")

# Calcular IMC
imc = peso / (altura ** 2)

# Calcular peso ideal (IMC = 22)
peso_ideal = 22 * (altura ** 2)
diferencia = peso - peso_ideal

# Mostrar resultado
print(f"\n📊 RESULTADOS PARA {nombre.upper()}")
print("=" * 40)
print(f"Tu IMC es: {imc:.2f}")

# Clasificar con emojis
if imc < 18.5:
    print("Clasificación: 🔵 Bajo peso")
    print("💡 Recomendación: Consulta con un nutricionista")
elif imc < 25:
    print("Clasificación: 🟢 Peso normal")
    print("💡 ¡Excelente! Mantén tus hábitos saludables")
elif imc < 30:
    print("Clasificación: 🟡 Sobrepeso")
    print("💡 Recomendación: Actividad física regular")
else:
    print("Clasificación: 🔴 Obesidad")
    print("💡 Importante: Busca orientación médica")

print(f"\n🎯 Peso ideal: {peso_ideal:.2f} kg")
if diferencia > 0:
    print(f"📉 Debes bajar: {diferencia:.2f} kg")
elif diferencia < 0:
    print(f"📈 Debes subir: {abs(diferencia):.2f} kg")
else:
    print("✅ ¡Estás en tu peso ideal!")
Conexión con TaskFlow: Este ejercicio te prepara para manejar datos de usuario (nombre, valores numéricos) que usarás en el proyecto.

Prueba tu programa

NombrePeso (kg)Altura (m)IMC Esperado
Juan701.7522.86 (Normal)
María551.6021.48 (Normal)
Reto Adicional

Modifica el programa para procesar múltiples usuarios usando un bucle while que pregunte "¿Deseas calcular otro IMC? (s/n)" hasta que el usuario responda 'n'.

Laboratorio 2: Calculadora de Finanzas Personales (25 min)

Crea un sistema para gestionar tus finanzas personales mensuales.

Requisitos

  • Registrar ingresos mensuales
  • Registrar gastos por categoría (vivienda, alimentación, transporte, entretenimiento, otros)
  • Calcular balance (ingresos - gastos)
  • Mostrar porcentaje de gastos por categoría
  • Determinar si hay superávit o déficit

Código Base

# finanzas_personales.py
print("💰 CALCULADORA DE FINANZAS PERSONALES 💰\n")

# Ingresos
print("💵 INGRESOS")
salario = float(input("Salario mensual: $"))
ingresos_extra = float(input("Ingresos extras (freelance, etc.): $"))
ingresos_totales = salario + ingresos_extra

print(f"\n📊 Ingresos totales: ${ingresos_totales:.2f}\n")

# Gastos por categoría
print("💸 GASTOS POR CATEGORÍA")
vivienda = float(input("Vivienda (arriendo, servicios): $"))
alimentacion = float(input("Alimentación: $"))
transporte = float(input("Transporte: $"))
entretenimiento = float(input("Entretenimiento: $"))
otros = float(input("Otros gastos: $"))

gastos_totales = vivienda + alimentacion + transporte + entretenimiento + otros

# Cálculos
balance = ingresos_totales - gastos_totales
porcentaje_gastos = (gastos_totales / ingresos_totales) * 100

# Resultados
print("\n" + "="*50)
print("📈 RESUMEN FINANCIERO")
print("="*50)
print(f"Ingresos totales:  ${ingresos_totales:>10.2f}")
print(f"Gastos totales:    ${gastos_totales:>10.2f}")
print(f"Balance:          ${balance:>10.2f}")
print("="*50)

# Análisis
if balance > 0:
    print(f"\n✅ ¡SUPERÁVIT! Estás ahorrando ${balance:.2f}")
    print(f"💡 Estás gastando el {porcentaje_gastos:.1f}% de tus ingresos")
    print(f"📊 Puedes ahorrar: ${balance:.2f} este mes")
elif balance < 0:
    print(f"\n⚠️  DÉFICIT: Te faltan ${abs(balance):.2f}")
    print(f"💡 Revisa tus gastos, especialmente en entretenimiento")
else:
    print("\n⚖️  Estás exactamente al día (sin ahorros)")

# Desglose por categoría
print(f"\n📋 DESGLOSE DE GASTOS:")
print(f"  🏠 Vivienda:        ${vivienda:>8.2f} ({(vivienda/gastos_totales)*100:.1f}%)")
print(f"  🍽️  Alimentación:   ${alimentacion:>8.2f} ({(alimentacion/gastos_totales)*100:.1f}%)")
print(f"  🚗 Transporte:      ${transporte:>8.2f} ({(transporte/gastos_totales)*100:.1f}%)")
print(f"  🎮 Entretenimiento: ${entretenimiento:>8.2f} ({(entretenimiento/gastos_totales)*100:.1f}%)")
print(f"  📦 Otros:           ${otros:>8.2f} ({(otros/gastos_totales)*100:.1f}%)")
Conexión con TaskFlow: Este ejercicio te enseña a manejar múltiples variables y realizar cálculos complejos, habilidades que usarás para calcular estadísticas de proyectos y tareas.

Retos Adicionales

  1. Meta de ahorro: Pide una meta de ahorro mensual y calcula cuánto te falta o sobra
  2. Comparación: Almacena el balance en una variable y compara con el mes anterior (simulado)
  3. Alertas: Si alguna categoría supera el 30% de los ingresos, muestra una alerta

Ejercicios Adicionales (15 min)

Ejercicio 7: Conversor de Monedas

Crea un conversor USD ↔ COP. Usa tasa de cambio actual (ej: 1 USD = 4,000 COP).

  • Pide al usuario el monto
  • Pide la dirección de conversión (1: USD→COP, 2: COP→USD)
  • Muestra el resultado formateado
Ejercicio 8: Calculadora de Propinas

Calcula la propina y el total a pagar en un restaurante.

  • Total de la cuenta
  • Porcentaje de propina (10%, 15%, 20%)
  • Número de personas para dividir
  • Muestra: propina, total, total por persona
Ejercicio 9: Calculadora de Interés Simple

Calcula el interés simple y el monto final de una inversión.

  • Fórmula: I = P × r × t
  • P = capital inicial
  • r = tasa de interés anual (decimal)
  • t = tiempo en años
Ejercicio 10: Divisor de Cuentas

Divide una cuenta entre varias personas considerando quién consumió qué.

  • Registra consumo por persona
  • Calcula subtotal + propina
  • Muestra cuánto debe pagar cada uno

Resumen

  • Variables: Almacenan datos con nombres descriptivos
  • Tipos: int, float, str, bool - cada uno tiene un propósito
  • input(): Lee texto del usuario (convertir si es número)
  • print(): Muestra información (usar f-strings)
  • Operadores: Aritméticos para cálculos, comparación para decisiones
Práctica: Modifica el programa para calcular también el peso ideal usando IMC = 22.
Inicio
Clase 0 de 25
Siguiente: Estructuras de Control →