¿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.
2
# El clásico primer programa
print("Hola, Instituto Theo Bloem")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.
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.
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)."""
2
# Una variable entera (int)
edad = 172
# Una variable de texto (str)
nombre = "German"2
# Tres variables asignadas a la vez
curso, seccion, alumnos = "ORPC", "A", 322
# Python no tiene "const" real: se usa mayúsculas por convención
PI = 3.14162
3
dato = 10 # ahora es int
dato = "diez" # ahora es str
print(type(dato))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)."""
print("Instituto Tecnológico Dr. Theo Bloem")nombre = input("Escribe tu nombre: ")2
# input() siempre devuelve texto: hay que convertirlo
edad = int(input("¿Cuántos años tienes? "))2
curso = "ORPC"
print(f"Estás inscrito en el taller {curso}")2
3
nombre = input("Nombre: ")
nota = float(input("Nota obtenida: "))
print("Alumno:", nombre, "- Nota:", nota)Estructuras secuenciales
"""Instrucciones que se ejecutan una tras otra, en el orden exacto en que fueron escritas, sin saltos ni repeticiones."""
2
nombre = input("¿Cuál es tu nombre? ")
print("Bienvenido,", nombre)2
3
base = 8
altura = 5
area = base * altura
print("Área:", area)2
celsius = 28
fahrenheit = (celsius * 9/5) + 32
print(f"{celsius}°C equivalen a {fahrenheit}°F")2
3
n1, n2, n3 = 85, 92, 78
promedio = (n1 + n2 + n3) / 3
print("Promedio:", promedio)2
3
a, b = 4, 9
a, b = b, a # intercambio en una sola línea
print(a, b)Estructuras condicionales
"""Permiten que el programa tome decisiones y ejecute distintos caminos según se cumpla o no una condición."""
2
edad = 18
if edad >= 18:
print("Eres mayor de edad")2
3
4
numero = 7
if numero % 2 == 0:
print("Es par")
else:
print("Es impar")2
3
4
5
6
nota = 75
if nota >= 90:
print("Excelente")
elif nota >= 60:
print("Aprobado")
else:
print("Reprobado")2
3
4
5
usuario, clave = "orpc", "1234"
if usuario == "orpc":
if clave == "1234":
print("Acceso concedido")
else:
print("Clave incorrecta")2
edad = 15
estado = "menor" if edad < 18 else "mayor"Estructuras repetitivas
"""Ciclos o bucles: repiten un bloque de código mientras se cumpla una condición o para un rango de valores."""
2
for i in range(1, 11):
print(f"5 x {i} = {5*i}")2
3
4
contador = 5
while contador > 0:
print(contador)
contador -= 12
3
estudiantes = ["Ana", "Luis", "Karen"]
for est in estudiantes:
print("Presente:", est)2
3
4
5
while True:
clave = input("Clave: ")
if clave == "1234":
print("Correcta")
break2
3
for fila in range(1, 5):
for col in range(fila):
print("*", end=" ")
print()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
2
frutas = ["manzana", "banano", "uva"]
print(frutas[0]) # manzana2
for fruta in frutas:
print(fruta)2
frutas.append("mango")
frutas.remove("banano")2
numeros = [10, 20, 30, 40, 50]
print(numeros[1:4]) # [20, 30, 40]2
cuadrados = [n**2 for n in range(1, 6)]
print(cuadrados) # [1, 4, 9, 16, 25]Listas bidimensionales (matrices)
2
3
4
matriz = [
[1, 2, 3],
[4, 5, 6]
]2
print(matriz[1][2]) # 6 → fila 1, columna 22
3
for fila in matriz:
for valor in fila:
print(valor, end=" ")2
3
4
total = 0
for fila in matriz:
total += sum(fila)
print("Suma total:", total)2
3
identidad = [[1 if f == c else 0 for c in range(3)]
for f in range(3)]Funciones
"""Bloques de código reutilizables, definidos con la palabra clave def, que pueden recibir parámetros y devolver un resultado."""
2
3
def saludar():
print("¡Bienvenido al taller ORPC!")
saludar()2
3
def sumar(a, b):
return a + b
print(sumar(4, 7)) # 112
3
def saludo(nombre="estudiante"):
print(f"Hola, {nombre}")
saludo() # usa el valor por defecto2
3
def promedio(*notas):
return sum(notas) / len(notas)
print(promedio(80, 90, 70))2
cuadrado = lambda x: x ** 2
print(cuadrado(6)) # 36Programación GUI
"""Interfaces gráficas de usuario con Tkinter, la librería incluida por defecto en Python para crear ventanas, botones y formularios."""
2
3
4
5
import tkinter as tk
ventana = tk.Tk()
ventana.title("Taller ORPC")
ventana.mainloop()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()2
3
4
tk.Label(ventana, text="Nombre:").pack()
campo_nombre = tk.Entry(ventana)
campo_nombre.pack()2
3
from tkinter import messagebox
messagebox.showinfo("Aviso", "Datos guardados con éxito")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)