Fundamentos de Programación y Python

1

¿Por qué aprender Python?

2

Introducción a Python

3

Conceptos Básicos de Programación

4

Práctica: Te doy la bienvenida a los ejercicios interactivos

5

Manipulación de Cadenas de Texto en Python

6

Enteros, Flotantes y Booleanos

7

Todo lo que Debes Saber sobre print en Python

8

Operaciones Matemáticas en Python

9

Operaciones de Entrada/Salida en Consola

Colección y Procesamiento de Datos en Python

10

Listas

11

Método slice

12

Listas de más dimensiones y Tuplas

13

Aplicación de Matrices

14

Diccionarios

15

Comprehension Lists en Python (CLASE NUEVA)

Control de Flujo en Python

16

Estructuras condicionales

17

Bucles y Control de Iteraciones

18

Generadores e Iteradores

Funciones y Manejo de Excepciones en Python

19

Uso de Funciones en Python

20

Funciones Lambda y Programación Funcional en Python

21

¿Cómo realizar una función recursiva en Python?

22

Manejo de Excepciones y Uso de Pass (CLASE NUEVA)

Programación Orientada a Objetos en Python

23

Fundamentos de Programación Orientada a Objetos en Python

24

Ejercicio Biblioteca con POO

25

Herencia en POO con Python

26

Objetos heredados

27

Los 4 pilares de la programacion orientada a objetos

28

Uso de super() en Python (CLASE NUEVA)

29

Superando los Fundamentos de Programación Orientada a Objetos en Python

Lectura y escritura de archivos

30

Manejo de Archivos .TXT (CLASE NUEVA)

31

Manejo de Archivos CSV (CLASE NUEVA)

32

Manejo de Archivos JSON (CLASE NUEVA)

Biblioteca estándar de Python

33

Biblioteca estándar en Python (CLASE NUEVA)

34

Librería Os, Math y Random (CLASE NUEVA)

35

Librería Statistics y Análisis Estadístico (CLASE NUEVA)

36

Proyecto final: Guerra naval

Conceptos avanzados de Python

37

Recapitulación de lo aprendido hasta ahora

38

Escribir código Pythonico y profesional

39

Comentarios y Docstrings en Python

40

Scope y closures: variables locales y globales

41

Anotaciones de tipo

42

Validación de tipos en métodos

43

Librería Collections y Enumeraciones

Decoradores

44

Decoradores en Python

45

Decoradores anidados y con parámetros

46

Uso de Decoradores en clases y métodos

Métodos y estructura de clases en Python

47

Métodos mágicos

48

Sobrecarga de operadores

49

Implementación de `if __name__ == "__main__":`

50

Metaprogramación en Python

51

Uso de *args y **kwargs

52

Métodos privados y protegidos

53

Gestión avanzada de propiedades

54

Métodos estáticos y de clase avanzados

Programación concurrente y asíncrona

55

Introducción a la concurrencia y paralelismo

56

Threading y multiprocessing en Python

57

Asincronismo con asyncio

58

Asincronismo y concurrencia

Creación de módulos y paquetes

59

Creación de módulos en Python

60

Gestión de paquetes

61

Publicación de paquetes en PyPI

Proyecto final

62

Implementación de un sistema completo

63

Implementación de un Sistema Completo

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Convierte tus certificados en títulos universitarios en USA

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

18 Días
13 Hrs
11 Min
6 Seg
Curso de Python

Curso de Python

Carli Code

Carli Code

Manejo de Excepciones y Uso de Pass (CLASE NUEVA)

22/63
Recursos

Las excepciones en Python están organizadas en una jerarquía de clases, donde las excepciones más generales se encuentran en la parte superior y las más específicas en la parte inferior.

Esta organización jerárquica permite a los programadores manejar excepciones de manera más precisa y efectiva.

numeros = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
transformados = [x * 2 if x % 2 == 0 else x for x in numeros]
print("Números transformados:", transformados)

Por ejemplo, la excepción Exception es la clase base para la mayoría de las excepciones, y de ella derivan subclases como ArithmeticError y ValueError.

Comprender esta jerarquía es crucial para poder manejar las excepciones adecuadamente y elegir las excepciones específicas que se desean capturar.

A continuación se muestra un código que imprime la jerarquía de excepciones en Python:

def print_exception_hierarchy(exception_class, indent=0):
    print(' ' * indent + exception_class.__name__)
    for subclass in exception_class.__subclasses__():
        print_exception_hierarchy(subclass, indent + 4)

# Imprimir la jerarquía comenzando desde la clase base Exception
print_exception_hierarchy(Exception)

Este código utiliza recursión para recorrer y mostrar las subclases de excepciones, permitiéndote visualizar cómo están organizadas y relacionadas entre sí.

Entender la jerarquía de excepciones en Python es fundamental para escribir código robusto y manejable. Al conocer las relaciones entre las diferentes excepciones, puedes capturar errores de manera más específica, lo que te permite implementar manejadores de excepciones más precisos y efectivos.

Aportes 17

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

🟢 **Cómo levantar errores con 'raise'** En ciertas ocasiones necesitarás errores personalizados para tu programa. Para levantar una excepción o error puedes utilizar `raise` y seguido de la clase del error con un mensaje personalizado. Por ejemplo, creemos una función que evalúe la edad de un usuario no sea negativa y que no sea menor de edad. ```python def verificar_edad(edad): if edad < 0: raise ValueError("La edad no puede ser negativa") elif edad < 18: raise Exception("La persona es menor de edad") else: return "Edad válida" ``` Levantar excepciones hace que nuestro código más **explicativo de lo que debemos o no manejar**. ¡Nunca pares de aprender! 🚀🚀
Oigan estoy loco o esta clase no estaba antes, porque me la pase 🤣, solo ví la pasada que termina con código que te da las jerarquías Aquí como puedo hacerle para que ya se rompa el while ```python while True: try: divisor = int(input("Ingresa un numero divisor: ")) result = 100/divisor print(result) except ZeroDivisionError as e: print("ERROR: No se puede dividir entre 0") print("Ha ocurrido un error del tipo:", e) except ValueError as e: print("ERROR: Debes introducir cualquier numero que no sea cero") print("Ha ocurrido un error del tipo:", e) ```while True:    try:        divisor = *int*(input("Ingresa un numero divisor: "))        result = 100/divisor        print(result)    except *ZeroDivisionError* as e:        print("ERROR: No se puede dividir entre 0")        print("Ha ocurrido un error del tipo:", e)    except *ValueError* as e:        print("ERROR: Debes introducir cualquier numero que no sea cero")        print("Ha ocurrido un error del tipo:", e)
esto parece magia, esta clase no la vi y ahora que reviso el curso esta
## **Manejo de Excepciones y Uso de Pass** El **manejo de excepciones** en Python se hace usando `try` y `except`, para que el programa no se detenga cuando ocurre un error. Cuando algo dentro de `try` genera un error, el flujo salta a `except`, donde puedes manejar el error. Errores comunes: * `SyntaxError`: Ocurre cuando hay un error en la escritura del código, como olvidar un paréntesis. No puedes manejarlo con `try-except` porque impide que el programa se ejecute. * `TypeError`: Sucede cuando tratas de hacer una operación con tipos de datos incompatibles, como sumar un número y una cadena. * `ZeroDivisionError`: Ocurre al intentar dividir entre cero. * `ValueError`: Sucede cuando el tipo de dato es correcto, pero el valor no es válido, como convertir una cadena no numérica en entero: * El uso de `pass` es simplemente para ignorar el error sin hacer nada.
Solución con bucle: while True: try: divisor = int(input("Ingresa un número divisor: ")) result = 100/divisor print(result) break except ZeroDivisionError: print("Error: El divisor no puede ser cero.") except ValueError: print("Error: Debes introducir un número válido.")
`def print_exception_hierarchy(exception_class, indent=0):` ` print(' ' * indent + exception_class.__name__)` ` for subclass in exception_class.__subclasses__():` ` print_exception_hierarchy(subclass, indent + 4)` `print_exception_hierarchy(Exception)`
Si un método no puede manejar un error de forma efectiva, puede **lanzar** el error para que un método superior lo maneje. Este es el principio básico del manejo de excepciones en Python: dejar que los métodos superiores gestionen los errores cuando no pueden ser manejados en el nivel actual. ![](https://static.platzi.com/media/user_upload/image-7b6fad55-729a-4146-940e-88d0e4e7217a.jpg) Resumen raise te permite lanzar excepciones en un método y propagarlas hacia métodos superiores que las manejen. Si el método superior no captura la excepción, se propaga aún más hacia arriba (hacia la capa principal de ejecución). Puedes usar raise para hacer que un método "pase" los errores a otro método que pueda tener más contexto o más capacidades para manejar los errores.
Aquí dejo mi opción de como debería funcionar hasta que el usuario lo desee detener. ```python try: x = True while x == True: try: numero = int(input("\nPor favor ingresa un numero: ")) operacion = 12 / numero print(operacion) respuesta = str(input("\nEscriba [Y] para volver a ejecutar o presione cualquier otra letra Para detener: ")) x = True if respuesta == "Y" or respuesta == "y" else False except ZeroDivisionError as e: print("Error: A ocurrido un error de operacion") print(f"El error es: {e}") except ValueError as e: print("Error: A ocurrido un error con el valor ejecutado") print(f"El error es: {e}") except NameError as ex: print("Error: Problemas con alguna variable") print(f"El error es: {ex}") ```
def print\_exception\_hierarchy(exception\_class, indent=0): print(' ' \* indent + exception\_class.\_\_name\_\_) for subclass in exception\_class.\_\_subclasses\_\_(): print\_exception\_hierarchy(subclass, indent + 4) print\_exception\_hierarchy(Exception)
Exception ArithmeticError FloatingPointError OverflowError ZeroDivisionError AssertionError AttributeError BufferError EOFError ImportError ModuleNotFoundError ZipImportError LookupError IndexError KeyError CodecRegistryError MemoryError NameError UnboundLocalError OSError BlockingIOError ChildProcessError ConnectionError BrokenPipeError ConnectionAbortedError ConnectionRefusedError ConnectionResetError FileExistsError FileNotFoundError InterruptedError IsADirectoryError NotADirectoryError PermissionError ProcessLookupError TimeoutError UnsupportedOperation itimer\_error ReferenceError RuntimeError NotImplementedError RecursionError \_DeadlockError StopAsyncIteration StopIteration SyntaxError IndentationError TabError SystemError CodecRegistryError TypeError ValueError UnicodeError UnicodeDecodeError UnicodeEncodeError UnicodeTranslateError UnsupportedOperation Warning BytesWarning DeprecationWarning EncodingWarning FutureWarning ImportWarning PendingDeprecationWarning ResourceWarning RuntimeWarning SyntaxWarning UnicodeWarning UserWarning ExceptionGroup
Es muy util esta parte porque esto evita que un programa colapse, por las genialidades del usuario final.
Los errores y las excepciones provocan un comportamiento inesperado o detienen la ejecución de un programa. Un error es un problema en un programa que impide que éste complete su tarea. En comparación, una excepción es una condición que interrumpe el flujo normal del programa. Tanto los errores como las excepciones son un tipo de error en tiempo de ejecución, lo que significa que se producen durante la ejecución de un programa. Entender la jerarquía de excepciones en Python es fundamental para escribir código robusto y manejable.
\*\*Uso de la Jerarquía:\*\* \> - Puedes capturar excepciones de nivel superior para manejar varios tipos de errores a la vez. \> - Ejemplo: \> ```python \> try: \> resultado = 10 / 0 \> except ArithmeticError: # Captura ZeroDivisionError y otros errores aritméticos. \> print("Ocurrió un error aritmético.") \> ```
Hay nuevos videos con contenidos excelentes 😲
que significaba el int
En Python, el manejo de excepciones se realiza utilizando bloques `try`, `except`, `else`, y `finally`. También, el uso de la palabra clave `pass` permite manejar situaciones excepcionales sin hacer nada, simplemente ignorando el error o condición. Aquí te explico ambos conceptos con ejemplos: \### 1. Manejo de Excepciones El manejo de excepciones permite capturar errores durante la ejecución de un programa, evitando que este se detenga de forma abrupta. La estructura básica es: ```python try: \# Código que puede lanzar una excepción except TipoDeExcepción: \# Código para manejar la excepción else: \# Código que se ejecuta si no ocurre ninguna excepción finally: \# Código que siempre se ejecuta (opcional) ``` \### Ejemplo de Manejo de Excepciones ```python try: numero = int(input("Introduce un número: ")) print(f"El número ingresado es: {numero}") except ValueError: print("Error: Debes introducir un número válido.") else: print("No ocurrió ninguna excepción.") finally: print("Finalizando la operación.") ``` \- \*\*try:\*\* Intenta ejecutar el código que puede generar una excepción. \- \*\*except:\*\* Captura la excepción `ValueError` (que ocurre cuando intentas convertir un valor no numérico a entero). \- \*\*else:\*\* Se ejecuta si no hay ninguna excepción. \- \*\*finally:\*\* Este bloque siempre se ejecuta, ocurra o no una excepción. \### 2. Uso de `pass` La palabra clave `pass` se utiliza para indicar que no se realizará ninguna acción en un bloque de código. Esto es útil cuando no deseas manejar la excepción de inmediato o cuando estás creando código de prueba. \### Ejemplo con `pass` ```python try: numero = int(input("Introduce un número: ")) except ValueError: pass # Ignora el error si ocurre un ValueError else: print(f"El número ingresado es: {numero}") ``` En este caso, si el usuario introduce un valor que no es un número, el programa no hará nada con el error y continuará ejecutándose sin mostrar un mensaje de error. \### Resumen: \- \*\*Manejo de Excepciones\*\*: Se utiliza `try` y `except` para capturar y manejar errores. \- \*\*`pass`\*\*: Permite ignorar errores o implementar código sin realizar ninguna acción específica cuando ocurre una excepción.
Aquí esta mi solución con bucle: ![](https://static.platzi.com/media/user_upload/code-3b5725c8-b159-4b1c-9ed1-d3ea63fc2df2.jpg)