Open camilomejiar opened 1 year ago
set
add
Remover y operadores matematicos en conjuntos
dictionary comprehension
LIST vs TUPLES vs SET
LIST vs TUPLES vs SET
arreglo zen
Funciones
function return
Parámetros por defecto y múltiples returns
SCOPE
lambda
scope imagen
Higher order function: una función dentro de otra función
HOF
maps
filter
reduce
Python_Intermedio: Comprehensions, Lambdas y Manejo de Errores
Zen de Python
Pero qué es el Zen de Python?, pues su definición corresponde a los principios de Phyton, los cuales fueron escritos por su creador Tim Peters.
Para encontrar estos principios de Python, solo se debe ingresar a la consola y escribir el siguiente código:
import this
Frente a la ambigüedad, evitar la tentación de adivinar. Debería haber una, y preferiblemente solo una, manera obvia de hacerlo. A pesar de que eso no sea obvio al principio a menos que seas Holandés. Ahora es mejor que nunca. A pesar de que nunca es muchas veces mejor que ahora mismo. Si la implementación es difícil de explicar, es una mala idea. Si la implementación es fácil de explicar, puede que sea una buena idea. Los espacios de nombres son una gran idea, ¡tengamos más de esos!
SET (Conjuntos)
Corresponde a la misma definición básica a lo que son los conjuntos, el cual agrupa elementos que tienen algo en común.
Sus propiedades:
Set es uno de los 4 tipos de datos incorporados en Python que se utilizan para almacenar colecciones de datos, los otros son: list, Tuple y Dictionary, cada uno con una característica y funcionalidad distinta.
Los Set se utilizan para almacenar varios elementos en una sola variable, para este ejemplo vamos a utilizar frutas como la variable y sus elementos serán: "banana, manzana y pera".
Ejemplo en consola Nota: Se escriben con corchetes
set_fruits = {"banana,", "manzana", "pera"}
print (set_fruits)
Obtengo:
{'pera', 'manzana', 'banana'}
INMUTABLE, es decir que después de haber sido creados no se pueden cambiar, es decir que después de haber sido creados no se pueden cambiar dentro del conjunto.
NO PERMITE DUPLICADOS, con esto se quiere decir que dentro de la variable, Python no permite almacenar mas de dos artículos con el mismos valor, python solo elige el primer valor y el segundo no lo determina.
Ejemplo en consola Nota: Se escriben con corchetes
set_fruits = {"banana,", "manzana", "pera", "banana"}
print (set_fruits)
Obtengo:
{'pera', 'manzana', 'banana'}
LONGITUD DE UN CONJUNTO, cuando quieres saber cuántos artículos hay en un conjunto utilizas la función:
len()
.Ejemplo en consola Nota: Se escriben con corchetes
set_fruits = {"banana,", "manzana", "pera"}
print (len(set_fruits))
Obtengo:
3
TIPOS DE DATOS, los tipos de datos en python, pueden ser de tipo cadena, int o booleanos, algunos ejemplos de ello: Nota: Se escriben con corchetes
Ejemplo en consola
Obtengo
{"banana", "manzana", "pera"}
set_fruit2 = {1, 2, 3}
{True, False, True,}
En Python, se pueden escribir diferentes tipos de datos ya sean cadenas, int o booleanos
Ejemplo consola Nota: Se escriben con corchetes
Obtengo
{True, 34, 'abc', 40, 'male'}
TYPE, Desde Python, los conjuntos se determinan como objetos con el tipo de datos "sets":
Ejemplo consola Nota: Se escriben con corchetes
Obtengo
class 'set'
STRING, con String lo que hacemos es que podemos crear los elementos a partir del string.
Ejemplo consola Nota: Se escriben con paréntesis ()
Obtenemos
{'b', 'a', 'n'}
Colecciones de Python (matrices), podemos construir una recopilación distinta dentro del lenguaje Python.
Ejemplo Se escribe con llaves []
Obtenemos
{1, 2, 3, 4}
Ejemplo Se escribe con llaves []
Obtenemos
{1, 2, 3, 4, 4, 5}
set()
y seria de la siguiente manera:Ejemplo Se escribe con llaves []
Obtenemos
{1, 2, 3, 4, 5}
_list()_
y seria de la siguiente manera:Ejemplo_ Se escribe con llaves []
Obtenemos
set =>
{1, 2, 3, 4, 4, 5}
list =>{1, 2, 3, 4, 5}
set =>{1, 2, 3, 4, 4, 5}
MODIFICAR ELEMENTOS DEL CONJUNTO Es posible realizar multiples modificaciones, cambios o hasta eliminar los valores que se encuentren dentro de un conjunto (set), para ello vamos a utilizar los siguientes elementos:
Contar Valores
len()
con la cual nos permite hacer el conteo de cuantos datos tenemos dentro del conjuntoObtenemos
3
Modificar Valores de manera directa & add()
Obtenemos
{'tropical': 'PineApple', 'sweet': 'papaya', 'acid': 'maracuya'}
add()
agregamos un elemento al conjunto de la siguiente manera:Obtenemos
Obtenemos
Actualizar un elemento con update()
Permite agregar cualquier tipo de objeto iterable como lo son listas o tuplas, dentro de un conjunto solo debemos ingresar el comando
update()
de la siguiente manera:Obtenemos:
{manzana, pera, mora, kiwi, papaya}
REMOVER ELEMENTOS DENTRO DEL CONJUNTO
Dentro de los conjuntos podemos remover parcial o total un elemento, con lo cual lo realizamos utilizando los siguientes comandos:
remove()
Esta función nos permite eliminar un elemento y si este NO existe dentro del conjunto lanza un error keyError
Obtenemos:
Ahora si vamos a buscar el valor "lenteja" nos genera el error keyError de la siguiente manera:
Obtenemos el siguiente error:
clear() Quizas una de las funciones mas PELIGROSAS ya que elimina TODO es decir toda la información registrada en el conjunto queda vacia.
para esto tomaremos el siguiente ejemplo.
Obtenemos:
set()
Materialde apoyo
OPERACIONES CON CONJUNTOS
Ahora como ya sabemos como agregar, modificar o eliminar elementos dentro de un conjunto (SET), lo que vamos hacer es unir dos o mas conjuntos y para ello utilizaremos las siguientes reglas:
UNION o SET()
Con esta funcion nos permite realiza la "Union" o "SET" entre dos conjuntos, con lo cual se simplifica como la suma de dos conjuntos entre sí generando uno nuevo sin que se repitan los datos, para ello vamos a revisar el siguiente ejemplo.
Obtenemos
{'melocoton', 'uva', 'manzana', 'pera', 'cereza', 'kiwi'}
Ahora si queremos agregar mas datos al conjunto
_set_c_
debemos crear el conjunto _set_d
_ y le agregamos la información correspondiente bajo el métodounion().
Obtenemos:
{'melocoton', '2,', '3', 'pera', 'kiwi', '1', 'uva', 'manzana', 'cereza'}
Ahora podemos realizar el mismo ejercicio pero esta vez vamos a utilizar el operador matemático |. Este operador matemático representa la union de dos conjuntos, con lo el resultado tanto
.union()
como para|
es el mismo.Obtenemos:
INTERSECTION()
Cuando hablamos de intersección nos referimos cuando dentro de la union de dos conjuntos hay un valor o elemento que es igual y que esta en los dos conjuntos y queremos identificarlo, para ello vamos a representarlo en el siguiente ejemplo:
Obtenemos:
{'uva'}
En este caso nos identifica que el elemento "uva" esta en los dos conjuntos con lo cual solamente imprime su resultado.
Ahora podemos realizar el mismo ejercicio pero esta vez vamos a utilizar el operador matemático &. Este operador matemático representa la intersección de los datos dentro de un conjunto y nos imprime su resultado.
Obtenemos:
DIFERENCE(SET).
En esta operacion nos permite realizar la operación de "diferencia" entre dos conjuntos, para ello vamos a restar entre los conjuntos y el resultado seran los datos que no estan en los dos conjuntos.
Obtenemos:
{'cereza', 'melocoton'}
Ahora podemos realizar el mismo ejercicio pero esta vez vamos a utilizar el operador matemático -. Este operador matemático representa la resta entre los conjuntos y nos imprime su resultado.
Obtenemos:
{'cereza', 'melocoton'}
DIFERENCIA SIMETRICA, en este caso la diferencia simétrica lo que busca entre los dos conjuntos es restar todos los elementos excepto los que estan en común entre los dos conjuntos, para ello vamos a realizar el siguiente ejemplo:
Obtenemos:
{'melocoton', 'zanahoria,', 'banano', 'cereza', 'papaya'}
Ahora podemos realizar el mismo ejercicio con un operador matematico para elo vamos a utilizar ^, con lo cual su resultado sera el mismo.
Obtenemos:
Material de apoyo
LIST COMPREHENSION
La comprension de listas o List comprehension nos ayudan a tener una sintaxis mucho mas corta cuando se desea crear una nueva lista basada en los valores de una ya existente, para ello vamos a utilizar for.
Ejemplo.
Tenemos una lista basada en frutas y queremos crear una nueva lista con base a las frutas que tengan la letra a, para ello vamos a tener en cuenta el sintaxis el cual sera de la siguiente manera:
_[element **for** element **in** iterable]_
.element
corresponde al elementofor element in iterable
corresponde al ciclo donde se extraen elementos de cualquier iterable> iterable, es cualquier objeto de Python capaz de devolver sus miembros uno a la vez, lo que permite iterarlo en un bucle for . Los ejemplos familiares de iterables incluyen listas, tuplas y cadenas; cualquier secuencia de este tipo se puede iterar en un bucle for.
Obtenemos:
['limon', 'kiwi']
Material de apoyo
DICTIONARY COMPREHENSION
Podemos generar un diccionario en base a los datos que determinemos
{key:value _for_ var _in_ iterable}
Ejemplo:
dictionary = {} for i in range(1,11): dictionary[i] = i * 2 print(dictionary)
Investigando pude encontrar que podemos incluir mas de 2 listas, en este caso voy a tener 3 listas, las cuales me contienen los siguientes datos:
Ahora si vamos a print podemos obtenemos el siguiente resultado:
Pero al momento de utilizar dictionary comprehension, encontramos que
zip()
nos permite comprimir 3 listas y realizar operaciones más representativas.Comparto el artículo de las funciones de zip()
Material de apoyo
DICTIONARY COMPREHENSION: CONDITION
La comprensión del diccionario de Python es un método para transformar un diccionario en un diccionario nuevo. Usar un if-else en la comprensión de dictados de Python es una de las formas de crear una nueva lista. Funciona como una condición para filtrar los elementos del diccionario para un nuevo diccionario.
Ejemplo
Material de Apoyo
Si queremos que nos re emplace las vocales que están en minuscula a mayuscula podemos utilizar
.upper()
**Ahora con la misma frase vamos a contar cuantas veces se repiten las vocales, con lo cual utilizaremos
.count()
****Para utilizar estos métodos de formato
LIST vs TUPLES vs SET
LIST Las listasson como matrices de tamaño dinámico que en pocas palabras es una colección de cosas que se almacenan entre corchetes [ ] y separadas por coma ','.
Caracteristicas
Ejemplo:
Producción:
TUPLE
Las Tuplas son una colección muy parecida a una lista, ya que sus valores almacenados pueden ser de cualquier tipo y están indexados por números enteros. Sus valores están separados por 'comas', pero esto no es necesario, ya que lo mas común es encerrarlos entre paréntesis ( ), sus principales características son:
Ejemplo:
Producción:
SET El conjunto es una colección de elementos desordenada que es iterable, mutable y no tiene elementos duplicados. Su principal ventaja al utilizar un conjunto a diferencia de una lista, es su metodo que es altamente optimizado para verificar si un elemento específico esta contenido en un conjunto. Sus principales características son:
Ejemplo:
Producción:
FUNCIONES
Las Funciones para Python es un bloque de codigo que solo se activan cuando se les llama.
Puede pasar datos, conocidos como parametros a una función y una función puede devolver datos como un resultado.
Como se construye Para Python una función es invocada utilizando la palabra
def
Ejemplo:
Tenemos que escribir un texto "Hola Mi nombre es Camilo" con lo cual utilizarimos print('Hola mi nombre es Camilo') pero si tenemos que escribir de nuevo tendríamos que volver a copiar la misma linea de código.
Con la funcion
_def()_
se utilizaría de la siguiente manera:Ahora tenemos que escribir el mismo texto dos veces, para eso en print le indicamos la cantidad a repetirse.
Tambien podemos utilizar def() con funciones matemáticas y seria de la siguiente manera:
Material de apoyo
FUNCIONES: RETURN
La función
return
nos permite devolver el valor al finalizar su ejecución pero también el valor que devuelve de la función y la ejecución del programa continua hasta finalizar su ciclo.Ejemplo:
Material de apoyo
PARAMETROS POR DEFECTO Y MULTIPLES RETURNS
Con
return
podemos invocar para que se llamen varios datos al mismo tiempo y utilizando una sola funcion, para ello citaremos el siguiente ejemplo:Ejemplo
Material de apoyo
SCOPE
Scope o Alcance, es cuando una variable solo esta disponible desde donde fue construida y para ello existen dos ambitos, el local y el global.
Scope Local
Cuando una variable es construida dentro de una función pertenece al ámbito local de esa función y solo se puede usar dentro de esa función.
_Scope Global
A diferencia del Scope Local, el Scope Global esta creada en la parte externa de la función y esta puede ser utilizada tanto de manera global como local.
Ahora si tenemos dos variables una global y la otra local con el mismo nombre de variable, Python lo que hará es tomar los dos variables por separado siendo una de tipo global (fuera de la función) y la otra de tipo local (dentro de la función)
En este caso observamos que el ámbito global tiene 'y = 150' y el ámbito local tiene 'y = 300', en donde al imprimir el resultado mostrara primero el ámbito local
300
y luego mostrará el resultado del ámbito global150
Truco
Si dentro de una variable global que fue creada esta dentro de un ámbito local, podemos utilizar
global
para que la variable se vuelva de ámbito global dentro de la función.También podemos utilizar nuestra palabra
global
dentro de una función para remplazar un valor de tipolocal
a unoglobal
de la siguiente manera:FUNCIONES ANÓNIMAS: LAMBDA Lectura de Apoyo ¿Que es lambda? Son conocidas como Funciones Anónimas o lambdas, en donde no tienen un identificador o no tienen un nombre, se puede definir su estructura de la siguiente manera:
lambda argumentos: expresión
, las funciones lambda pueden tener los argumentos que se requieran pero solo una linea de código o una expresión.Sintaxis
lambda arguments : expression
Queremos incrementar el valor de una serie según la cantidad que le hayamos dado para ello tenemos el siguiente ejemplo:
Higher order function: una función dentro de otra función Una función de Orden Superior o en sus siglas HOF se le lama así solo cuando contiene otras funciones como parámetro de entrada o devuelve una función como salida, es decir que en este caso las funciones que operan a otras funciones se les denomina Higher order function.
También hay que entender que a estas Funciones de Orden Superior HOF se aplican para funciones y métodos que toman como funciones a los parámetros o devuelven una función como un resultado.
Propiedades de HOF
Ahora HOF podemos incluir en este caso un signo de operación matemático de suma y multiplicación.
Material de apoyo
MAP( ) La función
map ()
ejecuta una función especifica para cada elemento en un iterable y el elemento se envía a la función como un parámetro.Sintaxis.
map(function, iterables)
FILTER La función filter(), devuelve un valor que esta siendo iterado de la cual su resultado será el valor que se esta buscando en el filter
SINTAXIS
_filter (function, iterable_
Valores.
Ejercicio: Tenemos una lista de estudiantes de la cual debemos saber quienes son de Colombia y quienes son considerados mayores de edad al tener igual o mas de 18 años y cuantos son.
REDUCE( ) La función reduce() se aplica cuando queremos aplicar una función en particular en sus argumentos de una lista y los reducimos a un valor esperado, para ello su definición seria "functools"
Ejemplo:
Tenemos una lista de la cual debemos conocer 3 datos, la sumatoria de sus valores, saber cual es el numero mayor y el numero menor, para ello debemos tener claro que la lista esta compuesta por los numeros del 1 al 9 en desorden.
Producción:
El numero máximo es: 9
minimo = functools.reduce(lambda a, b: a if a < b else b, numbers) text3 = "El número mínimo es: " print(text3 + str(minimo)) Producción:
El número mínimo es: 1
MODULO Un modulo se puede definir que es lo mismo a una biblioteca de código. Es decir es un archivo que contiene un conjunto de funciones que se pueden aplicar.
Como crear un Módulo?
.py
ejemploname.py
import name
Codigo en module.py
Código en el archivo que vamos a trabajar exercisemodule.py
Producción: Hello, Camilo
Si en nuestro modulo principal tenemos una lista con varios valores, podemos extraer un solo resultado.
module.py
_exercisemodule.py
Producción:
35
Importar desde un Módulo.
AL utilizar la palabra
from
podemos importar partes especificas del módulo principal a nuestra documento de extracción de información.module.py
exercise_module.py
Producció:
35
Como Construir Módulos.
Para construir módulos debemos tener en cuenta que se deben crear en la misma carpeta a lo cual utilizaremos
import
para ser llamada en el archivo a trabajar:Tenemos un módulo que tiene los datos de la población de 3 paises de Sur America, los cualse vamos a crear en la carpeta app y daremos por nombre
utils.py
Ahora creamos el archivo con nombre
main.py
, este archivo vamos a digitar los datos a buscar.Ahora invocamos el módulo a utilizar y sus valores según lo que contiene country = input('Digite el país: ') result = utils.population_by_countrie(data, country) print(result)
Producción:
MÓDULOS COMO SCRIPTS: NAME y MAIN
Cuando utilizamos name == 'main' estamos dando dualidad a cierta función para que sea ejecutada en dos archivos distintos.
Para ello debemos tener en cuenta que su uso esta catalogado de dos maneras:
Para Python, es independiente cual de las dos formas estemos utilizando el código, ya que python define una variable especial llamada
__name__
la cual contiene un string y cuyo resultado dependerá de la forma en como sea usada.Como en el ejemplo, se observa que el primer archivo que denominamos
main.py
.main.py
Cuando ejecutamos el archivo directamente como un script nuestra variable
if __name__
tomara el valor de__main__
Al ser ejecutado nuestro output será el siguiente:
Producción:
Con esto podemos concluir que la función
__name__ == '__main__'
ayuda a que python identifique de que manera se debe ejecutar e o los módulos ó script. Material de apoyoPAQUETES Los paquetes son las carpetas que contienen varios módulos y cada uno con una función distinta. Para ello debe tener siempre un archivo de nombre
__init__.py
(por lo general esta vacio, ya que así es compatible con programas python versiones anteriores a la 3), con esto le estamos indicado a python que esto se trata de un paquete y no de una carpeta.Estos son algunos ejemplos:
Antes de realizar el ejemplo debemos tener nuestra carpeta definida con la siguiente estructura:
En nuestra carpeta pkg, creamos dos archivos:
__init__.py
yaritmetica.py
__init__.py
Se utiliza cuando debemos utilizar paquetes en versiones anteriores a python 3 o puede contener información la cual se ejecutara siempre, para este caso le colocamos el titulo Bienvenido a la clase de Aritmetica.aritmetica.py
va a contener nuestras operaciones aritmeticas que son, suma, resta, multiplicacion y division:Ahora en nuestro archivo principal
main.py
ejecutaremos los paquetes de la siguiente manera:import nombrecarpeta.nombremodulo
Produccion:
from nombrecarpeta import nombremodulo
Produccion:
from nombrecarpeta.nombremodulo import def
Produccion:
Manipulación de Archivos y Errores.
ITERABLES Un iterable se define como el objeto que contiene un número contable con valores y este al tener un valor puede recorrer uno a uno los elementos que la contienen como una estructura de datos y operar con ellos, pero a la vez se rigen bajo la instrucción que se le es dada, con lo cual son dependientes de la instrucción a recibir.
Los metodos de su uso son dos
__iter__()
y__next__()
.Veamos un ejemplo:
Ahora vamos a imprimir el resultado una a una con
print(next(myit))
, con esto controlamos un iterador por printTambién podemos utilizar los iterables como una cadena de texto que recorre un texto o una serie de números.
Otra forma de realizar un iterador es atraves de
for()
o un bucle, para ello realizaremos el siguiente ejemplo:Con el iterador también podemos crear una secuencia de números hasta cierto valor que le determinemos.
Ahora si queremos que la iteración se detenga en un valor determinador podemos utilizar la declaración
StopIteration
ERRORES O EXCEPCIONES INTEGRADAS EN PYTHON En la siguiente tabla podemos encontrar los errores o excepciones que se presentan en Python.
PRUEBA & ERROR Cuando se nos presenta un error o una excepción como se le llama en python, el programa se detiene y presenta el error que se presento, pero si utilizamos la excepción
try()
podemos omitir ese error y continuar con el programa. Esto es de uso fundamental para que el programa no continue con su ejecución por el error y así evitar retrasos en la producción, también de su uso para determinar en los bloques de código si se nos presenta un error poder ser identificado de manera mas facil.Para qué
try
sea efectivo podemos utilizar estas declaraciones:try
except
else
finally
LEER ARCHIVOS DE TEXTO Para realizar la lectura de un archivo tipo texto en Python debemos utilizar la función
open( )
, esta función nos permite abrir un archivo tipo texto en python.Si queremos solamente realizar la lectura de una linea de texto, debemos utilizar
readline()
de la siguiente manera:Tambien con
for
podemos recorrer el tipo texto de la siguiente manera:Al finalizar la lectura de un archivo debe ser cerrar su lectura con
f.close()
ESCRIBIR TEXTOS EN PYTHON
Para poder escribir texto en python solo debemos agregar al parámetro
open( )
algunas de las siguientes reglas:Sintaxis.
Su sintaxis es un simple y fácil de usar, solo es necesario especificar el tipo de parámetro que queremos agregar a nuestro texto.
f = open('./text.txt')
ofile = open('./text.txt')
Veamos cómo aplicarlo a nuestro archivo texto.
Ahora y quizas este comando puede ser muy util como muy peligro ya que "w" lo que realiza es eliminar todo el texto y lo sobre escribir con lo que le vayamos a ingresar por eso es de cuidado!.
Veamos como se aplicaría.
open( )
las cuales explicare a continuación: Exception