←back to Blog

Curso Odoo Tema 3

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

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *