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

Presentación Python

El documento proporciona una introducción a Python, incluyendo cómo ejecutarlo en Anaconda, los tipos de datos básicos como enteros, flotantes, cadenas y booleanos, y conceptos como variables, funciones y formato de cadenas. Explica cómo definir variables, realizar operaciones aritméticas, de comparación y lógicas con diferentes tipos de datos, y la sintaxis básica para crear y usar funciones en Python.
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)
81 vistas

Presentación Python

El documento proporciona una introducción a Python, incluyendo cómo ejecutarlo en Anaconda, los tipos de datos básicos como enteros, flotantes, cadenas y booleanos, y conceptos como variables, funciones y formato de cadenas. Explica cómo definir variables, realizar operaciones aritméticas, de comparación y lógicas con diferentes tipos de datos, y la sintaxis básica para crear y usar funciones en Python.
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/ 114

DAM && DAW

22 Marzo 2023
MÓDULO PYTHON
22 Marzo 2023
1. Elementos básicos del lenguaje

3
1.1 Ejecución en Anaconda
En esta Sección introducimos los tipos básicos del lenguaje Python, así como los
conceptos de variable y asignación.

Ejecución en Anaconda:
Anaconda ofrece una herramienta de ejecución interactiva con la cual es posible dar
órdenes directamente al intérprete y obtener una respuesta inmediata para cada una
de ellas.

Python es un lenguaje interpretado. El intérprete actúa como una simple


calculadora. Es posible introducir una expresión y éste escribirá el resultado de
evaluar la expresión.

La sintaxis es sencilla: los operadores +, -, * y / funcionan como en la mayoría de los


lenguajes; los paréntesis (()) pueden ser usados para agrupar.

4 4
1.1 Ejecución en Anaconda
Veamos algunos ejemplos:

5 5
1.1 Ejecución en Anaconda
La tabla siguiente tabla resume las características de los operadores Python: su
aridad (número de operandos), asociatividad y precedencia.

6 6
1.1 Ejecución en Anaconda
Veamos algunos ejemplos:

7 7
1.1 Ejecución en Anaconda
En ocasiones deseamos que el ordenador recuerde ciertos valores para usarlos
más adelante. Necesitamos introducir el concepto de variable. Por ejemplo,
supongamos que deseamos efectuar el cálculo del perímetro de un círculo de radio
1.298373.

Podemos imprimir por el valor de la variable perímetro. Para ello hacemos uso de la
función print de Python:

8 8
1.1 Ejecución en Anaconda
En la celda anterior hemos utilizado una función predefinada de python.

Se trata de la función print. Como ves, sirve para mostrar el contenido de una
variable.

La usaremos de aquí en adelante en muchas ocasiones

9 9
1.1 Variables:
Una variable es un espacio para almacenar datos en la memoria de un ordenador.
En Python, una variable se define con la sintaxis:

nombre_de_la_variable = valor_de_la_variable

Cada variable, tiene un nombre y un valor. Así podemos almacenar un valor en una
variable y posteriormente podemos utilizar dicha variable en otras expresiones. A
esta acción de asignar un valor a una variable se denomina asignación.

Los nombres de las variables en Python pueden contener caracteres alfanuméricos


(empezando con una letra) a-z, A-Z, 0-9 y otros símbolos como la _.

Por cuestiones de estilo, las variables suelen empezar con minúscula. Podéis
consultar la guía de estilo para código escrito en Python en el siguiente enlace
https://www.python.org/dev/peps/pep-0008/

10 10
1.2 Variables:
Algunos nombres no pueden ser usados como nombres de variables (son palabras
reservadas por python):
and, as, assert, break, class, continue, def, del, elif, else, except, exec, finally, for, from, global,
if, import, in, is, lambda, not, or, pass, print, raise, return, try, while, with, yield.

Pero las órdenes que puede ejecutar el intérprete de Python no son únicamente operaciones
aritméticas y asignaciones. También puede ejecutar funciones.

11 11
1.3 Los tipos de datos en Python: Tipo entero
Python es un lenguaje de tipado dinámico: el tipo se determina en el momento de la
asignación. Cada variable, tiene un nombre y un valor. El valor define también el tipo
de datos de la variable.

Tipo entero: Se trata de números sin decimales.

La prioridad de los operadores es la habitual. La división entera:

Para conocer el tipo de una variable podemos ejecutar la función type de Python.

12 12
1.3 Los tipos de datos en Python
Las divisiones por cero lanzan un error:

Los errores se capturan mediante el uso de excepciones (como en otros lenguajes


de programación).

Se puede elevar un número a otro con el operador ** (la operación potencia):

Las operaciones entre enteros son, generalmente, más rápidas que las operaciones
con reales. Así pues, utilizaremos enteros a menos que de verdad necesitemos
números con decimales.

13 13
1.3 Los tipos de datos en Python: Aritmética de coma
flotante
Los valores de tipo real se representan mediante el punto, separando así la parte
entera de la parte decimal. Estos valores decimos que son de tipo float.

Es posible mezclar en una misma expresión datos de tipos distintos. Si alguno de


los operandos en una expresión es real, el resultado es también real:

14 14
1.3 Los tipos de datos en Python: Aritmética de coma
flotante
A continuación mostramos un ejemplo sencillo con variables y operadores
aritméticos:

15 15
1.3 Los tipos de datos en Python: Funciones y Casting
de tipos
Python proporciona funciones que podemos utilizar en las expresiones. Estas
funciones se dice que están predefinidas (como la función print):

16 16
1.3 Los tipos de datos en Python: Funciones y Casting
de tipos
Podemos convertir expresiones a int, float, bool, str mediante funciones:

17 17
1.3 Los tipos de datos en Python: Tipo de datos Boolean
Las constantes booleanas son True y False.

Los operadores booleanos son los habituales, and para la conjunción, or para la
disyunción y not para la negación.

18 18
1.3 Los tipos de datos en Python: Tipo de datos Boolean
Continuamos con las constantes booleanas son True y False.

Además dispone de los operadores habituales de comparación. Los operadores de


comparación son:

== igual a
!= distinto de
< menor que
<= menor o igual que

Devolverán un valor booleano: True o False

19 19
1.3 Los tipos de datos en Python: Tipo de datos Boolean
Operadores de Comparación

20 20
1.3 Los tipos de datos en Python: Tipo de datos Boolean
Operadores de Comparación

21 21
1.3 Los tipos de datos en Python: Tipo de datos Boolean
OpeEl valor True se corresponde con el valor entero 1, mientras que el valor False
se corresponde con el valor entero 0. Así, es posible realizar operaciones
aritméticas con valores booleanos.

22 22
1.3 Los tipos de datos en Python: El tipo cadena de
caracteres
Mucha gente usa Python por sus capacidades para el tratamiento y procesamiento
de cadenas. Las cadenas de caracteres, el tipo str en Python , se corresponde con
el tipo String de otros lenguajes. En Python 3.7 el tipo cadena es UNICODE por
defecto.

Las cadenas también se pueden comparar.

Las cadenas de caracteres se pueden concatenar con el operador +.

23 23
1.3 Los tipos de datos en Python: El tipo cadena de
caracteres

Se puede utilizar los operadores de comparación. El orden entre cadenas es el


orden lexicográfico.

Para conocer el tamaño de una cadena, se utiliza la función len como se muestra a
continuación:

24 24
1.3 Los tipos de datos en Python: Caracteres especiales
Caracteres especiales.

25 25
1.3 Los tipos de datos en Python: Formateando cadenas
Formateando cadenas:
El uso del símbolo % seguido de uno o más caracteres de formato permiten
controlar con precisión la construcción de cadenas. Por ejemplo, creamos una
cadena:

Operadores de formato

%s : ha de sustituirse por una cadena

%d : ha de sustituirse por un entero

%.2f : ha de sustituirse por un número con dos decimales

26 26
1.3 Los tipos de datos en Python: Formateando cadenas

También podemos usar la función format del siguiente modo:

27 27
2.2 Las funciones en Python (I)

28
2.1 Las funciones en Python (I)

En Python la unidad de estructuración de los programas son las funciones. Una


función consiste en un conjunto de sentencias que realizan una determinada acción
a las que se les asocia un nombre. Una vez definida la función, se puede invocar su
ejecución a lo largo del programa mediante su nombre. En general, la función
devolverá como resultado un valor de retorno (aunque no siempre tiene que ser así).

Componentes de una función:

• Las funciones tienen un nombre y se declaran con la palabra reservada def y


devuelve un valor usando la palabra reservada return.

• También tienen una lista de argumentos. Dichos parámetros pueden ser de varios
tipos:

- posicionales
- por clave
- argumentos agrupados

29 29
2.2 Funciones con argumentos posicionales

Veamos algunos ejemplos de funciones con argumentos posicionales:

Podemos utilizar la función anterior para sumar los números 4, 2 y 3. Para ello basta
con escribir el nombre la función junto con los valores 4, 2 y 3 como argumentos. A
esto se le conoce como llamada a la función o invocar a la función:

30 30
2.2 Funciones con argumentos posicionales

Cuando se define una función, se crea una variable con el mismo nombre cuyo valor
tiene tipo function. Así, si se introduce únicamente el nombre de una función sin
paréntesis se imprime información de la función en vez de ejecutarse.

A las funciones se les puede añadir comentarios, para lo cual basta incluir una
cadena entre la primera línea (nombre de la función) y el cuerpo usando tiple
comillas dobles ( """).:

31 31
2.2 Funciones con argumentos posicionales
Vemos ejemplo:

32 32
2.2 Funciones con argumentos posicionales
Continuamos con el ejemplo:

33 33
2.3 Funciones con argumentos por clave
Los argumentos por clave se usan para indicar valores por defecto y siempre se
sitúan después de los argumentos posicionales. De esta forma podemos crear una
función que puede ser invocada con menos argumentos de los que permite.

Esta función puede ser invocada pasando sólo los argumentos obligatorios x e y :

Esta función puede ser invocada pasando los argumentos obligatorios x e y junto
con un argumento por clave:

34 34
2.3 Funciones con argumentos por clave
Esta función puede ser invocada pasando los argumentos obligatorios x e y junto
con los dos argumento por clave:

35 35
2.4 Valores devueltos por una función
Una función puede tener varias instrucciones return. Si la ejecución de una función
no alcanza ninguna instrucción return, se devuelve None que es el valor que
representa el valor nulo en Python. El tipo de None es NoneType.

36 36
2.4 Valores devueltos por una función
La ejecución de una función termina en el momento en el cual se alcance una
instrucción return.

37 37
2.4 Valores devueltos por una función
Las funciones Python pueden devolver múltiples valores. Aquí tenemos otra de las
características que hace a Python atractivo a los programadores.

La función orden() devuelve una tupla con dos valores.

38 38
2.5 Semántica de Python
A diferencia de otros lenguajes como C++, Java o Perl, Python no utilliza corchetes
o llaves para estructurar el código. Python utiliza espacios en blanco o tabulaciones
para dar estructura a su código.

39 39
2.5 Semántica de Python
Si el sangrado no es correcto, el intérprete de Python emitirá un error de sintaxis
indicándolo.

El uso de tabuladores hace el código más legible. En otros lenguajes de


programación el código de la función producto necesita utilizar llaves, como se
muestra a continuación:

40 40
2.3 Estructuras de datos en Python

41
2.1 Las secuencias en Python: Tuplas y Listas
Python posee además de los tipos de datos básicos, otros tipos de datos más
complejos. Se trata de las tuplas, las listas y los diccionarios. Estos tres tipos,
pueden almacenar colecciones de datos de diversos tipos y se diferencian por su
sintaxis y por la forma en la cual los datos pueden ser manipulados.

Tuplas
Una tupla es un tipo de datos que representa una secuencia de valores de cualquier
tipo a los cuales se puede acceder mediante índices enteros. Las tuplas se
caracterizan porque son inmutables (no pueden ser modificadas una vez creadas) y
comparables.

Desde el punto de vista sintáctico, una tupla se define mediante una lista de valores
separados por comas y encerradas entre paréntesis.

42 42
2.1 Las secuencias en Python: Tuplas y Listas
En la siguiente celda creamos una tupla de 4 elementos llamada t:

¿De que tipo es t?

Comprobar si un elemento está en la tupla con el operador in:

43 43
2.1 Las secuencias en Python: Tuplas y Listas
Podemos saber cuántos elementos tienen con la función len:

Podemos concatenar tuplas con el operador +:

44 44
2.1 Las secuencias en Python: Tuplas y Listas
Listas
Una lista es similar a una tupla con la diferencia fundamental de que puede ser
modificada una vez creada. Se trata de un tipo de datos mutable y contiene datos
heterogéneos.

Para crear una lista se encierra los valores que forman la lista entre corchetes.

Comprobar si un elemento está en la tupla con el operador in:

45 45
2.1 Las secuencias en Python: Tuplas y Listas
Algunas operaciones sobre listas son la operación + para concatenar listas:

Podemos construir una lista ordenada mediante la función sorted:

Como se puede observar, la función sorted devuelve una nueva lista ordenada
dejando a la original intacta.

46 46
2.1 Las secuencias en Python: Tuplas y Listas
También es posible construir listas de varias dimensiones:

También es posible añadir nuevos valores a las listas mediante la función append.

47 47
2.1 Las secuencias en Python: Generando listas
Generando listas
Python 2.7 proporciona la función predefinida range(inicio, fin, paso) para generar
listas automáticamente. En Python 3.7 no se genera una lista; se genera un objeto
iterable. Decimos que un objeto es iterable si se puede recorrer para recuperar
cada uno de los elementos que contiene. En este sentido, las listas son iterables y
las tuplas también.

• range no construye una lista por lo que se ahorra espacio.


• devuelve cada uno de los elementos cuando se recorre.

Veamos algunos ejemplos:

48 48
2.1 Las secuencias en Python: Acceso a los elementos
de las secuencias

Acceso a los elementos de las secuencias


Los elementos de las secuencias pueden ser accedidos mediante el uso de
corchetes [ ], como en otros lenguajes de programación. Podemos indexar las
secuencias utilizando la sintaxis:

[<inicio>:<final>:<salto>]
En Python, la indexación empieza por CERO

49 49
2.1 Las secuencias en Python: Acceso a los elementos
de las secuencias
En el caso de las listas, podemos modificar los datos almacenados.

50 50
2.1 Las secuencias en Python: Acceso a los elementos
de las secuencias
Otra forma de acceder a una secuencia es de forma inversa (de atrás hacia
adelante), colocando un índice negativo.

51 51
2.1 Las secuencias en Python: Desempaquetar
secuencias
Desempaquetar secuencias
En muchos casos es interesante asignar nombre a cada uno de los elementos de
las secuencias para, posteriormente, trabajar con esos elementos..

A esto se le llama desempaquetado de secuencias, y funciona para cualquier


secuencia en el lado derecho del igual. El desempaquetado de secuencias requiere
que la cantidad de variables a la izquierda del signo igual coincida con el tamaño de
la secuencia.

Una vez hecho el desempaquetado, podemos acceder a los elementos de la


secuencia con un nombre en lugar de por su posición dentro de la secuencia.

52 52
2.1 Las secuencias en Python: Operaciones sobre listas

Operaciones sobre listas


La forma más eficiente de añadir elementos a una lista es mediante la función
append, que añade elementos al final de la lista.

Otra forma de añadir elementos es mediante la función insert, que inserta un


elemento en una determinada posición.

53 53
2.1 Las secuencias en Python: Operaciones sobre listas

Si queremos añadir múltiples elementos a una lista, podemos utilizar el operador +


como hemos visto anteriormente, o usar el método extends. Si la lista que estamos
construyendo es muy larga es preferible utilizar extends ya que es mucho mas
eficiente. La razón es que el operador + debe crear una nueva lista y copiar todos
los elementos en la nueva lista. Sin embargo, el método extends modifica la lista
sobre la que se aplica el método.

Veamos un ejemplo de su uso:

Para eliminar elementos de una lista, podemos utilizar los métodos pop y remove.

54 54
2.1 Las secuencias en Python: Eliminando por posición

Eliminando por posición

La operación pop permite eliminar el elemento de la lista que ocupa una


determinada posición.

55 55
2.1 Las secuencias en Python: Eliminación por valor

Eliminación por valor

Puede darse el caso de que necesitemos eliminar un elemento de la lista y que no


conozcamos la posición que ocupa. En esos casos utilizaremos el método remove.

56 56
2.1 Las secuencias en Python: Ordenando una lista

Ordenando una lista

Para ordenar una lista podemos usar el método sort. Esta operación permite
ordenar una lista sin necesidad de crear una lista nueva, por lo que la operación es
muy eficiente.

57 57
2.1 Las secuencias en Python: Inversa de una lista

Inversa de una lista

La función reversed devuelve un iterador en orden inverso de la lista original

58 58
2.2 Un caso particular de secuencias: Las secuencias de
caracteres- str
Las cadenas son consideradas como una secuencia de caracteres y por tanto
pueden ser tratadas como tuplas.

Por ejemplo, podemos acceder a cada uno de los caracteres de una cadena:

Las cadenas en Python son inmutables. Eso quiere decir que no es posible
modificar una cadena sin crear otra nueva.

59 59
2.1 Las secuencias en Python: Ordenando una lista

Para ver todas las funciones que podemos utilizar con cadenas basta con ejecutar la
siguiente celda:

More

60 60
2.1 Las secuencias en Python: Ordenando una lista

Algunos ejemplos:

61 61
2.4 Estructuras de control

62
2.1 Estructuras de control: Instrucciones if, elif, else

Python soporta las sentencias de control de flujo que podemos encontrar en otros
lenguajes de programación.

Instrucciones if, elif, else


La instrucción condicional if se utiliza para comprobar una condición.

Si la condición es verdadera entonces procesaremos un bloque de instrucciones


(llamado bloque if).
Si la condición no se cumple, se ejecuta el bloque de instrucciones alternativas
(llamado bloque else).
Cada uno de los bloques están sangrados, sin necesidad de escribir llaves o
sentencias del tipo begin ... end.

La cláusula else es opcional.

63 63
2.1 Estructuras de control: Instrucciones if, elif, else

Recordar que en Python los bloques se delimitan por sangrado.

Cuando ponemos los dos puntos al final de la primera línea del condicional, todo lo
que vaya a continuación con un nivel de sangrado superior se considera dentro del
condicional.
En cuanto escribimos la primera línea con un nivel de sangrado inferior, hemos
cerrado el condicional.

64 64
2.1 Estructuras de control: Instrucciones if, elif, else

La instrucción pass no hace nada. Se puede usar cuando la sintaxis obliga a escribir
al menos una instrucción pero el programa no necesita ninguna acción.

65 65
2.1 Estructuras de control: Instrucciones if, elif, else

Si queremos añadir ramas adicionales al condicional, podemos emplear la cláusula


elif (abreviatura de else if). Para la parte final, que debe ejecutarse si ninguna de las
condiciones anteriores se ha cumplido, usamos la instrucción else. Veamos algunos
ejemplos:

66 66
2.2 Estructuras de control: Instrucciones Expresiones
ternarias
Expresiones ternarias
Las expresiones ternarias en Python tienen la siguiente forma:

e = valorSiTrue if <condicion> else valorSiFalse

Permite definir la instrucción de la forma if-else en una sola línea. La expresión


anterior es equivalente a:

67 67
2.3 Estructuras de control: Bucles for y while

El bucle for
La instrucción for de Python itera sobre los elementos de cualquier secuencia (una
tupla, una lista o una cadena de texto), en el orden que aparecen en la secuencia.

Se utiliza para recorrer una colección completa de elementos, es decir pasa a través
de cada elemento.

for <element> in <iterable_object>:


<hacer algo...>

Aquí el objeto <iterable_object> puede ser una lista, tupla, array, etc.
El bucle se repite un número fijo de veces, que es la longitud de la colección de
elementos.

68 68
2.3 Estructuras de control: Bucles for y while

69 69
2.3 Estructuras de control: Bucles for y while

El bucle anterior ejecuta el cuerpo del bucle 5 veces. En este caso decimos que se
han realizado 5 iteraciones.

En el siguiente ejemplo mostramos cómo un objeto iterable como range(3) es


susceptible de ser recorrido mediante una instrucción for. En este sentido podemos
decir que la instrucción for es un iterador.

70 70
2.3 Estructuras de control: Bucles for y while

También es posible recorrernos una tupla de elementos:

Un diccionario también es un objeto iterable en Python:

71 71
2.3 Estructuras de control: Bucles for y while

En el caso de los diccionarios podemos iterar también sobre las claves y sobre los
valores.

72 72
2.3 Estructuras de control: Bucles for y while

El Bucle while

La instrucción while permite ejecutar repetidamente un bloque de código mientras la


condición asociada al while sea verdadera.

while <condition>:
<cuerpo del bucle>

El cuerpo del bucle está sangrado y no se necesitan instrucciones de tipo end.

El número de iteraciones es variable, depende de la condición.

En el siguiente ejemplo, el cuerpo del bucle está compuesto por dos instrucciones.
El cuerpo del bucle se ejecutará mientras la condición asociada al while, i < 5 , sea
cierta.

73 73
2.3 Estructuras de control: Bucles for y while

Como regla y para evitar bucles infinitos, debemos asegurarnos de que, en cada
iteración, la condición del while está más cerca de hacerse cierta. En el ejemplo
anterior, en el cuerpo del bucle se incrementa la variable i, por lo que cada vez el
valor de i se aproxima más a 5.

74 74
2.3 Estructuras de control: Bucles for y while

En Python también existe la instrucción que nos permite interrumpir el bucle antes
de que la condición se haga falsa. Se trata de la instrucción break:

75 75
2.3 Estructuras de control: La función enumerate
La función enumerate
Cuando trabajamos con secuencias de elementos puede resultar útil conocer el
índice de cada elemento. La función enumerate devuelve una secuencia de tuplas
de la forma (i, valor).

Mediante un bucle es posible recorrerse dicha secuencia:

76 76
2.5 Los diccionarios de Python

77
2.1 Los diccionarios de Python

En Python, un diccionario es una colección no ordenada de pares clave - valor


donde la clave y el valor son objetos Python.

Características:

Cada uno de los pares clave - valor se separan por comas.


El acceso a los elementos de un diccionario se realiza a través del valor de la clave.
En otros lenguajes se les conoce como tablas hash.
Los diccionarios se crean utilizando llaves { }.

78 78
2.2 Los diccionarios de Python: Crear un diccionario

Crear un diccionario

De la misma forma que con listas, es posible definir un diccionario directamente con
los miembros que va a contener, o bien inicializar el diccionario vacío y luego
agregar los valores.

La función bool es una función predefinida en Python Built-in Functions. Cuando se


invoca con un diccionario como argumento, devuelve True, si el diccionario tiene
elementos y False en caso contrario.

79 79
2.2 Los diccionarios de Python: Crear un diccionario

En el siguiente ejemplo mostramos cómo se crea un diccionario con dos elementos;


las claves son las cadenas 'Hola' y 'Comer'. Los valores asociados a dichas claves
las listas [ 'Hi', 'Hello' ] y [ 'eat' ] respectivamente.

La clave de un diccionario puede ser cualquier variable de tipo inmutable:

cadenas,
enteros,
tuplas (con valores inmutables en sus miembros), etc.

80 80
2.2 Los diccionarios de Python: Crear un diccionario

Los valores de un diccionario pueden ser de cualquier tipo: listas, cadenas, tuplas,
otros diccionarios, objetos, etc.

Otra forma de crear un diccionario es declararlo vacío y luego insertar los valores.
Se declara el diccionario vacío, y luego se asignan valores directamente a las
claves.

81 81
2.2 Los diccionarios de Python: Crear un diccionario

Si la clave existe en el diccionario, la operación de asignación modifica su valor; si


no exite dicha clave, entonces se crea con el valor indicado en la asignación.

82 82
2.2 Los diccionarios de Python: Acceso a los elementos
de un diccionario
Acceso a los elementos de un diccionario

Para acceder al valor asociado a una determinada clave, utilizamos la notación de


corchetes [ ] al igual que hacíamos con las variables de tipo lista. En el caso de los
diccionarios escribimos la clave elegida en lugar del índice.

Las claves son únicas dentro de un diccionario, es decir que no puede haber un
diccionario que tenga dos veces la misma clave. Si se asigna un valor a una clave
ya existente, se reemplaza el valor anterior.

83 83
2.2 Los diccionarios de Python: Acceso a los elementos
de un diccionario
Si se intenta acceder a una clave que no está en el diccionario, el acceso falla.

Para evitar este tipo de errores, podemos usar la función in, que comprueba si un
elemento está en el diccionario o utilizar el método get(), que devuelve el valor None
si la clave no está en el diccionario.

84 84
2.3 Los diccionarios de Python: Eliminar elementos de
un diccionario
Eliminar elementos de un diccionario

Para eliminar elementos de un diccionario se utiliza el método pop() con la clave que
se desea eliminar:

El método pop devuelve como resultado el elemento borrado.

Si intentamos eliminar una clave que no existe, el sistema lanzará un error:

85 85
2.4 Los diccionarios de Python: Otros métodos para la
gestión de diccionarios
Otros métodos para la gestión de diccionarios

El método keys() devuelve una lista con las claves del diccionario. El método
values() devuelve una lista con los valores del diccionario.

86 86
2.4 Los diccionarios de Python: Otros métodos para la
gestión de diccionarios
Para fusionar diccionarios utilizamos el método update().

87 87
2.5 Los diccionarios de Python: Recorrer los elementos
de un diccionario
Recorrer los elementos de un diccionario
Los diccionarios son secuencias de elementos, por lo que se les considera objetos
iterables. Para recorrer dichos elementos se pueden usar la sentencia for (como ya
vimos en la sección anterior). Por ejemplo podemos recorrer las claves del
diccionario y a partir de ellas acceder a los valores.

También es posible usar una sentencia for para recorrer los pares clave-valor que
devuelve el método items().

88 88
2.5 Los diccionarios de Python: La función zip

La función zip

La función zip() permite crear un objeto iterable a partir de los elementos de otras
secuencias. Básicamente, un objeto iterable es aquel que se puede recorrer, por
ejemplo las tuplas, listas y los diccionarios son todos ellos objetos iterables.

89 89
2.5 Los diccionarios de Python: La función zip

La función zip() resulta muy útil para la creación de diccionarios a partir de


secuencias.

90 90
2.6 Definición por comprensión

91
2.1 Definición por comprensión

Una definición por comprensión es una expresión compacta que sirve para definir
listas, tuplas y diccionarios en Python. Se trata de definir cada uno de los elementos
sin tener que nombrar cada uno de ellos.

La expresión general para definir una lista por comprensión es:

[exp for val in <coleccion> if <condicion>]

Veamos algunos ejemplos:

92 92
2.1 Definición por comprensión

Para el caso de los diccionario tenemos que indicar clave y valor:

93 93
2.7 Las funciones en Python (II)

94
2.1 Las funciones en Python (II): Funciones con
argumentos agrupados por tupla
Anteriormente hablamos de los argumentos de las funciones: los argumentos
posicionales y los argumentos por clave. En esta Sección introducimos otro tipo de
argumentos. Se trata de argumentos agrupados.

Funciones con argumentos agrupados por tupla

Son parámetros que se representan mediante una cadena con un asterisco al


principio de la misma (como por ejemplo *args). Aparece a continuación de los
parámetros posicionales. Representa una tupla arbitraria de argumentos agrupados.

95 95
2.1 Las funciones en Python (II): Funciones con
argumentos agrupados por diccionario
Funciones con argumentos agrupados por diccionario

Son argumentos que se representan mediante una cadena con dos asteriscos al
principio de la misma (como por ejemplo **kwargs). Aparece a continuación de los
parámetros agrupados por tupla. Se definen mediante una secuencia de elementos
representados y agrupados mediante un diccionario. Como en el caso anterior, no
es necesario que el nombre sea kwargs:

96 96
2.1 Las funciones en Python (II): Funciones como
argumentos de otras funciones.
Funciones como argumentos de otras funciones.

Funciones anónimas (lambda functions)


Las funciones anónimas son aquellas que no tienen nombre y se refieren a una
única instrucción. Se declaran con la palabra reservada lambda.

Son funciones cortas. Están sintácticamente restringidas a una sola expresión.

Las funciones lambda pueden ser usadas en cualquier lugar donde sea requerido
un objeto de tipo función. Semánticamente, son solo azúcar sintáctico para
definiciones normales de funciones. Al igual que las funciones anidadas, las
funciones lambda pueden hacer referencia a variables desde el ámbito que las
contiene.

97 97
2.1 Las funciones en Python (II): Funciones como
argumentos de otras funciones.
• Las funciones lambda se utilizan mucho en análisis de datos ya que es muy usual
transformar datos mediante funciones que tienen a otras funciones en sus
argumentos.

• Se usan funciones lambda en lugar de escribir funciones normales para hacer el


código más claro y más corto.

En el siguiente ejemplo, la función aplica recibe como datos de entrada una lista de
elementos m y una función f. El valor devuelto por aplica es una lista de elementos
que son resultado de aplicar la función f a cada uno de los elementos en m.

98 98
2.1 Las funciones en Python (II): Funciones como
argumentos de otras funciones.
Pero el mismo efecto lo conseguimos mediante una función anónima, evitando así la
definición de la función producto:

99 99
2.2 Las funciones en Python (II): Lista de funciones
como argumento de una función
Lista de funciones como argumento de una función

Supongamos que tenemos una lista de ciudades que necesitamos limpiar o


formatear.

Para dar un formato uniforme a esta lista antes de realizar otras tareas de análisis,
es necesario transformarla eliminado espacios en blanco y transformando cada
nombre a tipo título.

La siguiente función formatear() se recorre la lista de ciudades mediante una


instrucción for. Para cada ciudad en la lista de ciudades, se invoca a la función strip
y luego a la función title.

El valor devuelto por la función formatear es una nueva lista de ciudades, pero esta
vez procesada.

100 100
2.1 Las funciones en Python (II): Lista de funciones
como argumento de una función
Ejemplo:

Este tipo de transformaciones es habitual tener que hacerlos cuando trabajamos con
datos de tipo cadena.

101 101
2.1 Las funciones en Python (II): Lista de funciones
como argumento de una función
Una alternativa más flexible consiste en crear una lista de operaciones a realizar y
posteriormente aplicarla a la lista de ciudades:

102 102
2.3 Las funciones en Python (II): La función map

La función map

El uso de funciones como argumentos de otras funciones es una característica de


los lenguajes funcionales. La función map de los lenguajes funcionales también está
accesible en Python. Esta función aplica una función a una colección de objetos:

En el siguiente ejemplo, la función map aplica la función strip a cada una de las
ciudades en la lista de ciudades.

103 103
2.8 Ejercicios

104
2.1 Ejercicios

105 105
2.1 Ejercicios

106 106
2.1 Ejercicios

107 107
2.1 Ejercicios

Continúa

108 108
2.1 Ejercicios

109 109
2.2 Ejercicios

110 110
2.2 Ejercicios

111 111
2.2 Ejercicios

112 112
2.2 Ejercicios

113 113
Bibliografía

- Arias Aranda, D. y Minguela Rata, B. (Coords.) (2018):Dirección de la producción y


operaciones. Decisiones operativas. Pirámide. Madrid.
- Domínguez Machuca, J.A. et al. (1995): Dirección de Operaciones: Aspectos tácticos y
operativos en la producción y los servicios. McGraw Hill. Madrid
- Heizer, J.; Render, B. (2015): Dirección de la Producción y de Operaciones. Decisiones
tácticas. 11ª edición. Prentice Hall, Madrid.
- Miranda González, F.J. et al. (2005): Manual de Dirección de Operaciones. Thomson,
Madrid.
- Big Data. Análisis de datos con Python. Sarasa Cabezuelo, Antonio; García Ruiz, Yolanda
Aditorial Garceta. ISBN: 978-84-1622-883-6
- Tutorial de Python. Por Guido Van Rossum

114 114

También podría gustarte