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

02 Elementos de Python

El documento proporciona una introducción al uso de Python, cubriendo conceptos básicos como variables, tipos de datos, operadores, estructuras de control y tipos de datos avanzados como listas y tuplas. Se explican las características de las variables, la asignación de valores, y cómo se pueden utilizar diferentes tipos de datos en Python, así como las estructuras de control para modificar el flujo del programa. Además, se detallan las operaciones que se pueden realizar con listas y tuplas, incluyendo su manipulación y acceso a elementos.

Cargado por

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

02 Elementos de Python

El documento proporciona una introducción al uso de Python, cubriendo conceptos básicos como variables, tipos de datos, operadores, estructuras de control y tipos de datos avanzados como listas y tuplas. Se explican las características de las variables, la asignación de valores, y cómo se pueden utilizar diferentes tipos de datos en Python, así como las estructuras de control para modificar el flujo del programa. Además, se detallan las operaciones que se pueden realizar con listas y tuplas, incluyendo su manipulación y acceso a elementos.

Cargado por

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

UFV.

ES

Elementos del Python

Curso 2024/2025 Grado en Ingeniería de Sistemas de Inteligencia Artificial


Dr. Gonzalo de las Heras
Variables
Una variable es un espacio de memoria que contiene una cantidad de información, Ejemplo:
conocida o desconocida (es decir, un valor), y que tiene un nombre simbólico asociado.
1. Abrir la consola de Python
En Python, las variables son contenedores para almacenar valores de datos. A diferencia 2. Incluir la declaración de la
de otros lenguajes de programación como Java o C++, Python no requiere un comando variable x = 1
específico para declarar una variable; estas se crean automáticamente en el momento de 3. Incluir la instrucción
help(x) y ver el resultado
su primera asignación de valor.
4. Incluir la instrucción
Las variables en Python pueden ser declaradas con cualquier tipo de dato y tienen la dir(x) y ver el resultado
capacidad de cambiar de tipo después de ser asignadas y utilizadas.

En Python, cada variable es un objeto, lo que implica que soporta ciertas instrucciones
genéricas que proporcionan información sobre dichos objetos:

● help(object) → Muestra información de cómo usar el objeto.


● dir(object) → Muestra la estructura interna del objeto (sus métodos y atributos).

2
Variables
Los nombres válidos para las variables en Python deben cumplir las siguientes normas: Ejemplo:

1. Deben comenzar por una letra o un guion bajo (_). 1. Abrir la consola de Python.
2. No pueden comenzar por un número. 2. Incluir la declaración
3. Solo pueden contener caracteres alfanuméricos y guiones bajos (A-Z, a-z, 0-9, y _). múltiple de variables:
3. Incluir la instrucción
4. Son sensibles a mayúsculas y minúsculas (case-sensitive).
print(x) y observar el
La asignación de valores a una variable se realiza con el operador =. Es en ese momento resultado
4. Incluir la instrucción
cuando se establece el tipo de variable. Es posible realizar una asignación múltiple de variables
print(y) y observar el
de una manera sencilla y rápida: resultado.
x, y, z = "Amarillo", "Azul", "Rojo"

También es posible hacer una asignación múltiple con el mismo valor a diferentes variables:

x = y = z = 1

3
Tipos de datos
Las variables pueden almacenar diferentes tipos de datos y cada tipo permite realizar distintos tipos de acciones y
operaciones. Se puede obtener el tipo de dato de una variable (objeto) usando la función type().

Tipo de Dato Descripción Ejemplo

int Números enteros x = 10

float Números de punto flotante (decimales) y = 3.14

str Cadenas de texto (strings) z = "Hola"

bool Booleanos (Verdadero o Falso) a = True

list Listas (colección ordenada y mutable) b = [1, 2, 3]

tuple Tuplas (colección ordenada e inmutable) c = (4, 5, 6)

4
Tipos de datos
Tipo de Dato Descripción Ejemplo

complex Números complejos g = 1 + 2j

range Rango de números h = range(6)

bytes Secuencia de bytes i = b"Hola"

bytearray Secuencia mutable de bytes j = bytearray(5)

memoryview Vista directa de los datos de un objeto de bytes k = memoryview(bytes(5))

Existen situaciones en las que necesitaremos especificar un tipo de dato en una variable o que necesitaremos convertir
(casting) un tipo de dato en otro.

El casting en Python se realiza utilizando las funciones de construcción para convertir un tipo de dato en otro:

● int() – Conversión a entero. 1. Abrir la consola de Python.


● float() – Conversión a decimal. 2. x = int(1)
● str() – Conversión a cadena de texto. 3. x = float(3)
4. Usa type() y print()para visualizar el valor

5
Operadores - Asignación
Operador Descripción Ejemplo

= Asigna un valor a una variable x = 5

+= Suma y asigna el resultado x += 3 (equivale a x = x + 3)

-= Resta y asigna el resultado x -= 3 (equivale a x = x - 3)

*= Multiplica y asigna el resultado x *= 3 (equivale a x = x * 3)

/= Divide y asigna el resultado x /= 3 (equivale a x = x / 3)

%= Calcula el módulo y asigna el resultado x %= 3 (equivale a x = x % 3)

//= Divide de forma entera y asigna el resultado x //= 3 (equivale a x = x // 3)

**= Exponencial y asigna el resultado x **= 3 (equivale a x = x ** 3)

6
Operadores - Comparación y lógicos
Operador Descripción Ejemplo

== Igual a x == y

!= Distinto de x != y

> Mayor que x > y

< Menor que x < y

>= Mayor o igual que x >= y

<= Menor o igual que x <= y

Operador Descripción Ejemplo

and Devuelve True si ambas condiciones son verdaderas x > 3 and x < 10

or Devuelve True si una de las condiciones es verdadera x > 3 or x < 4

not Invierte el valor de verdad de una condición not(x > 3 and x < 10)

7
Estructuras de control - Condicionales
Las estructuras de control permiten modificar el flujo de ejecución de las instrucciones de un programa:

● De acuerdo con una condición, ejecutar un grupo u otro de sentencias (if).


● Ejecutar un grupo de sentencias hasta que se cumpla una condición (while).
● Ejecutar un grupo de sentencias un número determinado de veces (for).

Sentencia if
Permite ejecutar una o varias instrucciones cuando se cumple la condición establecida.

● Si el resultado es True, se ejecuta el bloque de sentencias.


● Si el resultado es False, no se ejecuta el bloque de sentencias.

Sentencia else
Establece un bloque de instrucciones que se ejecuta en el caso de que no se cumplan las condiciones establecidas
previamente. Requiere una sentencia if previa.

● Si el resultado es True, se ejecuta el bloque de sentencias del if.


● Si el resultado es False, se ejecuta el bloque de sentencias del else.
8
Estructuras de control - Condicionales

Sentencia elif
Es la sentencia para indicar otras condiciones adicionales a la primera condición de la sentencia if. Requiere una sentencia
if previa. Pueden incluirse varios elif para evaluar distintas condiciones.

Indentación
A diferencia de otros lenguajes de programación, como Java o C++, el alcance de los bloques de código en Python se
establece con la indentación (tabular la línea de código) en lugar de utilizar llaves { ... }. Esto también sirve para añadir
legibilidad al código.

9
Estructuras de control - Bucles
Un bucle o ciclo en programación, es una secuencia que ejecuta repetidas veces un trozo de código, hasta que la
condición asignada a dicho bucle deja de cumplirse. En Python existen dos instrucciones de bucles primitivos: while y
for.

Sentencia while
Un bucle while permite repetir la ejecución de un grupo de instrucciones
mientras se cumpla una condición (es decir, mientras la condición tenga
el valor verdadero). La ejecución de esta estructura de control while es la
siguiente:

● Si el resultado es True se ejecuta el cuerpo del bucle. Una vez


ejecutado el cuerpo del bucle, se repite el proceso (se evalúa de
nuevo la condición y, si es cierta, se ejecuta de nuevo el cuerpo del
bucle) una y otra vez mientras la condición sea cierta.
● Si el resultado es False, el cuerpo del bucle no se ejecuta y
continúa la ejecución del resto del programa.

Las variables que aparecen en la condición se llaman variables de


control, estas deben definirse antes del bucle while y modificarse dentro 10

del bucle.
Estructuras de control - Bucle while

11
Estructuras de control - Bucle while
Bucles infinitos
En el caso de que la condición del bucle se cumpla
siempre, el bucle no terminaría nunca de ejecutarse, dando
lugar a un bucle infinito. Aunque existen situaciones en
las que es necesario utilizar bucles infinitos en un
programa, normalmente se deben a errores de
codificación, lo que implica perder el control sobre el
programa.

Instrucciones
● break permite detener el bucle aunque la condición
siga siendo verdadera.
● continue permite detener la iteración actual del
bucle y continuar con la siguiente.
● else permite ejecutar un bloque de código una vez
que la condición del bucle ya no es verdadera.

12
Estructuras de control - Bucle for
Un bucle for permite repetir el bloque de instrucciones un número predeterminado de veces. El bloque de instrucciones que
se repite se llama cuerpo del bucle y cada repetición se llama iteración.

● Si el elemento iterable está vacío, no se ejecuta ninguna vez el bucle.


● Si no está vacío, se ejecuta tantas veces el bloque de código como elementos tenga el iterable.

No es necesario definir la variable de control antes del bucle, aunque se puede utilizar como variable de control una variable
ya definida en el programa.

Los strings son objetos iterables, contienen una secuencia de caracteres.

13
Estructuras de control - Bucle for
break
Con la instrucción break, se puede detener el bucle antes de que
finalicen todos los elementos iterables.

continue
Con la instrucción continue, se puede detener la iteración actual del
bucle y continuar con la siguiente. Esto significa que cuando se
encuentra la instrucción continue, el código restante dentro del bucle
se salta y la siguiente iteración comienza de inmediato.

else
Con la instrucción else, se puede ejecutar un bloque de código una vez
que el bucle ha finalizado. El bloque else se ejecuta solo si el bucle
termina sin que se ejecute una instrucción break.

14
Estructuras de control - Bucles anidados
Un bucle anidado es un bucle que se encuentra dentro del bloque de otro bucle. En este tipo de estructura, el bucle "interno"
se ejecutará completamente una vez por cada iteración del bucle "externo".

Son útiles para recorrer estructuras de datos multidimensionales como matrices o listas de listas, y permiten realizar múltiples
niveles de iteración.

15
Tipos de datos avanzados - Listas
Las listas en Python son conjuntos ordenados de elementos (números, cadenas, listas, etc.). Se delimitan por corchetes [ ] y
los elementos se separan por comas. Una lista puede contener elementos de diferentes tipos, incluso otras listas.

Acceso
● Se puede acceder a los elementos de una lista utilizando su
índice. El índice comienza en 0.
● También es posible utilizar índices negativos, donde -1 hace
referencia al último elemento, -2 al penúltimo, y así
sucesivamente.
● Puedes especificar un rango de índices para obtener una
sublista. El rango comienza en el primer índice indicado
(incluido) y termina en el último índice indicado (no incluido).
● Si dejas el primer valor vacío, comenzará desde el inicio de
la lista.
● Si dejas el valor final vacío, continuará hasta el final de la
lista.
● También es posible obtener un rango con índices negativos,
de forma que comenzará la búsqueda desde el final de la
lista. 16
Tipos de datos avanzados - Listas

Modificación
● Para modificar un elemento en una lista, puedes
referenciar su índice y asignarle un nuevo valor.

Recorrido
● Puedes recorrer los elementos de una lista utilizando un
ciclo, como for, y puedes modificar los elementos
durante el recorrido si haces referencia al índice.

Comprobación de existencia
● Puedes recorrer los elementos de una lista utilizando un
ciclo, como for, y puedes modificar los elementos
durante el recorrido si haces referencia al índice.

17
Tipos de datos avanzados - Listas

len()
● Devuelve la longitud (número de elementos) de una lista.

append(val)
● Agrega un nuevo elemento al final de la lista, pero no
interactúa con los índices existentes.

insert(pos, val)
● Inserta un nuevo valor en cualquier posición de la lista
referenciando su índice. Los elementos existentes se
desplazan hacia la derecha para dar espacio al nuevo
elemento.

18
Tipos de datos avanzados - Listas

remove(val)
● Elimina la primera aparición de un valor específico en
la lista.

pop(pos=-1)
● Elimina y devuelve el elemento de la lista que se
encuentra en el índice indicado.

del
● El comando del se utiliza para eliminar un elemento en
una lista basándose en su índice o para eliminar toda la
lista.

19
Tipos de datos avanzados - Listas

clear()
● Elimina todos los elementos, dejándola vacía.

sort(reverse=?)
● Ordena ascendente (o descendente, si se especifica).

reverse()
● Invierte el orden de los elementos en la lista.

extend(val)
● Agrega todos los elementos de otra lista (o de cualquier
iterable) al final de la lista actual. Es similar a
append(), pero agrega múltiples elementos en lugar
de uno solo.
20
Tipos de datos avanzados - Listas - Copias
Es importante entender cómo hacer una copia de una lista para evitar modificar accidentalmente el contenido original.

● Asignación directa. Si simplemente se asigna una lista a otra variable, no se crea una copia, sino una referencia a la
misma lista. Cualquier cambio en una afectará a la otra.
● Una copia superficial crea una nueva lista con los mismos elementos, pero si esos elementos son listas u otros objetos
mutables, las sublistas seguirán siendo referencias a los objetos originales. Se usa la función copy() o slices.

21
Tipos de datos avanzados - Tuplas
Son colecciones ordenadas e inmutables, lo que significa que una
vez que se crean, no se pueden modificar, añadir o eliminar
elementos. Se delimitan por paréntesis () y sus elementos se
separan por comas.

Al igual que las listas, pueden contener elementos de cualquier tipo,


como números, cadenas de texto u otras estructuras de datos, e
incluso elementos mixtos.

Acceso
Se puede acceder a un elemento de una tupla utilizando su índice,

● empezando en el 0
● utilizando índices negativos, donde -1 se refiere al último
elemento, -2 al penúltimo, y así sucesivamente:

Es posible obtener una sub-tupla utilizando rangos (slicing),


indicando el índice inicial y final, de forma similar a como se hace con
las listas. Ten en cuenta que el índice final no se incluye en el
22
resultado.
Tipos de datos avanzados - Tuplas

Inmutabilidad
Dado que las tuplas son inmutables, no se puede modificar
directamente sus elementos. Sin embargo, es posible convertir
una tupla en una lista, realizar los cambios necesarios y luego
convertirla de nuevo en tupla.

23
Tipos de datos avanzados - Tuplas

Bucles for
● Al igual que con las listas, se puede utilizar las tuplas en un
bucle for para recorrer cada uno de sus elementos.

Comprobar la existencia
● Se puede comprobar la existencia de un elemento dentro de
una tupla usando la palabra clave in.

len()
● La función len() permite saber cuántos elementos hay.

24
Tipos de datos avanzados - Tuplas

Tupla de un solo elemento


Cuando se crea una tupla de un solo elemento, es necesario
poner una coma después del elemento, de lo contrario, Python no
la considerará como una tupla, sino como un dato del tipo del
valor que contiene (por ejemplo, una cadena o un número).

Unir tuplas
A diferencia de las listas, que permiten ser modificadas
fácilmente, las tuplas solo se pueden unir entre ellas usando el
operador +:

count(val)
● Tanto en las listas como en las tuplas, se usa el método
count() para contar cuántas veces aparece un elemento
dentro de la tupla.
25
Tipos de datos avanzados - Sets
Los sets en Python son una colección de elementos no ordenados y sin elementos repetidos. Se utilizan cuando no
importa el orden de los elementos y no queremos duplicados. Los sets se delimitan por llaves {} o usando la función set().
A diferencia de las listas y las tuplas, los sets no admiten acceso por índices debido a su naturaleza no ordenada.

Características
1. No ordenados: Los sets no almacenan los elementos en un orden particular, por lo que no puedes acceder a un
elemento específico mediante un índice.
2. Sin duplicados: Un set no puede contener dos elementos iguales. Si intentas añadir duplicados, solo se almacena una
copia.
3. Mutable: Se puede añadir o eliminar elementos de un set, aunque los elementos del set deben ser inmutables (por
ejemplo, números, cadenas, tuplas).

Creación
Utilizando llaves {} o la función set().

26
Tipos de datos avanzados - Sets

add(elem)
● Añade un elemento

remove(elem)
● Elimina un elemento específico, generando un error si
no está presente.

discard(elem)
● Elimina un elemento sin generar error si no existe.

pop()
● Elimina un elemento al azar, ya que los sets no están
ordenados.

27
Tipos de datos avanzados - Sets

clear()
● Elimina todos los elementos del set.

len()
● Para obtener el número de elementos de un set.

Comprobar si un elemento está


Al igual que con las listas y las tuplas, la palabra clave in se usa
para comprobar si un elemento está en un set.

Convertir otros tipos de datos a set


Se puede convertir una lista, tupla o cadena en un set usando la
función set(), útil para eliminar duplicados.

28
Tipos de datos avanzados - Diccionarios
Un diccionario en Python es una estructura de datos que almacena pares de clave-valor. Es muy útil para asociar valores a
claves únicas y rápidas de acceder.

Características
1. Colección desordenada.
2. Alterable: Los diccionarios pueden modificarse, agregando o eliminando elementos, o cambiando sus valores.
3. Indexación por clave: No se usan índices numéricos como en las listas, sino claves para acceder a los valores
asociados.

29
Tipos de datos avanzados - Diccionarios

Acceso
● Acceder por clave usando corchetes.
● Acceder con el método get() también permite
obtener el valor de una clave, pero es más seguro
porque no arroja un error si la clave no existe. Se puede
proporcionar un valor predeterminado en caso de que la
clave no exista.

Modificación
Como los diccionarios son alterables, se puede cambiar el
valor de un elemento haciendo referencia a su clave.

Agregación
Simplemente, asignar un valor a una nueva clave.

30
Tipos de datos avanzados - Diccionarios

Bucle for
Cuando se itera sobre un diccionario en un bucle for, de
manera predeterminada se recorren las claves.

Comprobar una clave


Para comprobar si una clave existe en un diccionario se usa
la palabra clave in. Esto es similar a cómo se hace con listas
o tuplas.

values()
● Si solo interesa obtener los valores de un diccionario, se
puede usar el método values().

31
Tipos de datos avanzados - Diccionarios

items()
● El método items() devuelve tanto las claves como los
valores en forma de pares (tuplas). Esto te permite
recorrer el diccionario y trabajar con ambos de manera
simultánea.

pop()
● El método pop() en un diccionario elimina y devuelve el
valor asociado a una clave específica. Debes
proporcionar la clave como argumento, y este método
permite eliminar un par clave-valor.

popitem()
● El método popitem() elimina y devuelve el último par
clave-valor añadido en el diccionario. No toma
argumentos. Si el diccionario está vacío, genera un error. 32
Tipos de datos avanzados - Diccionarios

del
● La sentencia del se utiliza para eliminar un par clave-valor referenciando la clave.

clear()
● El método clear() elimina todos los pares clave-valor en un diccionario, dejándolo vacío.

33
Tipos de datos avanzados - Diccionarios - Copias
Es importante entender cómo hacer una copia de un diccionario para evitar modificar accidentalmente el contenido original.

● Asignación directa. Cuando se asigna un diccionario a otra variable, ambos nombres referencian el mismo diccionario.
Esto significa que cualquier cambio en uno de los nombres afectará al otro.
● El método copy() crea una nueva copia del diccionario, pero si el diccionario contiene objetos mutables (como listas o
diccionarios anidados), estos objetos seguirán compartiendo la referencia entre la copia y el original.

34
Funciones
El uso de funciones es un componente esencial dentro del paradigma de la programación estructurada. Las funciones
permiten dividir un programa complejo en partes más manejables y reutilizables. En Python, se pueden crear funciones
definidas por el desarrollador, además de las funciones que ya están integradas en el lenguaje.

Ventajas
1. Modularización: Permite dividir un programa complejo en módulos más simples, facilitando la programación y el testing.
2. Reutilización: Una función puede ser reutilizada en diferentes programas o contextos, mejorando la eficiencia del
desarrollo.

Para definir una función en Python, se utiliza la sentencia def, seguida de un nombre descriptivo para la función. A
continuación se muestran los componentes esenciales de una función.

35
Funciones - Componentes
● NOMBRE: El nombre de la función sigue las mismas reglas que los nombres de las variables (debe comenzar con una
letra o guion bajo y no puede contener espacios ni caracteres especiales).
● LISTA_DE_PARAMETROS: Parámetros opcionales que la función puede recibir como entrada. Los paréntesis son
obligatorios, aunque no haya parámetros.
● DOCSTRING: Un bloque de texto opcional que sirve para documentar la función, describiendo su propósito.
● SENTENCIAS: Bloque de código que define las acciones que realizará la función.
● RETURN: (Opcional) Permite devolver un valor desde la función. Este valor puede ser de cualquier tipo de datos:
enteros, cadenas, listas, tuplas, diccionarios, etc.

36
Funciones

Llamadas a Funciones
Una vez que la función ha sido definida, se puede llamar en cualquier parte del programa para ejecutar su bloque de
instrucciones.

Parámetros y Argumentos
● Parámetros de entrada: Se especifican al definir la función.
● Argumentos: Son los valores que se pasan a la función en el momento de su llamada. Si la función espera varios
parámetros, los argumentos deben estar separados por comas.

37
Funciones

Parámetros por defecto


Para evitar errores al no pasar argumentos, se pueden definir
valores por defecto en los parámetros. Esto permite que la
función se ejecute aunque no se pasen algunos de los argumentos.

Argumentos Indeterminados
En algunas situaciones, no se conoce el número exacto de
argumentos que recibirá una función. Para manejar este escenario,
Python permite el uso del carácter * antes del nombre del
parámetro. Esto convierte los argumentos en una tupla dentro de
la función.

38
Funciones

Argumentos por Clave


Python también permite hacer llamadas a funciones con los
argumentos desordenados o con un orden distinto al especificado
en la definición de la función. Esto se logra pasando los
argumentos como clave-valor.

Uso del return


La sentencia return se utiliza para devolver un valor desde la
función. Este valor puede ser de cualquier tipo (listas, tuplas,
diccionarios, enteros, cadenas, etc.). Una función sin return
devuelve None por defecto.

39
Funciones - Input
La función input() en Python se utiliza para recibir entradas del
usuario a través del teclado. Cuando el programa se ejecuta, se
detiene en el punto donde se encuentra la función input(),
esperando a que el usuario escriba algo y presione la tecla Enter.
El texto que el usuario introduce es devuelto por la función como
una cadena (tipo str).

Importante
Dado que siempre se devuelve una cadena, si intentas realizar
operaciones numéricas sin hacer la conversión apropiada,
obtendrás errores. Es por eso que, al pedir números o valores que
se usarán en cálculos, es importante convertir el resultado de
input() a los tipos de datos necesarios (int(), float(), etc.).

40
Funciones - Función principal
Cuando Python ejecuta un archivo, le asigna un nombre especial a
ese archivo: __name__. Si el archivo se está ejecutando
directamente (no importado como un módulo), el valor de
__name__ será "__main__". Este condicional garantiza que la
función main() solo se ejecute si el archivo se está ejecutando
directamente, no cuando se importa como parte de otro programa o
módulo.

Si se ejecuta el fichero archivo.py directamente, la salida será:

Este es el programa principal.

Si se importa archivo.py desde otro archivo, solo se puede


utilizar la función suma

41
Testing - Pytest
pytest es una herramienta de testing para Python que permite escribir y
ejecutar pruebas automatizadas de una manera fácil. Se usa principalmente para
verificar que el código funcione como se espera, lo cual es fundamental para
mantener la calidad y estabilidad de los proyectos de software.

Un test en pytest es simplemente una función de Python cuyo nombre


comienza con test_. Dentro de estas funciones, se utilizan afirmaciones
(assert) para verificar que los resultados sean los esperados.

En un proyecto Python bien organizado, las pruebas suelen almacenarse en una


carpeta dedicada llamada tests o test. Esta estructura ayuda a mantener el
código organizado y hace que sea más fácil ejecutar todas las pruebas en un
solo lugar.

42
Excepciones
Cuando se produce un error en un programa, Python genera un mensaje de error y el programa se detiene. Estos errores se
conocen como excepciones. Afortunadamente, Python permite manejar estas excepciones para evitar que el programa se
interrumpa abruptamente. Para ello, se utilizan las sentencias try y except.

Estructura Básica
La sentencia try permite probar bloques de código que pueden generar errores. Si ocurre un error dentro del bloque try, el
programa no se detiene, sino que pasa al bloque except para manejar la excepción y continuar con la ejecución.

Sin el manejo de excepciones, si se produce un error, el programa se detendrá inmediatamente y mostrará un mensaje de
error sin permitir que el programa continúe.

Ventajas del uso de try y except:

● Evitar que el programa se detenga abruptamente.


● Proporcionar mensajes de error personalizados.
● Realizar acciones alternativas cuando se producen errores.

43
Excepciones

Múltiples except
Es posible definir varios bloques except para manejar diferentes
tipos de excepciones de manera individual. Esto se realiza
especificando el tipo de excepción que se quiere capturar para cada
bloque. De esta manera, se pueden manejar diferentes errores de
forma específica.

Bloque else
El bloque else se utiliza para ejecutar código solo si no se produjo
ninguna excepción en el bloque try. Esto es útil cuando se quiere
realizar alguna acción, únicamente si el código dentro de try se
ejecuta sin errores.

44
Excepciones

Bloque finally
El bloque finally se utiliza para ejecutar código que siempre debe
ejecutarse, sin importar si ocurrió o no una excepción. Esto es útil para
tareas como liberar recursos o cerrar archivos, independientemente
del resultado del bloque try.

Generar Excepciones con raise


En ciertas situaciones, es necesario generar una excepción de forma
manual si ocurre una condición particular. Para esto, se utiliza la
sentencia raise, que permite lanzar una excepción personalizada.

45
Excepciones

46
Manejo de ficheros
La gestión de ficheros en Python se refiere a cómo el lenguaje interactúa con archivos en el sistema, permitiendo leer,
escribir, crear, o eliminar archivos. Python ofrece varias funciones incorporadas para manejar archivos fácilmente.

Pasos
1. Abrir un archivo: Para trabajar con un archivo, primero hay que abrirlo. Esto se hace usando la función open(). Esta
función toma dos argumentos: el nombre del archivo y el modo en el que se quiere abrirlo (leer, escribir, etc.).
2. Modos de apertura:
○ 'r': Modo lectura. El archivo debe existir.
○ 'w': Modo escritura. Si el archivo existe, lo sobreescribe; si no, lo crea.
○ 'a': Modo agregar. Añade información al final del archivo si ya existe; si no, lo crea.
○ 'x': Modo creación. Crea el archivo, pero falla si el archivo ya existe.
○ 't': Modo texto (por defecto).
○ 'b': Modo binario.
3. Leer o escribir: Una vez abierto el archivo, se puede leer su contenido o escribir en él.
4. Cerrar el archivo: Siempre es importante cerrar el archivo después de usarlo, para liberar recursos. Esto se hace con
close(), aunque es más común usar un bloque with, que se encarga de cerrar el archivo automáticamente.

47
Manejo de ficheros

Leer
1. Abrimos el archivo archivo.txt en modo lectura
('r').
2. Leemos el contenido del archivo usando el método
read().
3. Imprimimos el contenido del archivo en la consola.
4. El bloque with asegura que el archivo se cierre
automáticamente.

Escribir
1. Abrimos el archivo archivo.txt en modo escritura
('w'). Si el archivo ya existía, su contenido se
sobrescribirá.
2. Usamos el método write() para escribir el texto en el
archivo.

48
Manejo de ficheros

Añadir contenido a un archivo existente


● Abre el archivo en modo agregar ('a'). El texto que se escribe se añade al final del archivo sin eliminar lo que ya existe.

Leer el archivo línea por línea


● Se lee el archivo línea por línea usando un bucle for. Esto es útil para archivos grandes.

49
Manejo de ficheros

Consejos adicionales
● Manejo de errores: Es buena práctica manejar posibles errores usando bloques try-except en caso de que el archivo no
exista o haya algún problema al abrirlo.
● Rutas absolutas y relativas: Si el archivo no está en el mismo directorio que el script de Python, deberás usar una ruta
completa (absoluta) o una ruta relativa para abrirlo.

50

También podría gustarte