Módulo III - Fundamentos de Programación en Python
Módulo III - Fundamentos de Programación en Python
Programación en Python
Introducción al Lenguaje Python
Python es un lenguaje de programación de alto nivel que ha transformado el
mundo del desarrollo de software gracias a su simplicidad, legibilidad y
versatilidad. Fue creado por Guido van Rossum y lanzado oficialmente en 1991
como un lenguaje interpretado y multiparadigma, lo que significa que permite a los
desarrolladores trabajar bajo diferentes estilos (procedural, orientado a objetos,
funcional), de acuerdo con la naturaleza del problema a resolver.
● Programación de videojuegos,
1
● Internet de las cosas (IoT), robótica y automatización industrial.
Uno de los grandes beneficios de Python es que se puede empezar a usar sin
necesidad de instalar software complejo. Hoy en día, existen múltiples alternativas
para ejecutar código Python, desde entornos en la nube como Google Colab,
hasta editores de texto como VS Code o Jupyter Notebooks. Sin embargo, para
comenzar, te recomendamos instalar Python desde su página oficial:
https://www.python.org.
Una vez instalado, puedes utilizar el IDLE (Python Shell) que viene incluido, o
bien instalar un entorno de desarrollo más avanzado como Visual Studio Code. En
2
este curso utilizaremos ambos enfoques: primero el más básico para entender la
lógica, y luego el profesional para comenzar a construir proyectos reales.
Este pequeño script hace que la computadora imprima ese texto en la consola.
Aunque parece sencillo, este comando muestra ya el uso de una función (print)
y una cadena de texto ("Hola Mundo"), dos conceptos fundamentales en
cualquier lenguaje.
Explicación:
● Usa la consola de Python para probar líneas una a una y ver resultados
inmediatos.
● Guarda tus scripts en archivos .py para poder ejecutarlos luego desde tu
editor.
3
Ejemplo:
# Guardado en archivo: saludo.py
nombre = input("¿Cómo te llamas? ")
print("Hola, " + nombre + "! Bienvenido a Python.")
Este script introduce un nuevo concepto: la función input() que sirve para recibir
datos del usuario. De esta forma, puedes empezar a construir programas
interactivos.
La IA no solo te dará la solución, sino que puede explicarte por qué funciona,
ayudarte a mejorarla o a agregar más condiciones.
4
Variables, Tipos de Datos y Convenciones
Ejemplo:
nombre = "Laura"
edad = 25
Los tipos de datos definen qué tipo de información puede almacenar una
variable. Python tiene varios tipos de datos incorporados que son fundamentales
para todo programador principiante:
5
bool Valores booleanos (True o True, False
False)
x = 10 # int
y = 3.14 # float
z = "Hola" # str
# Error:
# print("Edad: " + 25)
Sin embargo, es importante conocer los tipos porque muchas operaciones
dependen de ellos. Por ejemplo, no se puede sumar directamente un número y
una cadena sin antes convertir uno de los dos:
# Corrección:
print("Edad: " + str(25))
6
Conversión de tipos (Casting)
Estas transformaciones son útiles para leer datos del usuario (que llegan como
str) y luego hacer operaciones numéricas.
7
print(nombre + ", tu IMC es: " + str(round(imc, 2)))
Prompt de ejemplo:
Esto enseña que las IA son excelentes mentores instantáneos, pero debes
comprender el código para usar su ayuda correctamente.
Operadores aritméticos
8
Operador Descripción Ejemplo Resultado
+ Suma 5 + 3 8
- Resta 10 - 2 8
* Multiplicación 4 * 3 12
/ División 8 / 2 4.0
(decimal)
// División entera 7 // 2 3
% Módulo 7 % 2 1
(residuo)
** Potenciación 2 ** 3 8
Ejemplo práctico:
a = 10
b=3
print("Suma:", a + b)
print("Residuo:", a % b)
9
print("Potencia:", a ** b)
Operadores relacionales
== Igual a 5 == 5 True
!= Diferente de 5 != 3 True
10
Operadores lógicos
Ejemplo combinado:
edad = 20
es_estudiante = True
Este fragmento muestra cómo aplicar múltiples operadores para crear condiciones
más ricas y realistas
11
2. Controlar la división entre cero: verificar antes de realizar divisiones.
Código en Python:
cop = 1000000
tasa_cambio = 4000
usd = cop / tasa_cambio
print("Equivalente en USD:", usd)
Este tipo de ejemplo refuerza no solo los operadores, sino también la lógica
aplicada al mundo real.
12
Este tipo de diálogo con la IA entrena al estudiante para detectar errores y adoptar
una mentalidad de mejora continua.
Sintaxis:
Acceso a elementos:
print(nombres[0]) # "Juan"
13
Operaciones comunes:
Ejemplo práctico:
compras = []
compras.append("Pan")
compras.append("Leche")
print(compras)
Este tipo de estructuras es ideal cuando se necesita una lista cambiante, como
registros temporales, listas de tareas, etc.
Las tuplas son similares a las listas, pero con la diferencia de que no pueden
modificarse una vez creadas. Esto las hace útiles cuando se necesita proteger la
integridad de los datos.
Sintaxis:
14
Acceso a elementos:
print(coordenadas[1]) # 20.3
Ejemplo práctico:
Sintaxis:
estudiante = {
"nombre": "Luis",
"edad": 20,
"cursos": ["Python", "SQL"]
Acceso y manipulación:
print(estudiante["nombre"]) # "Luis"
estudiante["edad"] = 21
Operaciones comunes:
Lista Sí Sí Sí Sí No
Tupla Sí No Sí Sí No
Aplicaciones con IA
Estas estructuras de datos son la base para manipular respuestas de APIs de IA.
Por ejemplo, si se usa una herramienta como OpenAI, las respuestas del modelo
llegan en formato JSON (que en Python se representa como un diccionario).
16
for sugerencia in respuesta["sugerencias"]:
print("-", sugerencia)
Sintaxis:
if condicion:
# Bloque de código si se cumple la condición
Ejemplo:
edad = 20
if edad >= 18:
print("Eres mayor de edad.")
17
2. Sentencia else: alternativa ante una condición falsa
El bloque else permite definir una acción alternativa cuando la condición del if
no se cumple.
Ejemplo:
Ejemplo práctico:
nota = 85
18
4. Anidamiento de condiciones
Ejemplo:
usuario = "admin"
autenticado = True
if autenticado:
if usuario == "admin":
print("Acceso total al sistema.")
else:
print("Acceso limitado.")
else:
print("Acceso denegado.")
Este tipo de estructuras es común en la lógica de seguridad y en los flujos de
navegación de interfaces.
5. Buenas prácticas
19
6. Casos prácticos aplicados a IA
sentimiento = "positivo"
if sentimiento == "positivo":
print("Agradecemos tu comentario.")
else:
● 90-100: Excelente
● 75-89: Bueno
● 50-74: Aprobado
● 0-49: Reprobado
20
nota = int(input("Ingrese su nota: "))
El ciclo for en Python es una estructura que recorre los elementos de una
secuencia (listas, cadenas, tuplas, diccionarios, etc.). Es ideal cuando se conoce
de antemano cuántas veces se debe ejecutar un bloque de código.
Sintaxis general:
python
CopiarEditar
21
Ejemplo 1 – Recorrer una lista:
python
CopiarEditar
python
CopiarEditar
for i in range(5):
Este tipo de bucle se usa ampliamente para procesar datos, automatizar tareas en
lotes, generar archivos y controlar flujos de trabajo en aplicaciones.
Sintaxis:
while condicion:
# Bloque de código
Ejemplo práctico:
python
CopiarEditar
contador = 0
print("Hola, mundo")
22
contador += 1
Este tipo de bucle es muy común en menús interactivos, juegos, algoritmos de
búsqueda o aplicaciones que dependen de eventos.
if numero == 2:
continue
print(numero)
23
4. Casos prácticos en programación real
Automatización de tareas:
intento = 0
clave = "python123"
entrada = ""
intento += 1
if entrada == clave:
print("Acceso concedido.")
else:
print("Acceso denegado.")
Este ejemplo demuestra una lógica de autenticación simple donde el bucle while
controla los intentos permitidos.
En desarrollos que integran inteligencia artificial, los bucles son esenciales para
recorrer resultados, procesar lotes de datos o evaluar modelos.
24
predicciones = ['positivo', 'negativo', 'neutral', 'positivo']
El while es útil para validar múltiples condiciones al mismo tiempo. Por ejemplo,
podríamos necesitar que se cumplan dos requisitos antes de salir del bucle:
saldo = 500
retiro = 0
25
retiro = int(input("Ingrese el monto a retirar: "))
Este ejemplo simula un proceso bancario simple donde el usuario debe ingresar
un monto válido antes de continuar.
import random
modelo_entrenado = False
intentos = 0
26
3. Bucle infinito controlado
while True:
mensaje = input("Tú: ")
if mensaje.lower() == "salir":
print("Bot: ¡Hasta luego!")
break
else:
print("Bot: Lo siento, aún estoy aprendiendo.")
Un uso avanzado del bucle while consiste en mantener un proceso “en espera”
hasta que ocurra un evento externo, como la recepción de una respuesta desde
un API, sensor o archivo.
respuesta = None
espera = 0
if respuesta == "sí":
27
print("Gracias por aceptar.")
else:
print("Proceso cancelado.")
import random
def detectar_anomalia():
return random.choice([False, False, False, True])
while True:
if detectar_anomalia():
print(" ⚠️ Alerta: se detectó una anomalía en el sistema.")
break
else:
print(" ✔️ Sistema estable.")
Este fragmento representa cómo un sistema automático podría usar IA para
monitorear condiciones críticas, muy útil en entornos industriales, de salud o
financieros.
28
El uso del bucle while va más allá de la simple repetición. Permite diseñar
sistemas dinámicos y adaptativos que reaccionan a las condiciones del entorno,
entradas del usuario o resultados de inteligencia artificial. La comprensión
profunda de esta estructura es clave para el desarrollo de soluciones
automatizadas, asistentes virtuales, procesos de entrenamiento de modelos y
programas interactivos avanzados.
Se trata de una condición if, elif o else que contiene dentro de su bloque otra
instrucción condicional. Esta anidación puede continuar a diferentes niveles de
profundidad, dependiendo de la complejidad del problema.
Ejemplo básico:
29
En este ejemplo, se deben cumplir dos condiciones para acceder a una acción: ser
mayor de edad y tener la nacionalidad requerida.
if nivel == "básico":
print("Te recomendamos iniciar con Fundamentos de Programación.")
elif nivel == "intermedio":
if tiene_certificado == "sí":
print("Puedes acceder directamente a cursos avanzados.")
else:
print("Completa primero el módulo de fundamentos.")
else:
print("Estás listo para proyectos con IA y algoritmos avanzados.")
30
Ejemplo con múltiples criterios:
if curso == "python":
if nota >= 85:
print("¡Aprobaste con excelente desempeño!")
elif nota >= 60:
print("Aprobaste, pero se recomienda reforzar temas.")
else:
print("Requiere repetir el curso.")
elif curso == "sql":
# lógica similar adaptada a SQL
pass
4. Buenas prácticas
31
5. Aplicación con IA: flujos inteligentes de decisiones
Hoy en día, es posible construir flujos de decisión que integren modelos de IA. Por
ejemplo, al evaluar si una persona debe acceder a un curso, se puede usar un
modelo de aprendizaje automático para predecir si está preparada, y luego usar
if para definir la acción:
if recomendacion_ia == "básico":
print("Empieza por lo fundamental.")
elif recomendacion_ia == "intermedio":
print("Puedes ingresar al curso con reforzamiento.")
else:
print("Recomendamos un desafío avanzado.")
Esto muestra cómo integrar decisiones basadas en predicciones dentro de la
lógica tradicional de programación.
32
sino que amplifica sus capacidades y permite centrarse más en la resolución de
problemas que en la mecánica de la sintaxis.
Ejemplo práctico:
Prompt en ChatGPT:
"Escribe una función en Python que reciba una lista de números y devuelva solo
los pares."
Respuesta del modelo:
def filtrar_pares(lista):
return [n for n in lista if n % 2 == 0]
33
Sin embargo, es fundamental destacar que la IA no sustituye el proceso de
razonamiento. Es una herramienta poderosa, pero debe utilizarse con juicio
crítico y responsabilidad académica.
34
Generación de Código a partir de Lenguaje Natural con IA
La capacidad de la inteligencia artificial para transformar instrucciones en lenguaje
natural en código ejecutable marca un punto de inflexión en la forma en que las
personas aprenden y aplican la programación. A través de modelos como
ChatGPT, Codex o Copilot, ahora es posible describir lo que se desea construir
con palabras sencillas y obtener de forma inmediata un fragmento de código
funcional en Python. Esta práctica no solo democratiza el acceso al desarrollo de
software, sino que también fortalece la comprensión conceptual al hacer explícita
la relación entre idea y sintaxis.
Ejemplo:
Prompt: “Escribe una función en Python que reciba una lista de nombres y
devuelva los que tengan más de 5 letras.”
Respuesta IA:
def filtrar_nombres_largos(lista):
35
● Reduce la barrera técnica inicial, permitiendo que personas sin
conocimientos avanzados participen en la lógica de desarrollo.
No todos los prompts son igual de claros. Una redacción ambigua puede llevar a
resultados incorrectos. Aquí se presentan algunas recomendaciones para
optimizar el uso de IA en la generación de código:
Define el tipo de
dato
✅ "Devuelve una lista con los elementos duplicados de
otra lista."
Usa el formato
pregunta
✅ "¿Cómo creo una clase llamada Estudiante con
atributos nombre y edad?"
Incluye
restricciones
✅ "Escribe un algoritmo que ordene sin usar sort()."
36
Evita
ambigüedades
🚫 "Haz una función que lo arregle." (¿Qué se debe
arreglar?)
def es_multiplo_3_y_5(n):
return n % 3 == 0 and n % 5 == 0
● Caso 3: “Dame una función que devuelva los caracteres únicos de una
cadena.”
Respuesta esperada:
def caracteres_unicos(cadena):
return list(set(cadena))
37
Aplicaciones Prácticas y Mini Proyectos
Objetivo: Calcular cuánto debe dejarse como propina según el valor de la cuenta
y la calidad del servicio.
if servicio == "malo":
propina = cuenta * 0.05
elif servicio == "bueno":
propina = cuenta * 0.10
38
elif servicio == "excelente":
propina = cuenta * 0.15
else:
propina = 0
39
usuario_guardado = "admin"
contrasena_guardada = "1234"
def mostrar_menu():
print("\n--- Menú Estudiante ---")
print("1. Calcular promedio")
print("2. Ver estado de aprobación")
print("3. Simular inscripción")
print("4. Salir")
opcion = 0
while opcion != 4:
mostrar_menu()
opcion = int(input("Seleccione una opción: "))
if opcion == 1:
40
notas = [float(input(f"Ingrese nota {i+1}: ")) for i in range(3)]
promedio = sum(notas)/len(notas)
print(f"Promedio: {promedio}")
elif opcion == 2:
estado = "Aprobado" if promedio >= 60 else "Reprobado"
print(f"Estado: {estado}")
elif opcion == 3:
curso = input("Curso a inscribirse: ")
print(f"Inscripción exitosa al curso {curso}")
elif opcion == 4:
print("Saliendo del sistema.")
else:
print("Opción inválida.")
41
Una de las herramientas más influyentes es GitHub Copilot, desarrollado por
GitHub y OpenAI. Este asistente funciona como una extensión para editores de
código como Visual Studio Code, y su propósito principal es sugerir fragmentos de
código mientras se escribe. Por ejemplo, si el usuario comienza una función def
contar_vocales(texto):, Copilot puede completar automáticamente el
cuerpo de la función basándose en patrones aprendidos de millones de
repositorios.
42
Ejemplo 1: Uso práctico de GitHub Copilot en Visual Studio Code
for i in range(10):
43
Tabnine sugiere:
print(i)
Este tipo de predicción favorece la fluidez del aprendizaje, evitando que el alumno
se distraiga buscando errores de sintaxis o lógica elemental.
ChatGPT + Python: permite no solo generar código, sino también corregir errores,
optimizar algoritmos y simular entrevistas técnicas.
44