El principio de la sabiduría es el temor a Dios.
python_fundamentos.py
import fundamentos

Python desde cero
hasta la interfaz gráfica

Guía interactiva para el taller ORPC: qué es Python, para qué sirve, y las estructuras fundamentales del lenguaje — cada una con 5 ejemplos comentados y listos para practicar.

while aprendiendo: practica() # repite hasta dominarlo
Bloom ZDP ABP STEAM Design Thinking
DOCENTE
German Vásquez
CRÉDITOS ACADÉMICOS
PEM en Tecnología · Ingeniería en Sistemas · Robótica Educativa · Cisco Academy
MARCOS Y METODOLOGÍAS
Aprendizaje Basado en Proyectos (ABP) · STEAM · Zona de Desarrollo Próximo (ZDP) · Design Thinking · Taxonomía de Bloom — enfoques para la educación del siglo XXI
def que_es_python():

¿Qué es Python?

"""Lenguaje de programación de alto nivel, interpretado y de propósito general, creado por Guido van Rossum y publicado en 1991."""

Python se diseñó para que el código sea legible: usa sangría (indentación) en lugar de llaves {} para delimitar bloques, y una sintaxis cercana al lenguaje natural. Es de tipado dinámico (no hay que declarar el tipo de una variable) y cuenta con un enorme ecosistema de librerías, lo que lo convierte en uno de los lenguajes más usados del mundo tanto en la industria como en la educación.

$tu primer programa
1
2
# El clásico primer programa
print("Hola, Instituto Theo Bloem")
def utilidad_en_aplicaciones():

Utilidad en aplicaciones

"""Un mismo lenguaje, decenas de campos de aplicación."""

🌐

Desarrollo web

Backends con Django o Flask, APIs REST.

📊

Ciencia de datos

Análisis y visualización con Pandas, NumPy, Matplotlib.

🤖

Inteligencia artificial

Machine learning con TensorFlow, PyTorch, scikit-learn.

⚙️

Automatización

Scripts para tareas repetitivas y bots.

🎓

Educación

Primer lenguaje ideal por su sintaxis clara.

🔌

IoT y hardware

MicroPython en microcontroladores, Raspberry Pi.

🎮

Videojuegos

Prototipos 2D con Pygame.

🧮

Cálculo científico

Simulaciones, estadística, ingeniería.

def tipos_de_aplicaciones():

Tipos de aplicaciones que se pueden crear

"""Python no está limitado a un solo tipo de programa."""

🖥️

Escritorio

Tkinter, PyQt, Kivy — interfaces gráficas nativas.

🌍

Web

Django, Flask, FastAPI — sitios y servicios en línea.

📱

Móviles

Kivy o BeeWare para Android/iOS.

📈

Científicas / datos

Jupyter, Pandas — análisis y reportes.

🧠

Inteligencia Artificial

Modelos de predicción, visión por computadora.

🕹️

Videojuegos

Pygame — juegos 2D educativos.

🔧

Scripts / automatización

Tareas de sistema, procesamiento de archivos.

📟

Embebidas / IoT

MicroPython en sensores y microcontroladores.

def variables_y_constantes(): 5 ejemplos

Variables y constantes

"""Una variable guarda un dato que puede cambiar. Una constante, por convención, guarda un valor que NO debería cambiar (se escribe en MAYÚSCULAS)."""

01Variable numérica entera
1
2
# Una variable entera (int)
edad = 17
02Variable de tipo cadena (string)
1
2
# Una variable de texto (str)
nombre = "German"
03Múltiples asignaciones en una línea
1
2
# Tres variables asignadas a la vez
curso, seccion, alumnos = "ORPC", "A", 32
04Constante (convención en MAYÚSCULAS)
1
2
# Python no tiene "const" real: se usa mayúsculas por convención
PI = 3.1416
05Tipado dinámico: una variable cambia de tipo
1
2
3
dato = 10        # ahora es int
dato = "diez"    # ahora es str
print(type(dato))
Progreso:
def entradas_y_salida_de_datos(): 5 ejemplos

Entradas de datos y salida de datos

"""La entrada es la información que el programa recibe (input), y la salida es lo que el programa muestra como resultado (print)."""

01Salida de datos simple
1
print("Instituto Tecnológico Dr. Theo Bloem")
02Entrada de datos con input()
1
nombre = input("Escribe tu nombre: ")
03Convertir la entrada a número (int)
1
2
# input() siempre devuelve texto: hay que convertirlo
edad = int(input("¿Cuántos años tienes? "))
04Salida con formato (f-string)
1
2
curso = "ORPC"
print(f"Estás inscrito en el taller {curso}")
05Varias entradas y una salida combinada
1
2
3
nombre = input("Nombre: ")
nota = float(input("Nota obtenida: "))
print("Alumno:", nombre, "- Nota:", nota)
Progreso:
def estructuras_secuenciales(): 5 ejemplos

Estructuras secuenciales

"""Instrucciones que se ejecutan una tras otra, en el orden exacto en que fueron escritas, sin saltos ni repeticiones."""

01Entrada y salida simple
1
2
nombre = input("¿Cuál es tu nombre? ")
print("Bienvenido,", nombre)
02Área de un rectángulo
1
2
3
base = 8
altura = 5
area = base * altura
print("Área:", area)
03Celsius a Fahrenheit
1
2
celsius = 28
fahrenheit = (celsius * 9/5) + 32
print(f"{celsius}°C equivalen a {fahrenheit}°F")
04Promedio de tres notas
1
2
3
n1, n2, n3 = 85, 92, 78
promedio = (n1 + n2 + n3) / 3
print("Promedio:", promedio)
05Intercambio de valores
1
2
3
a, b = 4, 9
a, b = b, a   # intercambio en una sola línea
print(a, b)
Progreso:
def estructuras_condicionales(): 5 ejemplos

Estructuras condicionales

"""Permiten que el programa tome decisiones y ejecute distintos caminos según se cumpla o no una condición."""

01if simple
1
2
edad = 18
if edad >= 18:
    print("Eres mayor de edad")
02if / else — número par o impar
1
2
3
4
numero = 7
if numero % 2 == 0:
    print("Es par")
else:
    print("Es impar")
03if / elif / else — clasificación de nota
1
2
3
4
5
6
nota = 75
if nota >= 90:
    print("Excelente")
elif nota >= 60:
    print("Aprobado")
else:
    print("Reprobado")
04Condicional anidada — validación de acceso
1
2
3
4
5
usuario, clave = "orpc", "1234"
if usuario == "orpc":
    if clave == "1234":
        print("Acceso concedido")
    else:
        print("Clave incorrecta")
05Operador condicional compacto (ternario)
1
2
edad = 15
estado = "menor" if edad < 18 else "mayor"
Progreso:
def estructuras_repetitivas(): 5 ejemplos

Estructuras repetitivas

"""Ciclos o bucles: repiten un bloque de código mientras se cumpla una condición o para un rango de valores."""

01for con range — tabla de multiplicar
1
2
for i in range(1, 11):
    print(f"5 x {i} = {5*i}")
02while — cuenta regresiva
1
2
3
4
contador = 5
while contador > 0:
    print(contador)
    contador -= 1
03for sobre una lista
1
2
3
estudiantes = ["Ana", "Luis", "Karen"]
for est in estudiantes:
    print("Presente:", est)
04while con break — validar entrada
1
2
3
4
5
while True:
    clave = input("Clave: ")
    if clave == "1234":
        print("Correcta")
        break
05for anidado — patrón de asteriscos
1
2
3
for fila in range(1, 5):
    for col in range(fila):
        print("*", end=" ")
    print()
Progreso:
def estructuras_de_datos(): 5 + 5 ejemplos

Estructuras de datos: listas unidimensionales y bidimensionales

"""Una lista unidimensional guarda una fila de datos. Una lista bidimensional (matriz) es una lista de listas: filas y columnas."""

Listas unidimensionales

01Crear lista y acceder por índice
1
2
frutas = ["manzana", "banano", "uva"]
print(frutas[0])   # manzana
02Recorrer lista con for
1
2
for fruta in frutas:
    print(fruta)
03Métodos append() y remove()
1
2
frutas.append("mango")
frutas.remove("banano")
04Slicing (rebanado)
1
2
numeros = [10, 20, 30, 40, 50]
print(numeros[1:4])   # [20, 30, 40]
05List comprehension
1
2
cuadrados = [n**2 for n in range(1, 6)]
print(cuadrados)   # [1, 4, 9, 16, 25]

Listas bidimensionales (matrices)

06Crear una matriz (lista de listas)
1
2
3
4
matriz = [
    [1, 2, 3],
    [4, 5, 6]
]
07Acceder a un elemento [fila][columna]
1
2
print(matriz[1][2])   # 6 → fila 1, columna 2
08Recorrer la matriz con for anidado
1
2
3
for fila in matriz:
    for valor in fila:
        print(valor, end=" ")
09Suma de todos los elementos
1
2
3
4
total = 0
for fila in matriz:
    total += sum(fila)
print("Suma total:", total)
10Matriz identidad 3x3 (diagonal)
1
2
3
identidad = [[1 if f == c else 0 for c in range(3)]
             for f in range(3)]
Progreso:
def funciones(): 5 ejemplos

Funciones

"""Bloques de código reutilizables, definidos con la palabra clave def, que pueden recibir parámetros y devolver un resultado."""

01Función simple sin parámetros
1
2
3
def saludar():
    print("¡Bienvenido al taller ORPC!")
saludar()
02Función con parámetros y retorno
1
2
3
def sumar(a, b):
    return a + b
print(sumar(4, 7))   # 11
03Parámetro con valor por defecto
1
2
3
def saludo(nombre="estudiante"):
    print(f"Hola, {nombre}")
saludo()   # usa el valor por defecto
04Número variable de argumentos (*args)
1
2
3
def promedio(*notas):
    return sum(notas) / len(notas)
print(promedio(80, 90, 70))
05Función lambda
1
2
cuadrado = lambda x: x ** 2
print(cuadrado(6))   # 36
Progreso:
def programacion_gui(): 5 ejemplos

Programación GUI

"""Interfaces gráficas de usuario con Tkinter, la librería incluida por defecto en Python para crear ventanas, botones y formularios."""

01Ventana básica
1
2
3
4
5
import tkinter as tk

ventana = tk.Tk()
ventana.title("Taller ORPC")
ventana.mainloop()
02Botón con evento click
1
2
3
4
5
6
def al_hacer_clic():
    print("¡Botón presionado!")

boton = tk.Button(ventana, text="Saludar",
                   command=al_hacer_clic)
boton.pack()
03Formulario con Label y Entry
1
2
3
4
tk.Label(ventana, text="Nombre:").pack()
campo_nombre = tk.Entry(ventana)
campo_nombre.pack()
04Cuadro de mensaje (messagebox)
1
2
3
from tkinter import messagebox
messagebox.showinfo("Aviso", "Datos guardados con éxito")
05Organizar widgets con grid()
1
2
3
4
tk.Label(ventana, text="Curso:").grid(row=0, column=0)
tk.Entry(ventana).grid(row=0, column=1)
tk.Button(ventana, text="Guardar").grid(row=1, column=0, columnspan=2)
Progreso:
Web hosting by Somee.com