introducción a Python
introducción a Python
Fundamentos y masterclass
o Introducción a Python
o Fundamentos de Python
o Estructuras de control
o Estructuras de datos
o Funciones
o Entradas/salidas
Objetivos de aprendizaje
Python que les permitan ampliar sus capacidades de programación y explorar diferentes áreas
de aplicación.
Python fue creado por Guido van Rossum, un programador holandés, a finales de los años 80 y
principios de los 90. La primera versión de Python, la 0.9.0, fue lanzada en 1991. Guido van
Rossum nombró el lenguaje en honor al grupo de comedia británico Monty Python, del cual era
un gran fan.
Python se diseñó con el objetivo de ser un lenguaje fácil de leer y escribir, con una sintaxis
Características
Python tiene varias características que lo hacen atractivo tanto para principiantes como para
programadores experimentados:
Legibilidad
Python utiliza una sintaxis clara y sencilla, lo que facilita la lectura y comprensión del código.
Tipado dinámico
infiere automáticamente el tipo de datos en función del valor asignado a una variable, lo que
Interpretado
Python es un lenguaje interpretado, lo que significa que el código se ejecuta línea por línea en
tiempo real. Esto permite un ciclo de desarrollo rápido y facilita la depuración del código.
Multiplataforma
Python se puede ejecutar en diferentes sistemas operativos, como Windows, macOS y Linux,
Python viene con una extensa biblioteca estándar que proporciona una gran cantidad de
módulos y funciones para realizar diversas tareas, como manipulación de archivos, conexión a
Comunidad activa
Python cuenta con una comunidad de desarrolladores grande y activa que contribuye con
bibliotecas, frameworks y herramientas adicionales. Esto significa que encontrarás una gran
Aplicaciones
Python se utiliza en una amplia gama de aplicaciones y dominios, algunos ejemplos son:
Desarrollo web
Ciencia de datos
Automatización de tareas
Python se puede utilizar para automatizar tareas repetitivas, como procesamiento de archivos,
El web scraping es una técnica que permite extraer datos de páginas web de manera
Comparar precios
Automatizar tareas
Cómo funciona
Pygame.
Un entorno de desarrollo integrado (IDE) es una herramienta que facilita la escritura, ejecución
y depuración de código. Si bien puedes usar un editor de texto simple para escribir código
Python, un IDE ofrece características adicionales que mejoran la productividad del desarrollo.
Visual Studio Code: es un editor de código desarrollado por Microsoft. Con la extensión
Para empezar, te recomendamos usar Visual Studio Code, ya que es ligero, fácil de usar y tiene
Python.
Windows).
3. Una vez instalado, ejecuta el siguiente comando para iniciar Jupyter Notebook:
jupyter notebooks
4. Haz clic en "New" y selecciona "Python 3" para crear un nuevo cuaderno (notebook).
Importante
"Hola Mundo"
"Hola Mundo". Este programa simplemente muestra el mensaje "Hola Mundo" en la pantalla.
de Python.
"Run o "Execute".
Indentación
delimitar bloques de código. A diferencia de otros lenguajes que utilizan llaves o palabras
clave, Python utiliza la indentación para determinar el alcance de las declaraciones. Por
ejemplo:
if condition:
instrucción1
instrucción2
else:
instrucción3
instrucción4
Importante
Comentarios
Los comentarios son líneas de texto en el código que son ignoradas por el intérprete de Python.
Se utilizan para explicar o documentar el código. En Python, los comentarios de una sola línea
comienzan con el símbolo #, mientras que los comentarios de varias líneas se encierran entre
Punto y coma
A diferencia de otros lenguajes, Python no requiere el uso de punto y coma (;) al final de cada
instrucción. Sin embargo, si deseas escribir varias instrucciones en una sola línea, puedes
Uso de paréntesis
1 agrupar expresiones,
2 definir funciones y
Por ejemplo:
resultado = (a + b) * c
Fundamentos de Python
Tipos de datos básicos
En Python, los tipos de datos básicos son las categorías en las que se pueden clasificar los
valores que utilizamos en nuestros programas. Comprender los diferentes tipos de datos es
fundamental para trabajar con variables y realizar operaciones en Python. Los tipos de datos
básicos incluyen:
Enteros (int)
Los números enteros son aquellos que no tienen parte decimal. En Python, se representan
edad = 25
cantidad = 100
Flotantes (float)
Los números flotantes, también conocidos como números de punto flotante, son aquellos que
tienen una parte decimal. En Python, se representan utilizando un punto para separar la parte
precio = 9.99
altura = 1.75
Cadenas de texto (strings)
Las cadenas de texto, o simplemente cadenas, son secuencias de caracteres encerradas entre
comillas simples ('...') o dobles ("..."). Se utilizan para representar texto en Python. Por ejemplo:
nombre = "Juan"
Puedes incluir caracteres especiales en las cadenas utilizando el carácter de escape \. Por
ejemplo, para incluir comillas dentro de una cadena, puedes usar \' o \". También puedes utilizar
la notación de triple comilla ('''...''' o """...""") para crear cadenas de varias líneas.
Booleanos
Los valores booleanos representan los valores de verdad: True (verdadero) y False (falso). Se
es_mayor_de_edad = True
tiene_descuento = False
Ten en cuenta
Los valores booleanos en Python comienzan con una letra
Estos son los tipos de datos básicos en Python. A lo largo de este módulo, aprenderás a trabajar
Variables
1 almacenar y
Puedes pensar en una variable como una etiqueta (rótulo) a la que asignas a un valor específico.
Las variables son contenedores que nos permiten almacenar y manipular datos en nuestros
programas. Para declarar y asignar un valor a una variable en Python, utilizamos el operador de
operador de asignación
En el ejemplo, hemos declarado y asignado valores a las variables nombre, edad, altura y
es_estudiante. Python infiere automáticamente el tipo de datos de cada variable en función del
valor asignado.
También puedes asignar el mismo valor a múltiples variables en una sola línea utilizando el
a = b = c = 10
Al nombrar variables en Python, es importante seguir algunas normas para mantener un código
Python distingue entre mayúsculas y minúsculas, por lo que nombre y Nombre son variables
diferentes.
No se pueden utilizar palabras clave reservadas de Python como nombres de variables (por
Se recomienda utilizar nombres descriptivos para las variables, que indiquen claramente su
edad
nombre_completo
total_ventas
proyecto.
Operadores
Los operadores son símbolos especiales que nos permiten realizar operaciones en variables y
Aritméticos
Los operadores aritméticos se utilizan para realizar operaciones matemáticas básicas. Los
flotante.
División entera (//): divide el primer valor por el segundo y devuelve un resultado de tipo
Ejemplos:
a = 10
b=3
suma = a + b # 13
resta = a - b #7
multiplicacion = a * b # 30
division = a / b # 3.333333333
división_entera = a // b # 3
modulo = a % b # 1
exponenciacion = a ** b # 1000
De comparación
Los operadores de comparación se utilizan para comparar dos valores y devuelven un valor
en Python son:
Mayor que (>): devuelve True si el primer valor es mayor que el segundo.
Menor que (<): devuelve True si el primer valor es menor que el segundo.
Mayor o igual que (>=): devuelve True si el primer valor es mayor o igual que el
segundo.
Menor o igual que (<=): devuelve True si el primer valor es menor o igual que el
segundo.
Ejemplos:
a = 10
b=3
igual = a == b # False
diferente = a != b # True
Lógicos
Los operadores lógicos se utilizan para combinar expresiones condicionales y evaluar múltiples
NOT (not): invierte el valor de una condición, devuelve True si la condición es falsa y
Ejemplo:
a = 10
b=3
Puedes utilizar estos operadores para realizar cálculos, tomar decisiones basadas en
Estructuras de control
Las estructuras de control nos permiten controlar el flujo de ejecución de nuestros programas.
2- bucles.
Estas estructuras nos permiten tomar decisiones y repetir bloques de código según ciertas
condiciones.
Estructuras condicionales
Las estructuras condicionales nos permiten ejecutar diferentes bloques de código según se
IF
if condicion:
instrucciones
Ejemplo:
edad = 18
En este ejemplo, si la variable edad es mayor o igual a 18, se ejecutará el bloque de código
IF-ELSE
La estructura if-else nos permite especificar un bloque de código alternativo que se ejecutará si
edad = 15
else:
En este ejemplo, si la variable edad es mayor o igual a 18, se ejecutará el bloque de código
bloque de código dentro del else y se imprimirá el mensaje "Eres menor de edad."
IF-ELIF-ELSE
if condicion1:
instrucciones
elif condicion2:
instrucciones
else:
instrucciones
Ejemplo:
calificacion = 85
print ("Excelente")
print ("Bueno")
else:
mayor o igual a 80, se imprime "Muy bueno". Si no se cumplen las condiciones anteriores, pero
1. if
edad = 18
2. if-else
Se usa cuando queremos ejecutar un bloque de código si la condición se cumple y otro bloque
si no se cumple.
edad = 16
3. if-elif-else (si-sino-entoces)
edad = 15
print("Eres un adolescente")
else:
print("Eres un niño")
edad = 20
print(mensaje)
5. Condiciones combinadas (and, or, not)
temperatura = 25
humedad = 60
edad = 25
tiene_identificacion = True
if tiene_identificacion:
else:
else:
print("No puedes entrar")
Sí, los operadores lógicos y las estructuras condicionales están relacionadas, pero no son lo
mismo.
Los operadores lógicos (and, or, not) se usan para combinar condiciones, mientras que las
estructuras condicionales (if, if-else, if-elif-else) deciden qué código ejecutar en función de
esas condiciones.
📌 Cómo se relacionan
edad = 20
edad = 20
tiene_identificacion = True
else:
👉 Aquí el and (operador lógico) une dos condiciones “mayor o igual a 18 y tiene
print("Puedes entrar")
Si edad es 20 y tiene_identificacion es True, entra.
print("Puedes entrar")
condición):
es_finde = False
print("Buenos días")
else:
📌 Conclusión
Los operadores lógicos y las estructuras condicionales están relacionados porque los primeros
se usan para construir condiciones dentro de los if, elif y else. No son lo mismo, pero trabajan
Los bucles nos permiten repetir un bloque de código varias veces. En Python, los bucles más
For
El bucle for (para, en) se utiliza para iterar sobre una secuencia (como una lista, una tupla o una
instrucciones
Ejemplo:
print(fruta)
En este ejemplo, el bucle for itera sobre la lista frutas. En cada iteración, la variable fruta toma
el valor de un elemento de la lista, y se ejecuta el bloque de código dentro del bucle. En este
El bucle while se utiliza para repetir un bloque de código mientras una condición sea verdadera.
while condicion:
instrucciones
Ejemplo:
contador = 0
print(contador)
contador += 1
En este ejemplo, el bucle while se ejecuta mientras la variable contador sea menor que 5. En
Es importante tener cuidado al usar el bucle while, ya que, si la condición nunca se vuelve
Break
La instrucción break se utiliza para salir prematuramente de un bucle, independientemente de la
contador = 0
while True:
print(contador)
contador += 1
if contador == 5:
break
En este ejemplo, el bucle while se ejecuta indefinidamente debido a la condición True. Sin
embargo, dentro del bucle se utiliza una estructura condicional if para verificar si contador es
igual a 5. Cuando se cumple esta condición, se ejecuta la instrucción break, lo que hace que el
bucle se detenga y el flujo de ejecución continúe con la siguiente instrucción fuera del bucle.
Continue
La instrucción continue se utiliza para saltar el resto del bloque de código dentro de un bucle y
Ejemplo:
for i in range(10):
if i % 2 == 0:
continue
print(i)
En este ejemplo, el bucle for itera sobre los números del 0 al 9 utilizando la función range().
Dentro del bucle, se verifica si el número es divisible por 2 utilizando el operador de módulo %.
Si el número es divisible por 2 (es decir, si es par), se ejecuta la instrucción continue, lo que
hace que se salte el resto del bloque de código y se pase a la siguiente iteración del bucle. Como
Pass
La instrucción pass es una operación nula que no hace nada. Se utiliza como marcador de
posición cuando se requiere una instrucción sintácticamente, pero no se desea realizar ninguna
acción.
Ejemplo:
for i in range(5):
pass
En este ejemplo, el bucle for itera sobre los números del 0 al 4, pero no se realiza ninguna
acción dentro del bucle debido a la instrucción pass. Esto puede ser útil cuando se está
adelante.
Conclusión
programas.
varias veces.
comunes son:
🔄 1. Bucle for
Se usa para iterar sobre secuencias (listas, tuplas, cadenas, rangos, diccionarios).
print(producto)
for i in range(5): # De 0 a 4
print(i)
🔹 Recorrer un diccionario:
print(f"{producto}: ${precio}")
🔄 2. Bucle while
contador = 0
print(contador)
contador += 1
for i in range(10):
if i == 5:
break # Se detiene cuando i es 5
print(i)
for i in range(5):
if i == 2:
print(i)
for i in range(5):
if i == 2:
print(i)
🔄 4. Bucles anidados
for i in range(3):
for j in range(2):
Control de bucles
Python proporciona algunas instrucciones especiales para controlar el flujo de ejecución dentro
de los bucles:
Break
contador = 0
while True:
print(contador)
contador += 1
if contador == 5:
break
En este ejemplo, el bucle while se ejecuta indefinidamente debido a la condición True. Sin
embargo, dentro del bucle se utiliza una estructura condicional if para verificar si contador es
igual a 5. Cuando se cumple esta condición, se ejecuta la instrucción break, lo que hace que el
bucle se detenga y el flujo de ejecución continúe con la siguiente instrucción fuera del bucle.
Continue
La instrucción continue se utiliza para saltar el resto del bloque de código dentro de un bucle y
Ejemplo:
for i in range(10):
if i % 2 == 0:
continue
print(i)
En este ejemplo, el bucle for itera sobre los números del 0 al 9 utilizando la función range().
Dentro del bucle, se verifica si el número es divisible por 2 utilizando el operador de módulo %.
Si el número es divisible por 2 (es decir, si es par), se ejecuta la instrucción continue, lo que
hace que se salte el resto del bloque de código y se pase a la siguiente iteración del bucle. Como
Pass
La instrucción pass es una operación nula que no hace nada. Se utiliza como marcador de
posición cuando se requiere una instrucción sintácticamente, pero no se desea realizar ninguna
acción.
Ejemplo:
for i in range(5):
pass
En este ejemplo, el bucle for itera sobre los números del 0 al 4, pero no se realiza ninguna
acción dentro del bucle debido a la instrucción pass. Esto puede ser útil cuando se está
adelante.
Cnclusión
condiciones, mientras que con los bucles (for, while) podemos repetir bloques
de código varias veces. Además, las instrucciones break, continue y pass nos
Tuplas
Una tupla es una estructura de datos inmutable y ordenada que permite almacenar una
colección de elementos. Los elementos de una tupla se encierran entre paréntesis (), separados
por comas.
Creación y acceso
punto = (3, 4)
Para acceder a los elementos de una tupla, utiliza el índice del elemento entre corchetes, similar
a las listas:
print(punto[0]) # Imprime 3
print(punto[1]) # Imprime 4
A diferencia de las listas, las tuplas son inmutables, lo que significa que no se pueden modificar
una vez creadas. No se pueden agregar, eliminar o cambiar elementos en una tupla existente.
Las tuplas son útiles cuando necesitas almacenar una colección de elementos que no deben
Métodos de tuplas
Aunque las tuplas son inmutables, Python proporciona varios métodos útiles para trabajar con
ellas:
Una tupla es una estructura de datos inmutable, lo que significa que sus elementos no pueden
contenedor.
🔹 2. Acceder a elementos
print(productos[0]) # Laptop
print(productos[-1]) # Tablet
🔹 3. Slicing (Rebanado)
🔹 4. Desempaquetado de tuplas
print(producto1) # Laptop
print(producto2) # Teléfono
print(primero) # Laptop
✅ Concatenación:
✅ Repetición:
repetida = ("Oferta",) * 3
lista.append("Smartwatch") # Modificar
print(productos)
✅ Mayor seguridad: Se usan en estructuras de datos que no deben modificarse por error.
Diccionarios
Un diccionario es una estructura de datos mutable y no ordenada que permite almacenar pares
Creación y acceso
Para crear un diccionario, utiliza llaves y separa las claves y valores con dos puntos.
Para acceder a los valores de un diccionario, utiliza la clave correspondiente entre corchetes:
print(persona["edad"]) # Imprime 25
También puedes utilizar el método get() para obtener el valor de una clave. Si la clave no
Métodos de diccionarios
Los diccionarios en Python tienen varios métodos incorporados para manipular y acceder a los
items(): devuelve una vista de todos los pares clave-valor del diccionario.
update(otro_diccionario): actualiza el diccionario con los pares clave-valor de otro
diccionario.
Ejemplo:
"Madrid")])
persona.update({"profesion": "Ingeniero"})
"Ingeniero"}
Un diccionario es una estructura de datos que almacena pares clave-valor, lo que permite
acceder a los valores mediante una clave en lugar de un índice. Se define con llaves {}.
🔹 1. Crear un diccionario
producto = {
"nombre": "Laptop",
"precio": 1000,
"stock": 5
print(producto)
🔹 2. Acceder a valores
print(producto["nombre"]) # Laptop
print(producto["precio"]) # 1000
producto["precio"] = 1200
print(producto)
print(producto)
precio_eliminado = producto.pop("precio")
print(precio_eliminado) # 1200
🔹 5. Recorrer un diccionario
print(f"{clave}: {valor}")
🔹 6. Métodos útiles
🔹 7. Diccionarios anidados
productos = {
print(productos["Laptop"]["precio"]) # 1000
lista_claves = list(producto.keys())
nuevo_producto = dict(lista_pares)
print(nuevo_producto)
Conjuntos (set)
Un conjunto es una estructura de datos mutable y no ordenada que permite almacenar una
colección de elementos únicos. Los conjuntos se encierran entre llaves {} o se crean utilizando
la función set().
Los conjuntos admiten operaciones matemáticas de conjuntos, como la unión (|), la intersección
conjunto1 = {1, 2, 3}
conjunto2 = {3, 4, 5}
Los conjuntos en Python tienen varios métodos incorporados para manipular y acceder a los
error.
Ejemplo:
frutas.add("pera")
frutas.remove("banana")
frutas.clear()
Las estructuras de datos en Python nos brindan una gran flexibilidad y potencia para almacenar
y manipular datos en nuestros programas. Las listas son útiles para colecciones ordenadas y
mutables, las tuplas para colecciones ordenadas e inmutables, los diccionarios para almacenar
Un conjunto es una estructura de datos no ordenada que no permite duplicados. Se usa para
diferencia.
🔹 1. Crear un conjunto
print(productos)
print(duplicados)
print(productos)
elemento = productos.pop()
productos.clear()
print(productos) # set()
✅ Unión (| o union())
Une dos conjuntos (sin duplicados).
print(interseccion) # {'Tablet'}
✅ Diferencia (- o difference())
🔹 4. Verificar relaciones
print(setA.isdisjoint(setC)) # True
set_sin_duplicados = set(lista)
lista_productos = list(set_sin_duplicados)
tupla_productos = tuple(set_sin_duplicados)
print(lista_productos, tupla_productos)
específicas y ejecutarlas cuando sea necesario. Las funciones nos ayudan a organizar nuestro
código, evitar la repetición y hacer que nuestros programas sean más modulares y fáciles de
mantener.
Para definir una función en Python, utilizamos la palabra clave def seguida del nombre de la
paréntesis:
def saludo():
print("¡Hola, mundo!")
Las funciones pueden aceptar parámetros, que son valores que se pasan a la función cuando se
def saludo(nombre):
print(f"¡Hola, {nombre}!")
Parámetros → Son variables definidas en la función que reciben valores cuando se llama.
Argumentos → Son los valores reales que se pasan a los parámetros al llamar la función.
✅ Ejemplo:
print(f"¡Hola, {nombre}!")
saludar("Carlos") # "Carlos" es un argumento
📌 Explicación:
Cuando una función es llamada, los argumentos proporcionan valores específicos que se
✅ Ejemplo simple:
print(resultado) # 10
📌 Explicación:
💡 En resumen:
💡 Resumen:
Valores de retorno
Las funciones pueden devolver valores utilizando la palabra clave return. El valor de retorno
return a + b
resultado = suma(3, 4)
print(resultado) # Imprime 7
Python permite crear funciones anónimas o funciones lambda, que son funciones sin nombre
definidas en una sola línea. Se utilizan comúnmente para funciones pequeñas y concisas.
cuadrado = lambda x: x ** 2
print(cuadrado(5)) # Imprime 25
Las variables definidas dentro de una función tienen un alcance local, lo que significa que solo
son accesibles dentro de la función. Por otro lado, las variables definidas fuera de cualquier
función tienen un alcance global y pueden ser accedidas desde cualquier parte del programa.
def funcion():
variable_local = 10
variable_global = 20
def funcion2():
funcion() # Imprime 10
funcion2() # Imprime 20
print(variable_global) # Imprime 20
Es una buena práctica documentar nuestras funciones utilizando docstrings. Los docstrings son
cadenas de texto que describen el propósito, los parámetros y el valor de retorno de una
"""
Returns:
"""
Python permite definir funciones que acepten un número variable de argumentos. Esto se logra
def suma_variable(*numeros):
total = 0
total += numero
return total
print(suma_variable(1, 2, 3)) # Imprime 6
Las funciones son una herramienta fundamental en la programación y nos permiten estructurar
Además de las funciones definidas por el usuario, Python también proporciona una amplia
gama de funciones incorporadas que podemos utilizar directamente, como print(), len(),
Funciones en Python
Las funciones son bloques de código reutilizables que permiten estructurar mejor los
En Python, las funciones se definen con la palabra clave def, seguida del nombre de la función
y paréntesis ().
def saludar():
print("¡Hola, Mundo!")
📌 Explicación:
Las funciones pueden recibir valores llamados parámetros para personalizar su ejecución.
def saludar(nombre):
print(f"¡Hola, {nombre}!")
📌 Explicación:
nombre es un parámetro, que se reemplaza con el valor "Juan" cuando se llama la función.
✅ Múltiples parámetros
resultado = sumar(5, 3)
print(resultado) # 8
📌 Explicación:
def saludar(nombre="Invitado"):
print(f"¡Hola, {nombre}!")
📌 Explicación:
Si no se pasa un valor, se usa "Invitado" como predeterminado.
Una función puede devolver un valor con return, lo que permite almacenar y reutilizar el
resultado.
def cuadrado(numero):
return numero ** 2
resultado = cuadrado(4)
print(resultado) # 16
📌 Explicación:
suma = a + b
resta = a - b
print(resultado_suma) # 15
print(resultado_resta) # 5
📌 Explicación:
def sumar_todos(*numeros):
return sum(numeros)
print(sumar_todos(1, 2, 3, 4, 5)) # 15
📌 Explicación:
def mostrar_info(**datos):
print(f"{clave}: {valor}")
📌 Explicación:
Las funciones lambda permiten definir funciones pequeñas en una sola línea.
doble = lambda x: x * 2
print(doble(5)) # 10
📌 Explicación:
Son útiles en funciones que requieren parámetros como map(), filter(), sorted().
numeros = [1, 2, 3, 4]
print(resultado) # [2, 4, 6, 8]
def prueba():
x = 10 # Variable local
print(x)
prueba()
contador = 0
def incrementar():
global contador
contador += 1
incrementar()
print(contador) # 1
📌 Explicación:
return a + b
def factorial(n):
if n == 0 or n == 1:
return 1
return n * factorial(n - 1)
print(factorial(5)) # 120
📌 Explicación:
factorial(1).
📌 Conclusión
Las funciones en Python son esenciales para organizar código y evitar repeticiones. Pueden
recibir parámetros, devolver valores, y manejar argumentos dinámicos con *args y **kwargs.
Además, se pueden crear funciones anónimas con lambda y documentarlas con docstrings.
Dijiste:
ChatGPT dijo:
Dijiste:
se llama la función.
ChatGPT dijo:
función, solo estamos creando un bloque de código que se puede reutilizar, pero la función no
se ejecuta automáticamente. Para que se ejecute, debemos "llamarla" usando su nombre seguido
de paréntesis ().
print("¡Hola, Mundo!")
📌 Explicación:
2️⃣ saludar() → Aquí se llama la función, lo que hace que se ejecute el print("¡Hola,
Mundo!").
📌 Salida en pantalla:
¡Hola, Mundo!
def saludar(nombre):
print(f"¡Hola, {nombre}!")
📌 Explicación:
"¡Hola, Carlos!".
📌 Salida en pantalla:
¡Hola, Carlos!
Si una función usa return, podemos guardar su resultado en una variable al llamarla.
print(resultado) # 8
📌 Explicación:
📌 Resumen
Dijiste:
ChatGPT dijo:
📌 Recordatorio breve sobre Tuplas y Diccionarios en Python
🔹 Tupla (tuple)
Una tupla es una estructura de datos ordenada e inmutable, lo que significa que no se pueden
modificar sus elementos después de su creación. Se usa cuando queremos almacenar datos que
no deben cambiar.
✅ Ejemplo de tupla:
print(colores[0]) # rojo
📌 Características:
Un diccionario es una estructura de datos desordenada y mutable, que almacena pares clave-
valor. Se usa cuando necesitamos acceder a los valores mediante una clave en lugar de un
índice.
✅ Ejemplo de diccionario:
print(persona["nombre"]) # Ana
📌 Características:
Diferencias clave:
Característica Tupla (tuple) Diccionario (dict)
Estructura Lista ordenada de valores Pares clave-valor
Mutabilidad Inmutable Mutable
durante la ejecución. Python proporciona un mecanismo para manejar estos errores de manera
controlada utilizando el manejo de excepciones. Esto nos permite capturar y manejar errores
Ocurre cuando el código no sigue las reglas de sintaxis de Python, como olvidar dos puntos
print("Hola")
Ocurre cuando se hace referencia a una variable o función que no ha sido definida.
print(variable_no_definida)
Ocurre cuando se realiza una operación con tipos de datos incompatibles, como intentar sumar
resultado = 5 + "10"
Ocurre cuando se intenta acceder a un índice fuera del rango válido de una lista o secuencia.
lista = [1, 2, 3]
Estos son solo algunos ejemplos de errores comunes. Cuando ocurre un error, Python genera
una excepción y muestra un mensaje de error que incluye el tipo de excepción y una
Manejo de excepciones
El manejo de excepciones nos permite capturar y manejar errores de manera controlada
El bloque try contiene el código que puede generar una excepción. Si ocurre una excepción
dentro del bloque try, el flujo de ejecución se transfiere al bloque except correspondiente.
try:
print(resultado)
except ZeroDivisionError:
Except
El bloque except especifica el tipo de excepción que se desea capturar y manejar. Puedes tener
try:
print(resultado)
except ZeroDivisionError:
Finally
excepción o no. Se utiliza comúnmente para realizar tareas de limpieza o liberación de recursos.
try:
except FileNotFoundError:
finally:
Excepciones personalizadas
Además de las excepciones incorporadas en Python, también puedes crear tus propias
programa.
Para crear una excepción personalizada, debes crear una clase que herede de la clase base
def funcion():
if condicion:
try:
funcion()
except Exception as e:
print(f"Error: {str(e)}")
En este ejemplo, se define una función llamada funcion(). Dentro de la función, se verifica una
crear una clase personalizada, se utiliza directamente la clase base Exception para generar la
excepción.
Luego, se utiliza un bloque try-except para capturar y manejar la excepción. La variable e se
Cuando ocurre un error en tu código, Python genera una excepción. Al utilizar bloques try-
except, puedes capturar y manejar estas excepciones de manera adecuada. Puedes especificar
diferentes bloques except para manejar distintos tipos de excepciones y realizar acciones
independientemente de si ocurrió una excepción o no. Esto es útil para garantizar que ciertas
robustos y confiables.
Entradas/salidas
En Python, la entrada y salida de datos nos permite interactuar con el usuario y manipular
Para obtener información del usuario durante la ejecución del programa, podemos utilizar la
función input(). Esta función muestra un mensaje en la pantalla y espera a que el usuario
ingrese un valor.
En este ejemplo, se solicita al usuario que ingrese su nombre y edad utilizando la función
input(). Los valores ingresados se almacenan en las variables nombre y edad, respectivamente.
Importante
En este ejemplo, se solicita al usuario que ingrese su edad y se convierte el valor ingresado a un
número entero utilizando int(). Luego, se utiliza una estructura condicional para verificar si la
Salida de datos
Para mostrar información en la pantalla, utilizamos la función print(). Esta función toma uno o
Podemos utilizar la f-string (formateo de cadenas) para incrustar variables directamente dentro
nombre = "Juan"
edad = 25
En este caso, las variables se incrustan dentro de la cadena utilizando llaves {} y se precede la
diferentes modos, como lectura ("r"), escritura ("w") o anexar ("a"), y realizar operaciones
de lectura y escritura.
Lectura de archivos
Para leer el contenido de un archivo, primero debemos abrirlo utilizando la función open() en
modo de lectura ("r"). Luego, podemos leer el contenido del archivo utilizando métodos
contenido = archivo.read()
print(contenido)
archivo.close()
En este ejemplo, se abre el archivo "datos.txt" en modo de lectura utilizando open(). Luego, se
lee todo el contenido del archivo utilizando el método read() y se almacena en la variable
método close().
Escritura de archivos
Para escribir datos en un archivo, lo abrimos en modo de escritura ("w") utilizando la función
se sobrescribirá.
archivo.write("Hola, mundo!")
archivo.close()
En este ejemplo, se abre el archivo "datos.txt" en modo de escritura utilizando open(). Luego,
Importante
También puedes utilizar la declaración with para manejar la apertura y cierre de archivos de
manera automática.
with open("datos.txt", "r") as archivo:
contenido = archivo.read()
print(contenido)
En este caso, el archivo se abre utilizando la declaración with y se cierra automáticamente una
vez que se sale del bloque with, incluso si ocurre una excepción.
La entrada y salida de datos en Python nos brinda una gran flexibilidad para interactuar con el
resultados en la pantalla y leer o escribir datos en archivos de texto. Recuerda siempre manejar
que se pueden utilizar en otros programas. La importación de módulos nos permite acceder a la
podemos crear nuestros propios módulos para organizar y modularizar nuestro código.
Ten en cuenta
Python viene con una amplia biblioteca estándar de
por separado.
Importar módulos
import math
resultado = math.sqrt(25)
En este ejemplo, se importa el módulo math utilizando la declaración import. Luego, se utiliza
la función sqrt() del módulo math para calcular la raíz cuadrada de 25.
En este caso, se importa solo la función sqrt() del módulo math, lo que nos permite utilizarla
La biblioteca estándar de Python ofrece una amplia gama de módulos con funciones y clases
MATH: Proporciona funciones matemáticas, como sqrt() (raíz cuadrada), sin() (seno), cos() (coseno), entre otras.
RANDOM: Ofrece funciones para generar números aleatorios, como random() (número aleatorio entre 0 y 1), randint()
DATATIME: Permite trabajar con fechas y horas, como datetime.now() (fecha y hora actual), datetime.date() (fecha),
import random
import datetime
Estos son solo algunos ejemplos de los muchos módulos disponibles en la biblioteca estándar de Python. Puedes
consultar la documentación oficial de Python para obtener más información sobre los módulos y sus funcionalidades.
Para crear un módulo personalizado, simplemente creamos un nuevo archivo Python con el nombre deseado y definimos
las funciones, clases y variables que queremos incluir en el módulo. Por ejemplo, creamos un archivo (en el mismo
directorio donde estamos ejecutando Python) llamado mi_modulo.py con el siguiente contenido:
#mi_modulo.py
def saludar(nombre):
print(f"Hola, {nombre}!")
return a + b
Luego, podemos importar y utilizar las funciones definidas en mi_modulo.py en otro archivo Python.
import mi_modulo
resultado = mi_modulo.calcular_suma(5, 3)
print(resultado) # Imprime 8
En este ejemplo, se importa el módulo mi_modulo y se utilizan las funciones saludar() y calcular_suma() definidas en él.
A medida que nuestros programas crecen en tamaño y complejidad, es una buena práctica organizar nuestro código en
módulos separados según su funcionalidad. Esto nos permite conservar un código más legible, agrupado en módulos y
fácil de mantener.
Por ejemplo, podemos tener un módulo operaciones.py que contenga funciones relacionadas con operaciones
# operaciones.py
return a + b
return a - b
# utilidades.py
def imprimir_mensaje(mensaje):
print(mensaje)
def obtener_nombre_usuario():
import operaciones
import utilidades
resultado = operaciones.sumar(5, 3)
nombre = utilidades.obtener_nombre_usuario()
utilidades.imprimir_mensaje(f"Hola, {nombre}!")
Al organizar nuestro código en módulos, podemos reutilizar funciones y mantener un código más estructurado y
agrupado en módulos.
Paquetes
Un paquete es una forma de organizar módulos relacionados en una estructura jerárquica de directorios. Los paquetes
nos permiten agrupar módulos relacionados y evitar conflictos de nombres entre módulos.
Crear y utilizar paquetes
Para crear un paquete, creamos un directorio con el nombre deseado y agregamos un archivo especial llamado
__init__.py dentro del directorio. Este archivo puede estar vacío o contener código de inicialización del paquete.
mi_paquete/
__init__.py
modulo1.py
modulo2.py
Luego, podemos importar y utilizar los módulos del paquete en nuestro programa.
modulo1.funcion1()
modulo2.funcion2()
En este ejemplo, se importan los módulos modulo1 y modulo2 del paquete mi_paquete y se utilizan las funciones
definidas en ellos.
La importación y creación de módulos y paquetes en Python nos permite organizar y reutilizar nuestro código de
manera eficiente. Al modularizar nuestro código, podemos mantener un código más legible, estructurado y fácil de
mantener.
Recuerda explorar la biblioteca estándar de Python y aprovechar los módulos existentes, que pueden facilitarte muchas
tareas comunes. Además, no dudes en crear tus propios módulos y paquetes para organizar y reutilizar tu código de
manera efectiva.