0% encontró este documento útil (0 votos)
32 vistas

Curso Python

El documento presenta un curso completo de programación en Python para principiantes, dividido en 10 lecciones que cubren temas como la sintaxis básica, tipos de datos, operadores, estructuras de control de flujo, funciones, listas, diccionarios, POO, manejo de errores y módulos. Cada lección contiene ejemplos de código para explicar los conceptos.

Cargado por

manucamacho23
Derechos de autor
© © All Rights Reserved
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
32 vistas

Curso Python

El documento presenta un curso completo de programación en Python para principiantes, dividido en 10 lecciones que cubren temas como la sintaxis básica, tipos de datos, operadores, estructuras de control de flujo, funciones, listas, diccionarios, POO, manejo de errores y módulos. Cada lección contiene ejemplos de código para explicar los conceptos.

Cargado por

manucamacho23
Derechos de autor
© © All Rights Reserved
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 25

CURSO DE PROGRAMACIÓN EN PYTHON PARA PRINCIPIANTES (POR CHAT GPT)

Lección 1: Introducción a Python

 Conceptos clave:

 Historia y filosofía de Python.

 Versatilidad y aplicaciones en desarrollo web, ciencia de datos,


automatización, etc.

 Instalación de Python:

 Descarga e instalación de Python.

 Configuración del entorno de desarrollo (IDE).

Lección 2: Sintaxis Básica de Python

 Imprimir en Pantalla:

 Uso de la función print().

 Variables y Tipos de Datos:

 Declaración de variables y tipos de datos básicos (int, float, str, bool).

Lección 3: Operadores en Python

 Operadores Aritméticos y de Asignación:

 Uso de operadores para realizar cálculos.

 Operadores de Comparación y Lógicos:

 Evaluación de expresiones y toma de decisiones.

Lección 4: Estructuras de Control de Flujo

 Condicionales (if, else, elif):

 Tomar decisiones basadas en condiciones.

 Bucles (while, for):

 Repetir acciones hasta que se cumpla una condición.

Lección 5: Funciones en Python

 Definición y Llamada de Funciones:

 Crear funciones para reutilizar código.

 Parámetros y Retorno de Funciones:

 Uso de parámetros y valores de retorno.

Lección 6: Listas y Tuplas en Python

 Listas:
 Creación, acceso y modificación de listas.

 Tuplas:

 Definición y uso de tuplas inmutables.

Lección 7: Estructuras de Datos Avanzadas

 Diccionarios:

 Uso de diccionarios para almacenar datos clave-valor.

 Conjuntos:

 Trabajar con conjuntos para operaciones únicas.

Lección 8: Programación Orientada a Objetos (OOP) en Python

 Clases y Objetos:

 Crear y utilizar clases y objetos.

 Herencia y Polimorfismo:

 Extender clases y aprovechar la polimorfismo.

Lección 9: Manejo de Errores en Python

 Bloques try, except, finally:

 Manejar excepciones para evitar errores inesperados.

Lección 10: Módulos y Paquetes en Python

 Importación de Módulos:

 Uso de funciones y variables desde módulos externos.

 Creación de Paquetes:

 Organización de código en paquetes para proyectos más grandes.

Recursos Adicionales:

 Documentación oficial de Python: Python Documentation.

 Plataformas de práctica en línea como Codecademy y HackerRank.

Proyectos de Práctica:

1. Calculadora Interactiva:

 Crea una calculadora que pueda realizar operaciones básicas según la entrada
del usuario.

2. Gestor de Tareas:

 Desarrolla una aplicación simple para agregar, editar y eliminar tareas.

3. Análisis de Datos Básico:


 Utiliza Python para analizar y visualizar datos simples, por ejemplo, utilizando
la librería matplotlib.

LECCIÓN 1: INTRODUCCIÓN A PYTHON

1.1 Historia y Filosofía de Python

 Historia:

 Python fue creado por Guido van Rossum y su primera versión, Python 0.9.0,
fue lanzada en febrero de 1991. Van Rossum quería crear un lenguaje que
fuera fácil de leer y que permitiera a los programadores expresar conceptos en
menos líneas de código que en lenguajes como C++ o Java.

 Filosofía de Python (The Zen of Python):

 El diseño de Python sigue los principios establecidos en "The Zen of Python",


una colección de 19 aforismos que describen la filosofía del lenguaje. Algunos
de ellos incluyen:

 Legibilidad cuenta: El código debe ser claro y fácil de entender.

 Explícito es mejor que implícito: Es preferible ser claro en lugar de


ingenioso.

 Simple es mejor que complejo: La simplicidad es valiosa.

1.2 Versatilidad y Aplicaciones de Python

 Versatilidad:

 Python es conocido como un "lenguaje de propósito general", lo que significa


que es adecuado para una amplia variedad de aplicaciones. Puede ser utilizado
en desarrollo web, análisis de datos, inteligencia artificial, automatización,
scripting, entre otros.

 Desarrollo Web con Flask y Django:

 Flask y Django son dos populares frameworks web en Python. Flask es más
ligero y fácil de aprender, mientras que Django es un marco más completo y
estructurado.

 Ciencia de Datos con NumPy y Pandas:

 NumPy y Pandas son librerías fundamentales para el análisis de datos en


Python. Facilitan la manipulación y el análisis de grandes conjuntos de datos.

 Inteligencia Artificial con TensorFlow y PyTorch:

 Python es ampliamente utilizado en el campo de la inteligencia artificial.


TensorFlow y PyTorch son dos librerías populares para el desarrollo de
modelos de machine learning.
 Automatización y Scripting:

 Python es excelente para la automatización de tareas y scripting. Puedes


escribir scripts para realizar diversas acciones, desde procesamiento de
archivos hasta tareas del sistema.

1.3 Instalación de Python y Configuración del Entorno de Desarrollo

 Descarga e Instalación de Python:

 Visita el sitio oficial de Python en python.org.

 Descarga la versión más reciente de Python según tu sistema operativo.

 Sigue las instrucciones de instalación.

 Configuración del Entorno de Desarrollo (IDE):

 Un Entorno de Desarrollo Integrado (IDE) facilita la escritura y ejecución de


código. Puedes utilizar IDEs como PyCharm, VSCode, o el propio IDLE de
Python.

 Verificación de la Instalación:

 Abre una terminal o línea de comandos.

 Escribe python --version o python -V para verificar la instalación y la versión.

LECCIÓN 2: SINTAXIS BÁSICA DE PYTHON

2.1 Imprimir en Pantalla

 Función print():

 En Python, la función print() se utiliza para imprimir información en la pantalla.


Puedes imprimir texto, variables y resultados de expresiones.

pythonCopy code

print("¡Hola, Python!")

Esto imprimirá "¡Hola, Python!" en la consola.

2.2 Variables y Tipos de Datos

 Declaración de Variables:

 En Python, puedes declarar una variable y asignarle un valor en una sola línea.

pythonCopy code

mensaje = "Hola, Python"

 La variable mensaje ahora contiene la cadena "Hola, Python".

 Tipos de Datos Básicos:


 Python tiene varios tipos de datos básicos:

 int: Números enteros (ejemplo: 5).

 float: Números decimales (ejemplo: 3.14).

 str: Cadenas de texto (ejemplo: "Python").

 bool: Valores booleanos (True o False).

pythonCopy code

numero_entero = 42 numero_decimal = 3.14 texto = "Hola, mundo" es_verdadero = True

2.3 Operadores en Python

 Operadores Aritméticos:

 Python incluye operadores aritméticos estándar como suma (+), resta (-),
multiplicación (*), división (/) y módulo (%).

pythonCopy code

resultado = 10 + 5 # suma

 Operadores de Comparación y Lógicos:

 Puedes comparar valores usando operadores como == (igual a), != (no igual a),
< (menor que), > (mayor que), etc.

pythonCopy code

comparacion = 5 > 3 # True

 Los operadores lógicos incluyen and, or y not.

pythonCopy code

logica = True and False # False

2.4 Operadores de Asignación

 Operadores de Asignación Abreviada:

 Python admite operadores de asignación abreviada como +=, -=, *=, /=, que
permiten actualizar el valor de una variable de manera concisa.

pythonCopy code

contador = 0 contador += 1 # Incrementa contador en 1


LECCIÓN 3: OPERADORES EN PYTHON

3.1 Operadores Aritméticos

 Suma +:

pythonCopy code

suma = 5 + 3 # resultado: 8

 Resta -:

pythonCopy code

resta = 7 - 2 # resultado: 5

 Multiplicación *:

pythonCopy code

multiplicacion = 4 * 6 # resultado: 24

 División /:

pythonCopy code

division = 10 / 2 # resultado: 5.0 (en Python 3)

 Módulo %:

pythonCopy code

modulo = 11 % 3 # resultado: 2 (resto de la división)

 Potencia **:

pythonCopy code

potencia = 2 ** 3 # resultado: 8

3.2 Operadores de Comparación

 Igual a ==:

pythonCopy code

resultado = (5 == 5) # True

 No igual a !=:

pythonCopy code

resultado = (7 != 3) # True

 Mayor que > y Menor que <:

pythonCopy code

mayor = (8 > 5) # True menor = (4 < 2) # False

 Mayor o igual que >= y Menor o igual que <=:


pythonCopy code

mayor_igual = (6 >= 6) # True menor_igual = (3 <= 2) # False

3.3 Operadores Lógicos

 and:

pythonCopy code

resultado = True and False # False

 or:

pythonCopy code

resultado = True or False # True

 not:

pythonCopy code

resultado = not True # False

 Precedencia de Operadores:

 Los operadores se evalúan en un orden específico. Puedes usar paréntesis


para cambiar la precedencia.

pythonCopy code

resultado = 5 + 3 * 2 # resultado: 11 (multiplicación primero) resultado = (5 + 3) * 2 #


resultado: 16 (suma primero con paréntesis)

Esta lección te proporciona una comprensión sólida de los operadores en Python.

LECCIÓN 4: ESTRUCTURAS DE CONTROL DE FLUJO EN PYTHON (COMPLETA Y DETALLADA)

4.1 Condicionales (if, else, elif)

4.1.1 Declaración if

La declaración if se utiliza para tomar decisiones en tu programa. Es como darle instrucciones a


Python para que haga algo solo si una condición es verdadera.

Ejemplo:

pythonCopy code

edad = 18 if edad >= 18: print("Eres mayor de edad")

Explicación:

 Aquí le estamos diciendo a Python: "Si la edad es igual o mayor a 18, imprime 'Eres
mayor de edad'".
4.1.2 Declaración else

La declaración else se utiliza para manejar el caso en que la condición en if no sea verdadera.

Ejemplo:

pythonCopy code

edad = 16 if edad >= 18: print("Eres mayor de edad") else: print("Eres menor de edad")

Explicación:

 Si la edad no es mayor o igual a 18, Python imprimirá "Eres menor de edad" gracias a
else.

4.1.3 Declaración elif

La declaración elif te permite manejar varias condiciones en una estructura if.

Ejemplo:

pythonCopy code

puntaje = 85 if puntaje >= 90: print("A") elif puntaje >= 80: print("B") else: print("C")

Explicación:

 Imprime "A" si el puntaje es 90 o más, "B" si es 80 o más pero menos de 90, y "C" en
otros casos.

4.2 Bucles (while, for)

4.2.1 Bucle while

El bucle while se utiliza para repetir un bloque de código mientras una condición sea
verdadera.

Ejemplo:

pythonCopy code

contador = 0 while contador < 5: print(contador) contador += 1

Explicación:

 Este código imprimirá los números del 0 al 4 porque contador < 5 es verdadero.

4.2.2 Bucle for

El bucle for se utiliza para iterar sobre una secuencia de elementos.

Ejemplo:

pythonCopy code

frutas = ["manzana", "banana", "cereza"] for fruta in frutas: print(fruta)

Explicación:

 Imprime cada elemento de la lista frutas en una nueva línea.


4.2.3 Instrucciones break y continue

break se utiliza para salir completamente de un bucle, y continue se utiliza para pasar a la
siguiente iteración del bucle.

Ejemplo:

pythonCopy code

for i in range(10): if i == 5: break # Sale del bucle cuando i es igual a 5 print(i)

Explicación:

 Imprime los números del 0 al 4 y luego sale del bucle cuando i es igual a 5.

4.3 Estructuras para Usuarios Avanzados

4.3.1 Excepciones (try, except, finally)

Las excepciones manejan errores y situaciones excepcionales en el código.

Ejemplo:

pythonCopy code

try: resultado = 10 / 0 except ZeroDivisionError: print("No se puede dividir por cero") finally:
print("Esta parte siempre se ejecuta")

Explicación:

 Intenta hacer una operación aritmética. Si hay un error (como dividir por cero), maneja
la excepción en except.

4.3.2 Context Managers (with)

Los context managers facilitan la gestión de recursos, como abrir y cerrar archivos de manera
automática.

Ejemplo:

pythonCopy code

with open("archivo.txt", "r") as archivo: contenido = archivo.read() # Hacer algo con el


contenido del archivo # El archivo se cierra automáticamente fuera del bloque "with"

Explicación:

 Abre un archivo y realiza operaciones. El archivo se cierra automáticamente fuera del


bloque "with".

4.3.3 Generadores

Los generadores permiten la creación eficiente de secuencias de datos.

Ejemplo:

pythonCopy code

generador = (x ** 2 for x in range(5)) for cuadrado in generador: print(cuadrado)


Explicación:

 Crea un generador que produce cuadrados de números del 0 al 4 y los imprime.

4.4 Resumen

Estas estructuras de control de flujo son esenciales en Python. Las condicionales y bucles son
fundamentales, mientras que las estructuras avanzadas proporcionan herramientas más
poderosas para situaciones específicas. ¡La práctica con ejemplos simples te ayudará a
comprender mejor cómo utilizarlas en tus programas!

LECCIÓN 5: FUNCIONES EN PYTHON

5.1 ¿Qué es una función?

En programación, una función es un bloque de código reutilizable que realiza una tarea
específica. Las funciones ayudan a organizar y modularizar el código, permitiendo que partes
específicas sean ejecutadas cuando se necesiten.

5.2 ¿Cómo se define una función?

En Python, una función se define con la palabra clave def, seguida del nombre de la función y
paréntesis que pueden contener parámetros.

Ejemplo:

pythonCopy code

def saludar(): print("¡Hola!")

Explicación:

 Hemos definido una función llamada saludar que simplemente imprime "¡Hola!".

5.3 ¿Cómo se llama a una función?

Para llamar a una función y ejecutar su código, simplemente escribimos el nombre de la


función seguido de paréntesis.

Ejemplo:

pythonCopy code

saludar()

Explicación:

 Al llamar a saludar(), se ejecuta el código dentro de la función y se imprime "¡Hola!".

5.4 Parámetros de una función

Las funciones pueden aceptar parámetros, que son valores que la función puede usar durante
su ejecución.

Ejemplo:
pythonCopy code

def saludar_persona(nombre): print("¡Hola, " + nombre + "!")

Explicación:

 Hemos definido una función llamada saludar_persona que toma un parámetro


nombre y lo utiliza para imprimir un saludo personalizado.

Ejemplo de llamada con parámetro:

pythonCopy code

saludar_persona("Juan")

Explicación:

 Al llamar a saludar_persona("Juan"), se ejecuta el código dentro de la función y se


imprime "¡Hola, Juan!".

5.5 Valor de retorno

Las funciones pueden devolver un valor utilizando la palabra clave return. Este valor puede ser
utilizado en el código que llamó a la función.

Ejemplo:

pythonCopy code

def sumar(a, b): resultado = a + b return resultado

Explicación:

 Hemos definido una función llamada sumar que toma dos parámetros a y b, realiza
una operación y devuelve el resultado.

Ejemplo de llamada y uso del valor de retorno:

pythonCopy code

resultado_suma = sumar(3, 5) print("La suma es:", resultado_suma)

Explicación:

 Al llamar a sumar(3, 5), la función devuelve 8, y ese valor se almacena en la variable


resultado_suma y se imprime.

5.6 Argumentos predeterminados

Las funciones pueden tener argumentos con valores predeterminados, lo que significa que si
no se proporciona un valor al llamar a la función, se utiliza el valor predeterminado.

Ejemplo:

pythonCopy code

def saludar_con_saludo(saludo="Hola"): print(saludo + " a todos")

Explicación:
 Hemos definido una función llamada saludar_con_saludo que toma un parámetro
saludo con un valor predeterminado "Hola".

Ejemplo de llamada sin proporcionar un valor:

pythonCopy code

saludar_con_saludo()

Explicación:

 Al llamar a saludar_con_saludo(), se utiliza el valor predeterminado y se imprime


"Hola a todos".

5.7 Ámbito de las variables

Las variables definidas dentro de una función tienen un ámbito local y solo son accesibles
dentro de esa función. Las variables definidas fuera de una función tienen un ámbito global y
son accesibles desde cualquier lugar del código.

Ejemplo:

pythonCopy code

variable_global = "Soy global" def imprimir_variable_local(): variable_local = "Soy local"


print(variable_local) imprimir_variable_local() print(variable_global)

Explicación:

 variable_local solo es accesible dentro de imprimir_variable_local().

 variable_global es accesible en cualquier parte del código.

5.8 Documentación de funciones

Es una buena práctica documentar funciones para explicar su propósito y cómo deben ser
utilizadas. Esto se hace mediante un comentario llamado docstring, que es una cadena de
texto triple (comillas simples o dobles) colocada justo debajo de la definición de la función.

Ejemplo:

pythonCopy code

def multiplicar(a, b): """ Esta función multiplica dos números y devuelve el resultado. """
resultado = a * b return resultado

Explicación:

 El docstring proporciona información sobre el propósito de la función y cómo debe ser


utilizada.

5.9 Funciones como objetos y parámetros de funciones

En Python, las funciones son objetos de primera clase, lo que significa que puedes pasar
funciones como argumentos a otras funciones y devolver funciones desde otras funciones.

Ejemplo:

pythonCopy code
def suma(a, b): return a + b def operacion(func, x, y): return func(x, y) resultado =
operacion(suma, 3, 4) print(resultado)

Explicación:

 La función operacion toma otra función func y la utiliza para realizar una operación
con x e y.

 En este caso, pasamos la función suma como argumento a operacion.

5.10 Resumen

Las funciones son bloques de código reutilizables que ayudan a organizar y modularizar
programas. Pueden aceptar parámetros, devolver valores y tener un ámbito local o global. La
documentación de funciones y la capacidad de trabajar con funciones como objetos hacen que
Python sea flexible y poderoso en el manejo de funciones. ¡Practica la creación y llamada de
funciones para mejorar tu habilidad en Python!

LECCIÓN 6: LISTAS Y TUPLAS EN PYTHON

6.1 Listas

Las listas en Python son estructuras de datos versátiles y dinámicas que te permiten almacenar
y organizar colecciones de elementos. Puedes pensar en ellas como contenedores flexibles que
pueden contener diferentes tipos de datos, como números, cadenas de texto o incluso otras
listas. Una de las principales características de las listas es su capacidad para cambiar y crecer
durante la ejecución del programa.

Cuando creas una lista, encierras los elementos entre corchetes [] y los separas por comas.
Cada elemento en la lista tiene un índice, que comienza desde 0. Esto significa que puedes
acceder a un elemento específico utilizando su posición en la lista.

Las listas en Python son mutables, lo que significa que puedes modificar su contenido. Puedes
cambiar el valor de un elemento, agregar nuevos elementos al final de la lista o incluso
eliminar elementos. Además, las listas admiten la iteración, lo que facilita la realización de
operaciones en cada elemento de la lista utilizando bucles.

6.1.1 Creación de Listas

Crear una lista es sencillo. Simplemente encierra los elementos entre corchetes [] y sepáralos
por comas.

Ejemplo:

pythonCopy code

frutas = ["manzana", "banana", "cereza"]

Explicación:

 Hemos creado una lista llamada frutas que contiene tres elementos: "manzana",
"banana" y "cereza".
6.1.2 Acceso a Elementos de una Lista

Los elementos en una lista están indexados, comenzando desde 0. Puedes acceder a un
elemento especificando su índice entre corchetes.

Ejemplo:

pythonCopy code

primera_fruta = frutas[0] print(primera_fruta)

Explicación:

 Al acceder a frutas[0], obtenemos el primer elemento de la lista, que es "manzana".

6.1.3 Modificación de Elementos de una Lista

Las listas son mutables, lo que significa que puedes cambiar el valor de un elemento específico
utilizando su índice.

Ejemplo:

pythonCopy code

frutas[1] = "uva" print(frutas)

Explicación:

 Hemos cambiado el segundo elemento de la lista a "uva".

6.1.4 Agregar Elementos a una Lista

Puedes agregar elementos al final de una lista utilizando el método append().

Ejemplo:

pythonCopy code

frutas.append("kiwi") print(frutas)

Explicación:

 Hemos agregado "kiwi" al final de la lista.

6.1.5 Longitud de una Lista

Para saber cuántos elementos tiene una lista, puedes utilizar la función len().

Ejemplo:

pythonCopy code

longitud = len(frutas) print(longitud)

Explicación:

 La función len(frutas) devuelve el número de elementos en la lista frutas.

6.1.6 Iterar sobre una Lista

Puedes utilizar bucles para recorrer todos los elementos de una lista.
Ejemplo:

pythonCopy code

for fruta in frutas: print(fruta)

Explicación:

 Este bucle imprime cada elemento de la lista frutas en una nueva línea.

6.2 Tuplas

Las tuplas son estructuras de datos similares a las listas, pero con una diferencia fundamental:
son inmutables. Una vez que defines una tupla, no puedes modificar su contenido. Esto
significa que las tuplas son estáticas y no cambian durante la ejecución del programa.

Las tuplas se crean utilizando paréntesis () y pueden contener diferentes tipos de datos.
Aunque no puedes modificar los elementos de una tupla después de su creación, aún puedes
acceder a ellos utilizando índices.

La inmutabilidad de las tuplas las hace útiles en situaciones donde necesitas asegurarte de que
los datos no cambien accidentalmente. Por ejemplo, podrías usar una tupla para representar
coordenadas fijas en un plano, donde las posiciones x e y no deben modificarse.

6.2.1 Creación de Tuplas

Crear una tupla es similar a una lista, pero se utiliza paréntesis () en lugar de corchetes.

Ejemplo:

pythonCopy code

coordenadas = (3, 4)

Explicación:

 Hemos creado una tupla llamada coordenadas con dos elementos: 3 y 4.

6.2.2 Acceso a Elementos de una Tupla

Al igual que con las listas, puedes acceder a los elementos de una tupla utilizando índices.

Ejemplo:

pythonCopy code

x = coordenadas[0] print(x)

Explicación:

 Al acceder a coordenadas[0], obtenemos el primer elemento de la tupla.

6.2.3 Inmutabilidad de las Tuplas

Una característica crucial de las tuplas es que son inmutables. No puedes modificar sus valores
después de haber sido creadas.

Ejemplo:

pythonCopy code
# Esto generará un error coordenadas[0] = 5

Explicación:

 Obtendrás un error porque estás tratando de modificar una tupla, lo cual no está
permitido.

6.2.4 Ventajas de las Tuplas

Las tuplas son útiles cuando necesitas asegurarte de que los datos no cambien
accidentalmente. Por ejemplo, podrías usar una tupla para representar coordenadas fijas en
un plano, donde las posiciones x e y no deben modificarse.

Ejemplo:

pythonCopy code

punto_fijo = (0, 0)

Explicación:

 Creamos una tupla para representar un punto fijo en un plano, y sabemos que sus
coordenadas no cambiarán.

6.3 Resumen

Las listas y las tuplas en Python son herramientas fundamentales para organizar y manipular
datos. La elección entre usar una lista o una tupla dependerá de si necesitas la flexibilidad de
una estructura mutable o la estabilidad de una estructura inmutable.

LECCIÓN 7: ESTRUCTURAS DE DATOS AVANZADAS EN PYTHON

En Python, además de listas y tuplas, existen estructuras de datos más avanzadas que ofrecen
funcionalidades específicas para resolver diversos problemas. Exploraremos tres de estas
estructuras: conjuntos (set), diccionarios (dict), y estructuras de datos basadas en la librería
collections.

7.1 Conjuntos (set)

Un conjunto es una colección desordenada de elementos únicos. La principal característica de


un conjunto es que no permite elementos duplicados. Los conjuntos son útiles cuando
necesitas almacenar elementos sin preocuparte por su orden y quieres asegurarte de que no
hay duplicados.

7.1.1 Creación de Conjuntos

Puedes crear un conjunto utilizando la función set() o encerrando los elementos entre llaves {}.

Ejemplo:

pythonCopy code

frutas_set = {"manzana", "banana", "cereza"}


Explicación:

 Hemos creado un conjunto llamado frutas_set con tres elementos.

7.1.2 Operaciones con Conjuntos

Los conjuntos admiten operaciones como unión, intersección y diferencia.

Ejemplo:

pythonCopy code

frutas_set_2 = {"banana", "uva", "kiwi"} union = frutas_set.union(frutas_set_2) interseccion =


frutas_set.intersection(frutas_set_2) diferencia = frutas_set.difference(frutas_set_2)
print("Unión:", union) print("Intersección:", interseccion) print("Diferencia:", diferencia)

Explicación:

 Realizamos operaciones de unión, intersección y diferencia entre dos conjuntos.

7.2 Diccionarios (dict)

Un diccionario es una colección desordenada de pares clave-valor. Cada elemento en un


diccionario tiene una clave única asociada a un valor. Los diccionarios son ideales cuando
necesitas almacenar y recuperar datos de forma eficiente utilizando una clave.

7.2.1 Creación de Diccionarios

Puedes crear un diccionario encerrando pares clave-valor entre llaves {}.

Ejemplo:

pythonCopy code

frutas_dict = {"manzana": 3, "banana": 5, "cereza": 2}

Explicación:

 Hemos creado un diccionario llamado frutas_dict con tres pares clave-valor.

7.2.2 Acceso a Elementos en un Diccionario

Puedes acceder a un valor utilizando la clave correspondiente.

Ejemplo:

pythonCopy code

cantidad_bananas = frutas_dict["banana"] print(cantidad_bananas)

Explicación:

 Al acceder a frutas_dict["banana"], obtenemos el valor asociado a la clave "banana".

7.2.3 Modificación y Agregado de Elementos en un Diccionario

Puedes modificar el valor de una clave existente o agregar un nuevo par clave-valor.

Ejemplo:
pythonCopy code

frutas_dict["kiwi"] = 4 frutas_dict["manzana"] = 6

Explicación:

 Hemos agregado la clave "kiwi" con el valor 4 y modificado el valor de la clave


"manzana" a 6.

7.3 Estructuras de Datos de la Librería collections

La librería collections ofrece estructuras de datos adicionales que extienden las capacidades de
las listas, tuplas y diccionarios.

7.3.1 namedtuple

namedtuple crea tuplas con campos nombrados, lo que hace que sea más legible y
autodocumentado.

Ejemplo:

pythonCopy code

from collections import namedtuple Punto = namedtuple("Punto", ["x", "y"]) p = Punto(3, 4)


print("Coordenadas:", p.x, p.y)

Explicación:

 Creamos una namedtuple llamada Punto con campos x e y.

7.3.2 defaultdict

defaultdict es similar a un diccionario, pero permite especificar un valor predeterminado para


claves que aún no existen.

Ejemplo:

pythonCopy code

from collections import defaultdict frutas_defaultdict = defaultdict(int)


frutas_defaultdict["manzana"] += 3 frutas_defaultdict["banana"] += 5 print("Cantidad de
manzanas:", frutas_defaultdict["manzana"]) print("Cantidad de uvas:",
frutas_defaultdict["uva"])

Explicación:

 Creamos un defaultdict donde el valor predeterminado para nuevas claves es 0.

7.3.3 Counter

Counter cuenta la frecuencia de elementos en una colección.

Ejemplo:

pythonCopy code

from collections import Counter frutas_lista = ["manzana", "banana", "manzana", "uva",


"manzana", "banana"] conteo_frutas = Counter(frutas_lista) print("Conteo de frutas:",
conteo_frutas)
Explicación:

 Utilizamos Counter para contar la frecuencia de cada elemento en una lista.

7.4 Resumen

Las estructuras de datos avanzadas en Python, como conjuntos, diccionarios y las


proporcionadas por la librería collections, son herramientas poderosas para manejar datos de
manera eficiente y resolver problemas específicos. Selecciona la estructura que mejor se
adapte a tus necesidades según las características particulares de cada una. ¡Sigue explorando
y practicando para mejorar tu comprensión y habilidades en Python!

LECCIÓN 8: PROGRAMACIÓN ORIENTADA A OBJETOS (OOP) EN PYTHON

La Programación Orientada a Objetos (OOP) es un paradigma de programación que utiliza


conceptos como clases y objetos para organizar y estructurar el código. En Python, todo es un
objeto, y casi todo tiene propiedades y métodos. A continuación, exploraremos los
fundamentos de la OOP en Python.

8.1 Clases y Objetos

8.1.1 Definición de una Clase

En OOP, una clase es una plantilla para crear objetos. Los objetos son instancias de una clase.
Definimos una clase utilizando la palabra clave class.

Ejemplo:

pythonCopy code

class Coche: def __init__(self, marca, modelo, año): self.marca = marca self.modelo = modelo
self.año = año def obtener_informacion(self): return f"{self.marca} {self.modelo} ({self.año})"

Explicación:

 Hemos definido una clase Coche con un constructor __init__ que inicializa las
propiedades marca, modelo y año. También hemos definido un método
obtener_informacion que devuelve una cadena con la información del coche.

8.1.2 Creación de un Objeto

Creamos objetos instanciando una clase. Los objetos son instancias únicas de la clase, cada
uno con sus propias propiedades.

Ejemplo:

pythonCopy code

coche_1 = Coche("Toyota", "Camry", 2022) coche_2 = Coche("Honda", "Accord", 2023)

Explicación:

 Hemos creado dos objetos coche_1 y coche_2 utilizando la clase Coche con valores
específicos para cada propiedad.
8.1.3 Acceso a Propiedades y Métodos

Podemos acceder a las propiedades y métodos de un objeto utilizando la notación de punto.

Ejemplo:

pythonCopy code

print(coche_1.marca) print(coche_2.obtener_informacion())

Explicación:

 Hemos accedido a la propiedad marca de coche_1 y al método obtener_informacion


de coche_2.

8.2 Herencia

La herencia permite que una clase herede propiedades y métodos de otra clase. La clase que
hereda se llama subclase, y la clase de la cual se hereda se llama superclase.

Ejemplo:

pythonCopy code

class CocheElectrico(Coche): def __init__(self, marca, modelo, año, autonomia):


super().__init__(marca, modelo, año) self.autonomia = autonomia def
obtener_informacion(self): info_coche = super().obtener_informacion() return f"{info_coche} -
Autonomía: {self.autonomia} km"

Explicación:

 Hemos creado una subclase CocheElectrico que hereda de la clase Coche. La subclase
tiene su propio constructor y método obtener_informacion, que también llama al
método de la superclase.

8.3 Encapsulamiento

El encapsulamiento limita el acceso directo a algunas de las propiedades y métodos de un


objeto. En Python, se utiliza una convención de nomenclatura para indicar que una propiedad
o método es privado.

Ejemplo:

pythonCopy code

class Persona: def __init__(self, nombre, edad): self._nombre = nombre self._edad = edad def
obtener_nombre(self): return self._nombre def establecer_edad(self, nueva_edad): if
nueva_edad > 0: self._edad = nueva_edad

Explicación:

 Hemos utilizado un guion bajo como prefijo (_nombre y _edad) para indicar que estas
propiedades son privadas. También hemos proporcionado métodos para obtener el
nombre y establecer la edad de manera controlada.

8.4 Polimorfismo
El polimorfismo permite que objetos de diferentes clases sean tratados como objetos de una
clase común. Esto se logra mediante el uso de métodos con el mismo nombre en diferentes
clases.

Ejemplo:

pythonCopy code

class Gato: def hacer_sonido(self): return "Miau" class Perro: def hacer_sonido(self): return
"Guau" def hacer_sonido_animal(animal): return animal.hacer_sonido() gato = Gato() perro =
Perro() print(hacer_sonido_animal(gato)) # Salida: Miau print(hacer_sonido_animal(perro)) #
Salida: Guau

Explicación:

 Hemos creado las clases Gato y Perro con un método común hacer_sonido. La función
hacer_sonido_animal puede aceptar tanto un gato como un perro y llamar al método
correspondiente.

8.5 Resumen

La Programación Orientada a Objetos es una forma poderosa de organizar y estructurar código


en Python. Con clases y objetos, puedes modelar conceptos del mundo real de manera más
efectiva. La herencia, encapsulamiento y polimorfismo son conceptos clave que mejoran la
reutilización del código y la claridad en el diseño de software. ¡Explora y practica estos
conceptos para fortalecer tu comprensión de la OOP en Python!

LECCIÓN 9: MANEJO DE ERRORES EN PYTHON

El manejo de errores es una parte esencial de la programación para garantizar que tu código
sea robusto y pueda manejar situaciones inesperadas. Python proporciona una estructura de
manejo de errores mediante el uso de bloques try, except y finally.

9.1 Bloque try y except

El bloque try se utiliza para encerrar el código que podría generar una excepción. Si se produce
una excepción, el control del programa se transfiere al bloque except correspondiente.

Ejemplo:

pythonCopy code

try: resultado = 10 / 0 except ZeroDivisionError: print("Error: División por cero.")

Explicación:

 Hemos intentado realizar una división por cero, lo cual genera una excepción
ZeroDivisionError. El bloque except maneja esta excepción e imprime un mensaje de
error.
9.2 Manejo de Excepciones Múltiples

Puedes manejar múltiples excepciones en un solo bloque except o tener varios bloques except
para diferentes tipos de excepciones.

Ejemplo:

pythonCopy code

try: valor = int("abc") except ValueError: print("Error: No se puede convertir a entero.") except
Exception as e: print(f"Error inesperado: {e}")

Explicación:

 Intentamos convertir la cadena "abc" a un entero, lo cual genera una excepción


ValueError. El primer bloque except maneja esta excepción, y el segundo bloque
except maneja cualquier otra excepción, mostrando un mensaje más general.

9.3 Bloque finally

El bloque finally se utiliza para ejecutar código independientemente de si se produce una


excepción o no. Este bloque es útil para realizar acciones de limpieza o liberación de recursos.

Ejemplo:

pythonCopy code

try: archivo = open("archivo.txt", "r") contenido = archivo.read() except FileNotFoundError:


print("Error: Archivo no encontrado.") finally: if 'archivo' in locals(): archivo.close()

Explicación:

 Intentamos abrir un archivo para lectura, y si el archivo no se encuentra, se maneja la


excepción FileNotFoundError. El bloque finally asegura que el archivo se cierre,
incluso si se produce una excepción.

9.4 Bloque else

El bloque else se ejecuta solo si no se produce ninguna excepción en el bloque try.

Ejemplo:

pythonCopy code

try: resultado = 10 / 2 except ZeroDivisionError: print("Error: División por cero.") else:


print(f"Resultado: {resultado}")

Explicación:

 Intentamos realizar una división, y como no se produce ninguna excepción, el bloque


else se ejecuta, mostrando el resultado.

9.5 Lanzamiento de Excepciones

Puedes lanzar manualmente excepciones utilizando la palabra clave raise.

Ejemplo:

pythonCopy code
def dividir(a, b): if b == 0: raise ValueError("No se puede dividir por cero.") return a / b try:
resultado = dividir(10, 0) except ValueError as e: print(f"Error: {e}")

Explicación:

 Hemos definido una función dividir que lanza una excepción ValueError si intentamos
dividir por cero. En el bloque try, intentamos llamar a esta función con una división por
cero y manejamos la excepción.

9.6 Resumen

El manejo de errores en Python mediante los bloques try, except, else, finally, y el
lanzamiento de excepciones con raise, te permite construir programas más robustos y prever
situaciones inesperadas. Aprender a identificar y manejar adecuadamente las excepciones te
ayudará a mejorar la calidad y confiabilidad de tu código. ¡Practica y familiarízate con estas
técnicas para mejorar tu habilidad en el manejo de errores en Python!

LECCIÓN 10: MÓDULOS Y PAQUETES EN PYTHON

En Python, los módulos y paquetes son herramientas esenciales para organizar y reutilizar
código. Un módulo es simplemente un archivo de Python, mientras que un paquete es un
conjunto de módulos organizados en directorios. A continuación, exploraremos cómo trabajar
con módulos y paquetes.

10.1 Creación de un Módulo

Crear un módulo es tan simple como escribir código Python en un archivo y guardarlo con la
extensión .py. Vamos a crear un módulo llamado operaciones con algunas funciones
matemáticas básicas.

Contenido del archivo operaciones.py:

pythonCopy code

def suma(a, b): return a + b def resta(a, b): return a - b def multiplicacion(a, b): return a * b def
division(a, b): if b != 0: return a / b else: return "Error: División por cero."

Explicación:

 Hemos definido cuatro funciones matemáticas en el módulo operaciones.

10.2 Uso de un Módulo

Puedes utilizar un módulo importándolo en otro script Python. Utilizaremos el módulo


operaciones en un nuevo script llamado uso_operaciones.py.

Contenido del archivo uso_operaciones.py:

pythonCopy code
import operaciones a = 10 b = 5 print("Suma:", operaciones.suma(a, b)) print("Resta:",
operaciones.resta(a, b)) print("Multiplicación:", operaciones.multiplicacion(a, b))
print("División:", operaciones.division(a, b))

Explicación:

 Hemos importado el módulo operaciones y utilizado sus funciones en el script


uso_operaciones.py.

10.3 Creación de un Paquete

Crear un paquete implica organizar varios módulos relacionados en un directorio. Vamos a


crear un paquete llamado geometria que contiene módulos para cálculos geométricos.

Estructura del directorio:

luaCopy code

mi_proyecto/ |-- geometria/ | |-- __init__.py | |-- area.py | |-- perimetro.py |-- main.py

Contenido del archivo area.py:

pythonCopy code

def calcular_area_cuadrado(lado): return lado * lado def calcular_area_circulo(radio): return


3.14 * radio ** 2

Contenido del archivo perimetro.py:

pythonCopy code

def calcular_perimetro_cuadrado(lado): return 4 * lado def calcular_perimetro_circulo(radio):


return 2 * 3.14 * radio

Explicación:

 Hemos creado un paquete geometria con dos módulos, area y perimetro.

10.4 Uso de un Paquete

Puedes utilizar un paquete de la misma manera que un módulo, simplemente importándolo.


Utilizaremos el paquete geometria en el script main.py.

Contenido del archivo main.py:

pythonCopy code

from geometria import area, perimetro lado_cuadrado = 5 radio_circulo = 3 print("Área del


cuadrado:", area.calcular_area_cuadrado(lado_cuadrado)) print("Perímetro del cuadrado:",
perimetro.calcular_perimetro_cuadrado(lado_cuadrado)) print("Área del círculo:",
area.calcular_area_circulo(radio_circulo)) print("Perímetro del círculo:",
perimetro.calcular_perimetro_circulo(radio_circulo))

Explicación:

 Hemos importado los módulos del paquete geometria y utilizado sus funciones en el
script main.py.
10.5 __init__.py en Paquetes

El archivo __init__.py en un directorio indica que ese directorio debe tratarse como un
paquete. Puede estar vacío o contener código de inicialización del paquete.

10.6 Resumen

Los módulos y paquetes en Python te permiten organizar y reutilizar tu código de manera


efectiva. Puedes crear tus propios módulos y paquetes para estructurar proyectos más grandes
y facilitar la colaboración. La capacidad de importar módulos y paquetes te brinda flexibilidad y
modularidad en el diseño de tu código. ¡Experimenta con la creación y uso de módulos y
paquetes para mejorar la organización y mantenimiento de tu código en Python!

También podría gustarte