B3_Python Flashcards
Características del lenguaje
Es multiplataforma, con una sintaxis sencilla, utiliza menos líneas de código que los lenguajes convencionales.
Es interpretado y soporta los paradigmas de programación: funcional, proceimental y orientado a objetos.
Es dinámicamente tipado.
Última versión de Python
3.13.0
Comentarios de una línea
This is a comment.
Comentario de varias líneas
”””
This is a comment
written in
more than just one line
“””
Nombre de variables
Deben comenzar con una letra o un carácter de subrayado, no puede comenzar con un número, solo puede contener caracteres alfanuméricos y guiones bajos (A-z, 0-9 y _). Distinguen entre mayúsculas y minúsculas, no se permiten palabras reservadas.
Asignar múltiples variables
x, y, z = “Orange”, “Banana”, “Cherry”
Desempacar una colección
fruits = [“apple”, “banana”, “cherry”]
x, y, z = fruits
Imprimir variables
print(x + y + z) imprime la suma de las cadenas literal o hace la operacion matemática de números.
print(x, y) imprime dejando un espacio por el medio
Global variables
Se pueden declarar variables globales dentro de una función con la palabra global.
Tipos de datos texto
str
x = “Hello World”
Tipos de datos numéricos
int, float, complex
x = 20
x = 20.5
x = 1j
Tipos de datos secuenciales
list, tuple, range
x = [“apple”, “banana”, “cherry”]
x = (“apple”, “banana”, “cherry”)
x = range(6)
Tipos de datos de mapas
dict
x = {“name” : “John”, “age” : 36}
Tipos de datos set
set, frozenset
x = {“apple”, “banana”, “cherry”}
x = frozenset({“apple”, “banana”, “cherry”})
Tipos de datos bool
bool
x = True
Tipos de datos binarios
bytes, bytearray, memoryview
x = b”Hello”
x = bytearray(5)
x = memoryview(bytes(5))
Tipos de datos none
NoneType
x = None
Funciones constructoras
Cada tipo de datos tiene sus funciones constructoras
x = complex(1j)
x = list((“apple”, “banana”, “cherry”))
Retornar el tipo de datos
type(x)
Format Strings
txt = f”My name is John, I am {age}”
txt = f”The price is {price:.2f} dollars”
Caracteres de escape
' Single Quote
\ Backslash
\n New Line
\r Carriage Return
\t Tab
\b Backspace
\f Form Feed
\ooo Octal value
\xhh Hex value
Booleans
Se evalúan condiciones y variables. Casi todos los valores son True excepto los strings vacíos, el número 0, y las colecciones vacías.
Operadores aritméticos
+ Addition x + y
- Subtraction x - y
* Multiplication x * y
/ Division x / y
% Modulus x % y
** Exponentiation x ** y
// Floor division x // y
Operadores de comparación
== Equal x == y
!= Not equal x != y
> Greater than x > y
< Less than x < y
>= Greater than or equal to x >= y
<= Less than or equal to x <= y
Operadores lógicos
and x < 5 and x < 10
or x < 5 or x < 4
not not(x < 5 and x < 10)
Operadores de identidad
Se usan para comparar objetos:
is x is y
is not x is not y
Operadores de membresía
Se utilizan para probar si una secuencia se presenta en un objeto:
in x in y
not in x not in y
Operadores bit a bit
& AND Devuelve 1 si ambos on 1 x & y
| OR Devuelve 1 si uno de los dos es 1 x | y
^ XOR Devuelve uno solo si uno de los dos es 1 x ^ y
~ NOT Invierte todos los bits ~x
«_space; Desplazamiento a la izquierda de relleno cero x «_space;2
» Desplazamiento a la derecha de relleno cero x»_space; 2
list
La lista es una colección ordenada y modificable. Permite miembros duplicados.
thislist = [“apple”, “banana”, “cherry”]
tuple
Es una colección ordenada e inmutable. Permite miembros duplicados.
thistuple = (“apple”, “banana”, “cherry”)
thistuple = (“apple”,)
set
Es una colección desordenada, inmutable( se permiten añadir y eliminar) y no indexada. No hay miembros duplicados.
myset = {“apple”, “banana”, “cherry”}
Los valores True y 1 son considerados iguales.
dict
Es una colección ordenada y modificable. No hay miembros duplicados. Almacenan datos en pares clave:valor.
Desde Python 3.7 los diccionarios son ordenados.
thisdict = {
“brand”: “Ford”,
“model”: “Mustang”,
“year”: 1964
}
Añadir elementos a una lista
thislist.append(“orange”)
thislist.insert(1, “orange”)
thislist.extend(thistuple)
Eliminar elementos de una lista
thislist.remove(“banana”) elimina el elemento especificado
thislist.pop() elimina el último elemento o según el índice
thislist.clear() borra todos los elementos de la lista
del thislist elimina la lista completa
Loop Lists
for x in thislist:
for i in range(len(thislist)): se usa range() y len() para iterar adecuadamente.
while i < len(thislist):
List Comprehension
[expression for item in iterable if condition == True]
[x for x in fruits if “a” in x]
[x for x in range(10)]
Sort Lists
thislist.sort()
thislist.sort(reverse = True)
thislist.sort(key = myfunc)
Copy Lists
mylist = thislist.copy() con la función copy
mylist = list(thislist) con el constructor de la clase list
mylist = thislist[:] con el slice operador
Join Lists
list3 = list1 + list2
list1.extend(list2) agrega los elementos al final de la lista
for x in list2:
list1.append(x) agrega elementos uno a uno
Update tuples
Se copia la tupla en un llista, se cambia y luego de vuelve a crear la tupla.
x = (“apple”, “banana”, “cherry”)
y = list(x)
y[1] = “kiwi”
x = tuple(y)
Add items tuples
thistuple = (“apple”, “banana”, “cherry”)
y = list(thistuple)
y.append(“orange”)
thistuple = tuple(y)
o sumar dos tuplas
thistuple = (“apple”, “banana”, “cherry”)
y = (“orange”,)
thistuple += y
Removes items tuples
thistuple = (“apple”, “banana”, “cherry”)
y = list(thistuple)
y.remove(“apple”)
thistuple = tuple(y)
del thistuple()
Unpack tuples
fruits = (“apple”, “banana”, “cherry”)
(green, yellow, red) = fruits
fruits = (“apple”, “banana”, “cherry”, “strawberry”, “raspberry”)
(green, yellow, *red) = fruits
(green, *tropic, red) = fruits
Loop Tuples
for x in thistuple:
for i in range(len(thistuple)):
while i < len(thistuple):
Join tuples
tuple3 = tuple1 + tuple2
mytuple = fruits * 2
Tuples Methods
count() Retorna el número de veces que ocurre un valor determinado en le tupla.
index() Busca en la tupla un valor específico y devuelve la posición donde se encontró.
Acceder a los elementos de un set
for x in thisset:
Add set items
thisset.add(“orange”)
Add sets or add any iterable
thisset = {“apple”, “banana”, “cherry”}
tropical = {“pineapple”, “mango”, “papaya”}
mylist = [“kiwi”, “orange”]
thisset.update(tropical)
thisset.update(mylist)
Remove Set Items
thisset.remove(“banana”)
thisset.discard(“banana”) aunque el elemento no este no da error
x = thisset.pop() elimina un elemnto aleatoriamente
thisset.clear()
del thisset
Loop Sets
for x in thisset:
Join Sets
union() y update() unen todos los elementos de ambos conjuntos.
intersection() permite solo los duplicados.
difference() mantiene los elementos del 1er set que no están el segundo.
symmetric_difference() mantiene todos los elementos excepto los duplicados.
Acceder a los elementos de un diccionario
x = thisdict.get(“model”)
x = thisdict[“model”]
x = thisdict.keys() retorna una lista de las llaves.
Adicionar elementos a un diccionario
thisdict[“color”] = “red”
thisdict.update({“color”: “red”})
Cambiar elementos de la lista
thisdict[“year”] = 2018
thisdict.update({“year”: 2020})
Eliminar elementos de un diccionario
thisdict.pop(“model”)
thisdict.popitem() eleimina el ultimo elemento
del thisdict[“model”]
thisdict.clear()
Loop Dictionaries
for x in thisdict.keys se refiere a las claves
for x in thisdict.values(): se refiere a los valores
for x, y in thisdict.items(): se refiere a los ambos
Copiar un diccionario
mydict = thisdict.copy()
mydict = dict(thisdict)
Declarar funciones en Python
def my_function():
luego se le llama:
my_funtion()
Paso de parámetros y argumentos
def my_function(fname):
Argumentos arbitrarios *args
def my_function(*kids):
la función recibirá una tupla de argumentos
Argumentos de palabra clave
def my_function(child3, child2, child1):
my_function(child1 = “Emil”, child2 = “Tobias”, child3 = “Linus”)
Argumentos arbitrarios de palabra clave **kargs
def my_function(**kids):
la función recibirá un diccionario de argumentos
Paso de parámetros por defecto
def my_function(country = “Norway”):
En caso de que no se pase ningún parámetro se escoge ese
Paso de una lista por parámetros
def my_function(food):
La sentencia pass
def myfunction():
pass
Se usa en caso de que la funcion este vacía.
Función con SOLO argumentos posicionales
def my_function(x, /):
Función SOLO argumentos palabras clave
def my_function(*, x):
Lambda, pequeña función anónima
lambda arguments : expression
x = lambda a : a + 10
print(x(5))
__init__() Function
Asigna valores a las propiedades del objeto u otras operaciones que sean necesarias cuando se crea el objeto
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
p1 = Person(“John”, 36)
print(p1.name)
print(p1.age)
__str__() function
Controla lo que se debe devolver cuando el objeto de clase se representa como una cadena
parámetro self
Es una referencia a la instancia actual de la clase y se utiliza para acceder a variables que pertenecen a la clase.
Eliminar objetos y sus propiedades
del p1.age
del p1
Herencia en Python
class Student(Person):
def __init__(self, fname, lname, year):
super().__init__(fname, lname)
self.graduationyear = year
x = Student(“Mike”, “Olsen”, 2019)
Iterador en Python
myit = iter(mytuple)
objeto sobre el que se puede iterar, lo que significa que puede recorrer todos los valores. Tiene los métodos iter() y next().
Todos los objetos iterables tienen un método iter() que se utiliza para obtener un iterador
StopIteration
Para evitar que la iteración continúe para siempre, podemos usar la declaración StopIteration
Palabra clave nonlocal
Hace que la variable pertenezca a la función externa.
Módulos en Python
import mymodule
import mymodule as mx
from mymodule import person1
Fechas Python
import datetime
x = datetime.datetime.now()
x = datetime.datetime(2018, 6, 1)
print(x.strftime(“%B”)) # para dar formato
Iterar con enumerate
for indice, l in enumerate(lista):
print(indice, l)
Módulo Math
import math
x = math.sqrt(64)
x = math.ceil(1.4)
y = math.floor(1.4)
x = math.pi
De JSON a Python
import json
x = ‘{ “name”:”John”, “age”:30, “city”:”New York”}’
y = json.loads(x)
print(y[“age”]) el resultado es un diccionario Python
De Python a JSON
import json
x = { “name”: “John”, “age”: 30, “city”: “New York” }
y = json.dumps(x)
print(y)
Módulo RegEx
import re
findall() Retorna una lista que contiene todas las coincidencias
search() Devuelve un objeto Match si hay una coincidencia en cualquier parte de la cadena
split() Devuelve una lista donde la cadena se ha dividido en cada coincidencia
sub Reemplaza una o varias coincidencias con una cadena
PIP
PIP es un administrador de paquetes para paquetes o módulos de Python
Python Try Except
try prueba un bloque de código en busca de errores
except permite manejar el error
else permite ejecutar código cuando no hay ningún error.
finally permite ejecutar código, independientemente del resultado de los bloques try y except
Módulo moviepy
Permite editar vídeos con Python
Python user input
username = input(“Enter username:”)
print(“Username is: “ + username)
Matplotlib
Biblioteca para la generación de gráficos en dos dimensiones, a partir de datos contenidos en listas o arrays en el lenguaje de programación Python( NumPy).
La mayoría de las utilidades se encuentran en le submódulo pyplot
Numpy
Abreviatura de Python Numérico. Librería que se utiliza para trabajar con matrices.
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
Pandas
(“Panel Data”) Librería de Python que se utiliza para trabajar con conjuntos de datos.
Tiene funciones para analizar, limpiar, explorar y manipular datos.
Permite analizar big data y sacar conclusiones basadas en teorías estadísticas.
Pandas (respuestas sobre los datos)
¿Existe una correlación entre dos o más columnas?
¿Qué es el valor promedio?
¿Valor máximo?
¿Valor mínimo?
Limpiar datos( Elimina filas que no son relevantes o que contienen valores incorrectos, como valores vacíos o NULL.)
serie Pandas
myvar = pd.Series(a)
Es como una columna de una tabla.
Es una matriz unidimensional que contiene datos de cualquier tipo.
Pandas DataFrames
Es una estructura de datos bidimensional, como una matriz bidimensional o una tabla con filas y columnas.
Pandas (Read CSV Files, archivos separados por comas)
df = pd.read_csv(‘data.csv’)
Pandas read JSON (JavaScript Object Notation)
df = pd.read_json(‘data.json’)
SciPy
Significa Python Científico. Es una biblioteca de cálculo científico (optimización, estadísticas y procesamiento de señales.) que utiliza NumPy debajo.
Optimiza y agrega funciones que se usan con frecuencia en NumPy y Data Science.
Django
Es un framework web del lado del servidor back-end. Es gratuito, de código abierto y está escrito en Python. Facilita la creación de páginas web.
¿Cómo trabaja Django?
Sigue el patrón de diseño MVT (Model View Template)
Modelo: los datos que desea presentar, generalmente datos de una base de datos.
Vista: un controlador de solicitudes que devuelve la plantilla y el contenido relevantes, según la solicitud del usuario.
Plantilla: un archivo de texto (como un archivo HTML) que contiene el diseño de la página web, con lógica sobre cómo mostrar los datos.
Programación funcional en Python
Python usa las funciones de orden superior. Estas son las funciones que contienen otras funciones como parámetros de entrada o si devuelve una función como salida, es decir, las funciones que operan con otra funciones.
Función map() en Python
lista = [1, 2, 3, 4, 5]
def por_dos(x):
return x * 2
lista_pordos = map(por_dos, lista)
o
lista = [1, 2, 3, 4, 5]
lista_pordos = map(lambda x: 2*x, lista)
Toma una función y un iterable como entrada, aplicando la función a cada elemento.
Función filter() en Python
Recibe una función y una lista pero el resultado es la lista inicial filtrada. Es decir, se pasa cada elemento de la lista por la función, y sólo si su resultado es True, se incluye en la nueva lista.
lista = [7, 4, 16, 3, 8]
pares = filter(lambda x: x % 2 == 0, lista)
Funcion reduce() en Python
Se usa para reducir todos los elementos de la entrada a un único valor aplicando un determinado criterio.
from functools import reduce
lista = [1, 2, 3, 4, 5]
suma = reduce(lambda acc, val: acc + val, lista)
o
suma = reduce(add, lista)
print(suma) # 15
Módulos de programación funcional en Python
itertools — Funciones que crean iteradores para bucles eficientes
functools — Funciones de orden superior y operaciones sobre objetos invocables
operator — Operadores estándar como funciones
¿Qué es functools?
El módulo functools es para funciones de orden superior: funciones que actúan o retornan otras funciones. En general, cualquier objeto invocable puede ser tratado como una función para los propósitos de este módulo.
Test unitarios con assert Python
assert(calcula_media([3, 7, 5]) == 5.0)
Test unitarios Unittest (pyTest)
class TestCalculaMedia(unittest.TestCase):
def test_1(self):
resultado = calcula_media([10, 10, 10])
self.assertEqual(resultado, 10)
def test_2(self): resultado = calcula_media([5, 3, 4]) self.assertEqual(resultado, 4) if \_\_name\_\_ == '\_\_main\_\_': unittest.main()
Librería TensorFlow
Fue desarrollada por Google y es clave en el cálculo numérico. Sus diagramas de flujo de datos son muy utilizados en Deep Learning.
Su estructura permite crear una red neuronal, que sirve para proporcionar un nuevo enfoque en conceptualización de las matemáticas.
Librería PyTorch
Desarrollada por Facebook. También se emplea en cálculo numérico y sus tarjetas gráficas son fundamentales para la ejecución rápida del código.
Librería Keras
Su cometido es el desarrollo de modelos de deep learning, de forma que se crean prototipos de redes neuronales de una forma rápida y eficaz.
Librería Scikit-learn
Está pensada para la construcción de modelos de aprendizaje automático o machine learning, así como para el análisis de datos.
Acciones de regresión, clasificación y agrupamiento de los datos son posibles. Su interfaz es sencilla, puesto que solo se requiere de una línea de código.
Pandas
es muy usada en Data Science. Los datos son fáciles de trabajar, ya que sus estructuras están conformadas por una serie de datos, así como el Data Frame para dos dimensiones.
Seaborn
Mientras que la manipulación de los datos es la base de Pandas, Seaborn apuesta por la visualización de datos estadísticos para entender el data.
De esta manera, su interfaz es de alto nivel, además de interactiva.
Bokeh
Es una de las librerías de Python que destaca por su interactividad. Sus gráficos son muy versátiles y en tiempo real, además.
NumPy
Permite generar una estructura de datos universal, lo que se traduce por un mejor análisis de datos, ya que se da un intercambio de datos entre diferentes algoritmos.
Sus vectores son multidimensionales y las matrices disponen de una gran capacidad.