Python para Odoo
3.3. Tipos Básicos:
Python, como lenguaje de programación, incluye varios tipos de datos fundamentales que son esenciales para cualquier desarrollo, incluido el trabajo con Odoo. A continuación, se detallan algunos de los tipos básicos:
3.3.1. Números, Cadenas, Booleanos
Números:
- # Enteros (int): Representan números enteros.
- entero = 42
- # Flotantes (float): Representan números decimales.
- decimal = 4,2
- # Cadenas de Texto (str):
- # Secuencia de caracteres Unicode.
- # Definición con comillas simples o dobles.
- texto = ‘Hola, Odoo!’
- # Booleanos (bool):
- # Representan valores de verdad (True o False).
- verdadero == True
- falso == False
3.4. Operadores:
Los operadores en Python son símbolos especiales que realizan operaciones en operandos. Aquí se describen algunos tipos de operadores comunes:
- #Operadores Aritméticos:
- #Permiten realizar operaciones matemáticas.
- suma = 3 + 5
- resta = 10 – 7
- multiplicacion = 2 * 4
- division = 15 / 3
- modulo = 10 % 3 # Devuelve el resto de la división
- potencia = 2 ** 3 # 2 elevado a la 3 la 3
- #Operadores de Comparación:
- #Comparan dos valores y devuelven un resultado booleano (True o False).
- igual = (5 == 5)
- diferente = (3 != 7)
- mayor_que = (8 > 3)
- menor_que = (2 < 6)
- mayor_igual = (10 >= 10)
- menor_igual = (4 <= 9)
- #Operadores Lógicos:
- #Realizan operaciones lógicas entre expresiones booleanas.
- and_logico = True and False
- or_logico = True or False
- not_logico = not True
- #Operadores de Pertenencia:
- #Verifican si un valor está presente en una secuencia.
- lista = [1, 2, 3]
- pertenece = 2 in lista
- no_pertenece = 4 not in listasta
- #Operadores de Identidad:
- #Comprueban si dos objetos son el mismo objeto en memoria.
- a = [1, 2, 3]
- b = a
- misma_identidad = a is b
- diferente_identidad = a is not listaa
3.5. Variables:
En Python, las variables son utilizadas para almacenar datos. Aquí se presentan conceptos básicos sobre variables:
- Declaración de Variables:
# En Python, no es necesario declarar el tipo de variable. El tipo se asigna automáticamente según el valor asignado.
numero = 10 # Integer (entero)
texto = “Hola, mundo!” # String (cadena de caracteres)
decimal = 3.14 # Float (decimal)
booleano = True # Boolean (booleano)
- Convenciones de Nombres:
- Se siguen convenciones para nombrar variables.
- Los nombres son sensibles a mayúsculas y minúsculas.
mi_variable = “Ejemplo”
otraVariable = 42
# Reasignación de Variables:
# Puedes cambiar el valor de una variable.
x = 5
x = x + 1 # Ahora, x es 6
# Operaciones con Variables:
# Se pueden realizar operaciones con variables.
a = 10
b = 20
suma = a + b
# Impresión de Variables:
# Para imprimir el valor de una variable.
nombre = “Juan”
print(“Hola, ” + nombre)
# Ámbito de Variables:
# El ámbito de una variable define su alcance, ya sea local o global.
variable_global = 100
def ejemplo_funcion():
variable_local = 50
print(variable_global) # Puede acceder a la variable global
print(variable_local)
ejemplo_funcion()
3.6. Colecciones:
En Python, las colecciones son estructuras que permiten almacenar y organizar múltiples elementos. Las colecciones básicas incluyen:
- Listas:
# Una lista es una colección ordenada y modificable. Se define usando corchetes [].
mi_lista = [1, 2, 3, “Hola”, True]
Acceso a elementos:
primer_elemento = mi_lista[0]
Métodos comunes:
mi_lista.append(4) # Agrega un elemento al final
mi_lista.remove(“Hola”) # Elimina un elemento
mi_lista.reverse() # Invierte el orden de los elementos
mi_lista.sort() # Ordena los elementos
mi_lista.pop(0) # Elimina un elemento por índice
mi_lista.clear() # Elimina todos los elementos
Tuplas:
# Una tupla es una colección ordenada e inmutable. Se define usando paréntesis ().
mi_tupla = (1, 2, 3, “Hola”, True)
Acceso a elementos:
primer_elemento = mi_tupla[0]
# Al ser inmutable, no se pueden agregar ni eliminar elementos una vez creada.
# Sin embargo, se pueden convertir a listas y viceversa.
Diccionarios:
# Un diccionario es una colección no ordenada de pares clave-valor. Se define usando llaves {}.
mi_diccionario = {“nombre”: “Juan”, “edad”: 25, “ciudad”: “Ejemplo”}
Acceso a elementos:
nombre = mi_diccionario[“nombre”]
Métodos comunes:
mi_diccionario[“ocupacion”] = “Desarrollador” # Agrega un nuevo par clave-valor
del mi_diccionario[“edad”] # Elimina un elemento por clavemento por clav
Conjuntos:
# Un conjunto es una colección no ordenada y sin elementos duplicados. Se define usando llaves {}.
mi_conjunto = {1, 2, 3, 4, 5}
Operaciones comunes:
mi_conjunto.add(6) # Agrega un elemento al conjunto
mi_conjunto.remove(3) # Elimina un elemento del conjunto
3.7. Control de Flujo:
En Python, las estructuras de control de flujo permiten ejecutar instrucciones de manera condicional o repetitiva. Las principales estructuras son:
Condicionales (if, elif, else):
# Permiten ejecutar bloques de código basados en condiciones.
if condicion:
# Código si la condición es verdadera
elif otra_condicion:
# Código si la otra condición es verdadera
else:
# Código si ninguna condición es verdadera
Bucles (for, while):
# Permiten ejecutar bloques de código repetidamente.
# Bucle for con una lista
for elemento in lista:
# Código a ejecutar para cada elemento
# Bucle while con una condición
while condicion:
# Código a ejecutar mientras la condición sea verdadera
Control de Flujo Especial:
break: #Sale de un bucle antes de que se complete.
continue: #Salta a la siguiente iteración de un bucle.
pass: #No hace nada y se utiliza como marcador de posición.
for i in range(5):
if i == 3:
break # Sale del bucle cuando i es igual a 3
elif i == 1:
continue # Salta a la siguiente iteración cuando i es igual a 1
else:
pass # No hace nada
Manejo de Excepciones (try, except):
# Permite manejar errores de manera controlada.
try:
# Código que puede generar un error
except TipoDeError as e:
# Código a ejecutar si se produce el error
3.8. Herramientas Integradas:
Python ofrece varias herramientas integradas que simplifican y mejoran el desarrollo de código. Algunas de ellas son:
Listas de Comprensión:
# Permiten crear listas de manera concisa.
# Forma convencional de crear una lista
cuadrados = []
for num in range(5):
cuadrados.append(num**2)
# Usando lista de comprensión
cuadrados = [num**2 for num in range(5)]
Funciones Lambda:
# Son funciones anónimas de una sola línea.
# Función convencional
def cuadrado(x):
return x**2
# Función lambda equivalente
cuadrado_lambda = lambda x: x**2
Map, Filter y Reduce:
# Funciones de orden superior que operan sobre listas.
# Map: aplica una función a cada elemento de la lista
cuadrados = list(map(lambda x: x**2, [1, 2, 3]))
# Filter: filtra elementos de la lista según una condición
pares = list(filter(lambda x: x % 2 == 0, [1, 2, 3, 4]))
# Reduce: aplica una función acumulativa a la lista
suma = reduce(lambda x, y: x + y, [1, 2, 3, 4])
Comprensiones de Conjuntos y Diccionarios:
# Similar a las listas de comprensión, pero para conjuntos y diccionarios.
# Conjunto de cuadrados
cuadrados_set = {num**2 for num in range(5)}
# Diccionario de cuadrados
cuadrados_dict = {num: num**2 for num in range(5)}
3.8.1. Listas de Comprensión:
En Python, las listas de comprensión son una forma concisa y expresiva de crear listas. Permiten generar listas de manera más compacta en comparación con los enfoques tradicionales. La sintaxis general de una lista de comprensión es la siguiente:
nueva_lista = [expresion for elemento in iterable if condicion ]
Donde:
- expresion: es la expresión que define los elementos de la nueva lista.
- elemento: toma cada elemento del iterable especificado.
- iterable: es una secuencia o colección sobre la cual se itera.
- condicion (opcional): define una condición para incluir el elemento en la nueva lista.
Ejemplo de lista de comprensión para generar una lista de cuadrados de los números del 0 al 4:
cuadrados = [num**2 for num in range(5)]
# Resultado: [0, 1, 4, 9, 16]
Este enfoque es más conciso que el uso de bucles tradicionales y hace que el código sea más legible, especialmente en situaciones donde se busca aplicar una operación simple a cada elemento de una secuencia.
3.8.2. Funciones Lambda:
Las funciones lambda, también conocidas como funciones anónimas, son pequeñas funciones definidas sin un nombre. Son útiles cuando necesitas una función por un corto período y no es necesario darle un nombre formal. La sintaxis general de una función lambda es:
lambda argumentos: expresion
- lambda: palabra clave que indica que estás creando una función lambda.
- argumentos: lista de parámetros que la función puede tomar.
- expresion: expresión que define la operación que la función realizará.
Ejemplo de función lambda que suma dos números:
suma = lambda x, y: x + y
# Uso de la función lambda
resultado = suma(3, 5)
# Resultado: 8
Las funciones lambda son útiles en situaciones donde necesitas una función rápida para realizar una tarea específica, como en la aplicación de funciones a listas o en la definición de funciones de orden superior.
3.9. Programación Orientada a Objetos:
La programación orientada a objetos (POO) es un paradigma de programación que utiliza objetos, que son instancias de clases, para diseñar y estructurar el código. En Python, todo es un objeto, lo que significa que cada entidad del lenguaje, como números, cadenas y funciones, son objetos con sus propias propiedades y métodos.
Conceptos clave:
- Clases y Objetos:
- Clase: Es un “molde” para crear objetos. Define atributos y comportamientos comunes a todos los objetos que se crean a partir de ella.
- Objeto: Es una instancia de una clase. Representa una entidad con características específicas.
# Ejemplo de clase y objeto
class Perro:
def __init__(self, nombre, edad):
self.nombre = nombre
self.edad = edad
# Creación de un objeto
mi_perro = Perro(nombre=”Fido”, edad=3)
Herencia:
# Permite que una clase herede atributos y métodos de otra. La clase que hereda se llama subclase, y la clase de la que se hereda se llama superclase.
# Ejemplo de herencia
class Animal:
def comer(self):
print(“Comiendo…”)
class Perro(Animal):
def ladrar(self):
print(“¡Guau!”)
# Creación de un objeto de la subclase
mi_perro = Perro()
mi_perro.comer() # Método heredado
mi_perro.ladrar() # Método propio de la subclase
Métodos:
# Funciones asociadas a objetos. Pueden ser métodos de instancia (operan en una instancia específica) o métodos de clase (operan en la clase).
# Ejemplo de método de instancia
class Circulo:
def __init__(self, radio):
self.radio = radio
def calcular_area(self):
return 3.14 * self.radio ** 2
# Creación de un objeto y llamada a un método
mi_circulo = Circulo(radio=5)
area = mi_circulo.calcular_area()
Deja una respuesta