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

Author
Published

February 3, 2024

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.

Visita el canal @rigopetrodata

Tutoriales de R, Python y Excel para ingeniería petrolera

Ver canal

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

Ver código
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

Ver código
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á

Ver código
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”.

Ver código
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\)

Ver código
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\)

Ver código
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]
Ver código
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”

Ver código
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();

🛒
Propiedades De Los Fluidos Del Yacimiento

Disponible en Mercado Libre

Ver oferta →