Creación de una función en Python

Ejemplo de como definir una punción en python calculando el factor de compresibilidad Z del gas

Rigoberto Chandomi https://www.linkedin.com/in/rigobertochandomi/
2024-02-03

Una función se puede definir como un bloque de código al cual se le coloca un nombre para poder llamarla desde cualquier parte del programa, su principal característica es que la función debe de devolver un valor.
Las funciones le permiten automatizar tareas comunes, evite copiar y pegar. Para crear una nueva función, debe elegir un nombre para la función, enumerar las entradas o argumentos y colocar el código que ha desarrollado en el cuerpo de la función.

Para crear una función en Python usamos el comando “def” el cual permite definir una palabra reservada.

Plantilla de función básica: nombre y cuerpo

def mifuncion():
  
    #acciones de la función

Generalmente para que una función ejecute una instrucción necesitan información, esta se pasa usando parámetros, los cuales se definen dentro de los parámetros después del nombre de la función

def mifuncion(Parametro_1, Parametro_2):
    #acciones de la función

Las funciones pueden devolver valores al proceso principal con la instrucción “return”. En el momento de devolver un valor, la ejecución de la función finalizará

def mifuncion(Parametro_1, Parametro_2):
    #acciones de la función
    
  Resultado = Parametro_1 + Parametro_2

  return Resultado

Ejemplo: función para estimar el factor de compresibilidad Z del gas usando correlación de Papay

\[ z = 1-\frac{3.53p_{pr}}{10^{0.9813T_{pr}}}+\frac{0.274p_{pr}^2}{10^{0.8157T_{pr}}}\]

En este caso se definen dos argumentos, presión pseudoreducida y temperatura pseudoreducida. La función se llama z_papay y en su cuerpo está la ecuación. Al final definimos el valor que se devolverá como resultado almacenado en la variable “Z”.

def z_papay(Ppr, Tpr):

  z = 1-(3.53*Ppr)/(10**(0.9813*Tpr))+(0.274*Ppr**2)/(10**(0.8157*Tpr))

  return(z)

Una vez que la función esté en el entorno, podemos usarla para calcular el valor Z.Usando valores de \(Ppr = 1\) y \(Tpr = 1\)

z = z_papay(1,1)
print(z)
0.6733526557640547

Para calcular el factor Z para verios valores de \(Ppr\) y \(Tpr\) usamos una expresión generadora. Este tipo de expresiones generan una serie de valores, para lo cual internamente se usa un bucle for, y los valores que generan se pueden calcular a partir de una expresión arbitraria. La sintaxis general de la expresión generadora es:

“expresion for elemento in iterable”

Generamos una lista con valores de \(Ppr\) de 0 a 8, y dos valores de \(Tpr\)


Ppr = list(range(0, 8, 1))
Tpr = 1.6
Tpr2 = 1.3

zcal = [z_papay(element,Tpr) for element in Ppr]
zcal2 = [z_papay(element,Tpr2) for element in Ppr]

print(zcal)
[1.0, 0.9185779062578696, 0.8642989820007001, 0.8371632272284913, 0.8371706419412435, 0.8643212261389566, 0.9186149798216303, 1.0000519029892652]
print(zcal2)
[1.0, 0.8367371799365374, 0.7211581270150493, 0.6532628412355361, 0.6330513225979975, 0.6605235711024335, 0.7356795867488441, 0.8585193695372297]

Los resultados se alamcenan en dos listas \(zcal\) y \(zcal2\), las cuales junto con la lista de los valores \(Ppr\) podemos graficar para visualizar los resultados. Para ello importamos la libreria “matplotlib”


import matplotlib.pyplot as plt

plt.plot(Ppr,zcal, color = "red", linewidth = 4);
plt.plot(Ppr,zcal2, color = "blue", linewidth = 4);
plt.xlabel('Presión pseudoreducida');
plt.ylabel('Factor Z');
plt.show();