sábado, 11 de mayo de 2024

Calcular edad con la fecha de nacimiento en PHP

 En este tutorial, aprenderemos cómo calcular la edad a partir de la fecha de nacimiento en PHP.

Daré dos ejemplos de Cómo calcular la edad.

Ejemplo 1


    $dob='1993-07-01';
    $year = (date('Y') - date('Y',strtotime($dob)));
    echo $year;

Ejemplo 2

 
    $dob = new DateTime('1993-07-01');
    $today   = new DateTime('today');
    $year = $dob->diff($today)->y;
    $month = $dob->diff($today)->m;
    $day = $dob->diff($today)->d;
    echo "Age is"." ".$year."years"." ",$month."months"." ".$day."days";

domingo, 5 de mayo de 2024

NumPy: La biblioteca fundamental para la computación científica en Python

Para los desarrolladores de software que se adentran en el mundo de Python, la biblioteca NumPy se convierte en una herramienta indispensable para el manejo de datos numéricos. NumPy, abreviatura de "Numerical Python", es una biblioteca de código abierto que proporciona una estructura de datos eficiente para arrays multidimensionales y una amplia gama de funciones matemáticas para su manipulación.

Su uso se extiende a diversos campos como la ciencia de datos, el análisis de datos, el aprendizaje automático, la ingeniería y la física.

¿Qué hace a NumPy tan poderosa?

  1. Arrays Numpy: NumPy introduce el concepto de arrays Numpy, los cuales son estructuras de datos optimizadas para almacenar y manipular grandes conjuntos de datos numéricos de manera eficiente. A diferencia de las listas de Python, los arrays NumPy ofrecen un rendimiento significativamente superior, especialmente al trabajar con grandes volúmenes de datos.

  2. Funciones matemáticas: NumPy proporciona una extensa colección de funciones matemáticas predefinidas para realizar operaciones comunes como la suma, resta, multiplicación, división, logaritmos, funciones trigonométricas y muchas más. Estas funciones están optimizadas para arrays NumPy, lo que las hace extremadamente rápidas y eficientes.

  3. Compatibilidad con otras bibliotecas: NumPy se integra a la perfección con otras bibliotecas populares de Python para el análisis de datos y el aprendizaje automático, como Pandas, SciPy y Matplotlib. Esto permite a los desarrolladores combinar las fortalezas de diferentes bibliotecas para crear soluciones de software completas y potentes.

Empezando con NumPy

Para utilizar NumPy en sus proyectos de Python, siga estos pasos:

Instalación: Instale la biblioteca NumPy utilizando el comando pip install numpy en su terminal o entorno de desarrollo.

Importación: Importe la biblioteca NumPy en su script Python utilizando la instrucción import numpy as np. Esto le dará acceso a todas las funciones y clases de NumPy.

Creación de arrays: Cree arrays NumPy utilizando la función np.array(). Puede especificar los datos del array y su tipo de dato. Por ejemplo, para crear un array unidimensional de 5 números enteros:

import numpy as np 
array_enteros = np.array([1, 2, 3, 4, 5])
 

Acceso a elementos: Acceda a elementos individuales de un array utilizando corchetes. Por ejemplo, para acceder al tercer elemento del array array_enteros:

elemento = array_enteros[2]
print(elemento)  # Imprime el valor 3

Operaciones con arrays: Realice operaciones matemáticas con arrays completos o elementos individuales utilizando las funciones matemáticas de NumPy. Por ejemplo, para calcular la suma de todos los elementos del array array_enteros:

suma = np.sum(array_enteros)
print(suma)  # Imprime el valor 15

Ejemplos de código

A continuación, se presentan algunos ejemplos de código que demuestran el uso de NumPy para tareas comunes:

1. Creación de arrays multidimensionales:

# Array bidimensional que representa una matriz 2x3
matriz = np.array([[1, 2, 3], [4, 5, 6]])

# Array tridimensional que representa un cubo 3x3x3
cubo = np.array([[[1, 2, 3], [4, 5, 6], [7, 8, 9]],
                  [[10, 11, 12], [13, 14, 15], [16, 17, 18]],
                  [[19, 20, 21], [22, 23, 24], [25, 26, 27]]])

2. Selección de subconjuntos de arrays:

# Seleccionar todos los elementos de la segunda fila del array 'matriz'
fila_2 = matriz[1, :] 
print(fila_2)  # Imprime el array [4 5 6]

# Seleccionar el elemento en la posición (1, 2) del array 'cubo'
elemento_cubo = cubo[1, 2, 1]
print(elemento_cubo)  # Imprime el valor 15

3. Operaciones matemáticas con arrays:

import numpy as np

# Creamos arrays de ejemplo
array1 = np.array([1, 2, 3, 4])
array2 = np.array([5, 6, 7, 8])

# Suma de arrays elemento a elemento
suma_elemento_a_elemento = array1 + array2
print("Suma elemento a elemento:\n", suma_elemento_a_elemento)

# Multiplicación de arrays elemento a elemento
multiplicacion_elemento_a_elemento = array1 * array2
print("Multiplicación elemento a elemento:\n", multiplicacion_elemento_a_elemento)

# Suma de todos los elementos de un array
suma_total = np.sum(array1)
print("Suma de todos los elementos de array1:", suma_total)

# Producto escalar de dos arrays
producto_escalar = np.dot(array1, array2)
print("Producto escalar de array1 y array2:", producto_escalar)

# Potencia de un array (cada elemento elevado al cuadrado)
potencia_cuadrada = array1 ** 2
print("Potencia cuadrada de array1:\n", potencia_cuadrada)

4. Funciones matemáticas:

# Calcular el logaritmo base 10 de todos los elementos del array 'array_numeros'
logaritmos = np.log10(array_numeros)

# Calcular la distancia euclidiana entre dos vectores 'vector1' y 'vector2'
distancia_euclidiana = np.linalg.norm(vector1 - vector2)

5. Estadística descriptiva:

# Calcular la media, mediana y desviación estándar del array 'array_datos'
media = np.mean(array_datos)
mediana = np.median(array_datos)
desviacion_estandar = np.std(array_datos)

6. Visualización de datos:

# Importar la biblioteca Matplotlib para la creación de gráficos
import matplotlib.pyplot as plt

# Crear un histograma a partir del array 'array_distribucion'
plt.hist(array_distribucion)
plt.xlabel('Valores')
plt.ylabel('Frecuencia')
plt.title('Histograma de distribución de datos')
plt.show()

Recursos adicionales: 

Conclusión

NumPy se ha convertido en una herramienta fundamental para los desarrolladores de software que trabajan con datos numéricos en Python. Su versatilidad, eficiencia y amplia gama de funciones la convierten en una biblioteca indispensable para el análisis de datos, el aprendizaje automático y la computación científica.

Al dominar los conceptos básicos de NumPy y aprovechar sus potentes funciones, los desarrolladores pueden crear soluciones de software robustas y escalables para una amplia gama de problemas.

 

Uso de varias funciones en Python como ejercicio de Paradigma Funcional.

 El ejercicio busca resolver la siguiente solicitud:

Escribir una función que aplique un descuento a un precio y otra que aplique el IVA a un precio. Escribir una tercera función que reciba un diccionario con los precios y porcentajes de una cesta de la compra, y una de las funciones anteriores, y utilice la función pasada para aplicar los descuentos o el IVA a los productos de la cesta y devolver el precio final de la cesta.

 El código es:

def aplicar_descuento(precio, porcentaje_descuento):
  """
  Función que aplica un descuento a un precio.

  Argumentos:
    precio: El precio original del producto.
    porcentaje_descuento: El porcentaje de descuento que se quiere aplicar.

  Devuelve:
    El precio final del producto con el descuento aplicado.
  """
  descuento = precio * porcentaje_descuento / 100
  precio_final = precio - descuento
  return precio_final

def aplicar_iva(precio, porcentaje_iva):
  """
  Función que aplica el IVA a un precio.

  Argumentos:
    precio: El precio original del producto.
    porcentaje_iva: El porcentaje de IVA que se quiere aplicar.

  Devuelve:
    El precio final del producto con el IVA aplicado.
  """
  iva = precio * porcentaje_iva / 100
  precio_final = precio + iva
  return precio_final

def calcular_total_compra(cesta_compra, funcion_aplicar):
  """
  Función que calcula el total de una compra aplicando una función a cada producto.

  Argumentos:
    cesta_compra: Un diccionario con los precios y porcentajes de descuento/IVA de cada producto.
    funcion_aplicar: La función que se quiere aplicar a cada producto (descuento o IVA).

  Devuelve:
    El precio total de la compra.
  """
  total = 0
  for producto, datos in cesta_compra.items():
    precio = datos["precio"]
    porcentaje = datos["porcentaje"]
    precio_final = funcion_aplicar(precio, porcentaje)
    total += precio_final
  return total

# Ejemplo de uso

cesta_compra = {
  "Producto A": {"precio": 100, "porcentaje": 10},
  "Producto B": {"precio": 50, "porcentaje": 20},
  "Producto C": {"precio": 200, "porcentaje": 5},
}

# Aplicar descuento del 10% a todos los productos
total_con_descuento = calcular_total_compra(cesta_compra, aplicar_descuento)
print(f"Total con descuento: {total_con_descuento}")

# Aplicar IVA del 21% a todos los productos
total_con_iva = calcular_total_compra(cesta_compra, aplicar_iva)
print(f"Total con IVA: {total_con_iva}")

Explicación del código:

  1. Funciones aplicar_descuento y aplicar_iva:

    • Estas funciones reciben el precio original del producto y el porcentaje de descuento/IVA como argumentos.
    • Calculan el descuento/IVA a aplicar.
    • Devuelven el precio final del producto con el descuento/IVA aplicado.
  2. Función calcular_total_compra:

    • Recibe un diccionario con los precios y porcentajes de descuento/IVA de cada producto, y una función para aplicar (descuento o IVA).
    • Inicializa una variable total para almacenar el precio total de la compra.
    • Recorre cada producto en la cesta de compra:
      • Obtiene el precio y el porcentaje del producto actual.
      • Aplica la función funcion_aplicar para obtener el precio final del producto.
      • Suma el precio final al total.
    • Devuelve el total de la compra.
  3. Ejemplo de uso:

    • Se crea un diccionario cesta_compra con los precios y porcentajes de descuento/IVA de cada producto.
    • Se calcula el total de la compra con descuento del 10% y se imprime.
    • Se calcula el total de la compra con IVA del 21% y se imprime.

Características del código:

  • Sigue los principios de la programación funcional:
    • Las funciones son puras, es decir, no modifican el estado externo y siempre devuelven el mismo resultado para los mismos argumentos.
    • Se utilizan funciones anónimas para pasar la función aplicar_descuento o aplicar_iva a la función calcular_total_compra.
  • Es modular:
    • Cada función tiene una responsabilidad específica.
    • El código es fácil de leer y entender.
  • Es reutilizable:
    • Las funciones aplicar_descuento, aplicar_iva y calcular_total_compra se pueden utilizar en otros programas.

sábado, 4 de mayo de 2024

Determinar si un año es bisiesto o no en Python

Esta vez se trata de una función que reciba un parámetro (el año) y devuelva True o False según que el año sea o no bisiesto.

Se recuerda que los años bisiestos son múltiplos de 4, pero los múltiplos de 100 no lo son, aunque los múltiplos de 400 sí.

Estos son algunos ejemplos de posibles respuestas: 2012 es bisiesto, 2010 no es bisiesto, 2000 es bisiesto, 1900 no es bisiesto.

def es_bisiesto(año):
  """
  Función que determina si un año dado es bisiesto o no.

  Argumentos:
    año (int): El año que se quiere verificar.

  Retorno:
    bool: True si el año es bisiesto, False en caso contrario.
  """
  if año % 4 != 0:
    return False
  elif año % 100 == 0 and año % 400 != 0:
    return False
  else:
    return True

# Solicitar el año al usuario
año = int(input("Ingrese un año: "))

# Evaluar si el año es bisiesto
if es_bisiesto(año):
  print(f"{año} es un año bisiesto")
else:
  print(f"{año} no es un año bisiesto")

          

Explicación del código:

  1. Función es_bisiesto:
    • Esta función toma un entero año como argumento.
    • Primero, verifica si el año es divisible por 4. Si no lo es, no es bisiesto y la función devuelve False.
    • Si el año es divisible por 4, se verifica si también es divisible por 100.
      • Si es divisible por 100, pero no por 400, no es bisiesto y la función devuelve False.
      • Si es divisible por 400, sí es bisiesto y la función devuelve True.
  2. Solicitud del año al usuario:
    • Se utiliza la función input() para solicitar al usuario que ingrese un año.
    • El valor ingresado se convierte a un entero usando int().
  3. Evaluación y mensaje:
    • Se llama a la función es_bisiesto() para determinar si el año ingresado es bisiesto.
    • Si la función devuelve True, se imprime un mensaje indicando que el año es bisiesto.
    • Si la función devuelve False, se imprime un mensaje indicando que el año no es bisiesto.

Ejemplo de ejecución:

 

Ingrese un año: 2020
2020 es un año bisiesto

Otro ejemplo:

Ingrese un año: 2100
2100 no es un año bisiesto

Este código proporciona una forma simple y clara de verificar si un año dado es bisiesto en Python. La función es_bisiesto() maneja correctamente las diferentes reglas para determinar si un año es bisiesto, y el código principal facilita la interacción con el usuario para obtener y procesar el año a verificar.

viernes, 3 de mayo de 2024

Calculadora de Índice de Masa Corporal (IMC) en Python

 El siguiente código le pide al usuario que ingrese su peso en Kg y su altura en Metros, para calcular su Indice de Masa Corporal (IMC)

def calcular_imc():
  """Calcula y muestra el índice de masa corporal (IMC).

  Pide al usuario que ingrese su peso y estatura, calcula el IMC y lo muestra por pantalla.
  """
  peso = float(input("Ingrese su peso en kg: "))
  estatura = float(input("Ingrese su estatura en metros: "))

  imc = peso / (estatura ** 2)
  imc_redondeado = round(imc, 2)

  print(f"Tu índice de masa corporal es: {imc_redondeado}")

calcular_imc()

Explicación del código:

  1. Función calcular_imc:
    • Pide al usuario que ingrese su peso y estatura utilizando input y convierte las entradas a flotantes.
    • Calcula el IMC dividiendo el peso por la estatura al cuadrado.
    • Redondea el IMC a dos decimales con round.
    • Muestra un mensaje con el IMC redondeado usando f-strings.
  2. Llamada a la función:
    • Al final, se llama a la función calcular_imc para ejecutar el programa.

Al ejecutar el código:

  • Te pedirá que ingreses tu peso en kg y tu estatura en metros.
  • Calculará tu IMC.
  • Mostrará un mensaje como: "Tu índice de masa corporal es: 23.52".

Mejoras opcionales:

  • Validación de entrada: Puedes agregar código para verificar que el usuario ingrese valores numéricos válidos para el peso y la estatura.
  • Clasificación del IMC: Puedes agregar código para clasificar el IMC según los estándares de la OMS (bajo peso, normal, sobrepeso, obesidad) y mostrar un mensaje adicional con la clasificación.
  • Interfaz más amigable: Puedes usar librerías como tkinter o PyQt para crear una interfaz gráfica más atractiva para la calculadora.

Calculadora de pago de horas trabajadas segun el valor por hora en Python

 Tenemos el siguiente problema para resolver en Python:

Escribir un programa que pregunte al usuario por el número de horas trabajadas y el coste por hora. Después debe mostrar por pantalla la paga que le corresponde.

def calcular_paga(horas, valor_hora):
  """Calcula la paga del usuario.

  Args:
    horas: El número de horas trabajadas por el usuario.
    valor_hora: El valor por hora del trabajo del usuario.

  Returns:
    La paga que le corresponde al usuario.
  """
  paga = horas * valor_hora
  return paga

# Ejemplo de uso
horas_trabajadas = float(input("Ingrese el número de horas trabajadas: "))
valor_por_hora = float(input("Ingrese el valor por hora: "))
paga_total = calcular_paga(horas_trabajadas, valor_por_hora)
print("La paga total es:", paga_total)

 Este código define una función calcular_paga que toma el número de horas trabajadas y el valor por hora como argumentos y devuelve la paga que le corresponde al usuario.

Durante la ejecución del código, antes de llamar la función calcular_paga :

  1. Solicita al usuario que ingrese el número de horas trabajadas y el valor por hora utilizando la función input.
  2. Convierte las entradas del usuario a números flotantes utilizando la función float.
  3. Calcula la paga del usuario multiplicando las horas trabajadas por el valor por hora.
  4. Muestra la paga total al usuario utilizando la función print.

Al final del código, se llama a la función calcular_paga para ejecutar el programa.

miércoles, 1 de mayo de 2024

Calcular el valor de la hipotenusa teniendo un punto x,y en el plano cartesiano en Python

 

  • Este código asume que el usuario ingresa valores numéricos válidos para las longitudes de los catetos.
  • Se puede modificar el código para manejar errores de entrada, como cuando el usuario ingresa un valor no numérico.
  • También se puede agregar código para validar que las longitudes de los catetos sean positivas.
  •  

    import math
    
    def calcular_hipotenusa(x, y):
      """
      Calcula la longitud de la hipotenusa de un triángulo rectángulo utilizando el teorema de Pitágoras.
    
      Parámetros:
        x: La longitud del cateto x.
        y: La longitud del cateto y.
    
      Retorno:
        La longitud de la hipotenusa.
      """
      hipotenusa = math.sqrt(x**2 + y**2)
      return hipotenusa
    
    # Ejemplo de uso
    x = float(input("Ingrese la longitud del cateto x: "))
    y = float(input("Ingrese la longitud del cateto y: "))
    
    hipotenusa = calcular_hipotenusa(x, y)
    
    print("La longitud de la hipotenusa es:", hipotenusa)
    
    

    Explicación:

    1. Importamos la biblioteca math: Esta biblioteca contiene funciones matemáticas, incluyendo la función sqrt() para calcular la raíz cuadrada.
    2. Definimos la función calcular_hipotenusa:
      • Esta función toma dos parámetros: x y y, que representan las longitudes de los catetos del triángulo rectángulo.
      • La función calcula la longitud de la hipotenusa utilizando la fórmula del teorema de Pitágoras: hipotenusa = sqrt(x^2 + y^2).
      • La función retorna el valor de la hipotenusa.
    3. Ejemplo de uso:
      • Solicitamos al usuario que ingrese las longitudes de los catetos x e y.
      • Convertimos las entradas del usuario a números flotantes utilizando la función float().
      • Llamamos a la función calcular_hipotenusa para obtener la longitud de la hipotenusa.
      • Imprimimos el resultado utilizando la instrucción print().

    7 razones para no usar Laravel en tu proyecto de PHP

    En más de 40 años de experiencia como programador y director de proyectos de programación, he aprendido que cada requerimiento tiene mejores...