Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> python

Python - Funciones

Página anteriorPágina siguiente

Una función es un bloque de código organizado y reutilizable que se utiliza para realizar una única acción relacionada. Las funciones brindan una mejor modularidad para su aplicación y un alto grado de reutilización de código.

Como ya sabe, Python le ofrece muchas funciones integradas como imprimir(), etc., pero también puede crear sus propias funciones. Estas funciones se llaman funciones definidas por el usuario.

Definición de una función

Puede definir funciones para proporcionar la funcionalidad requerida. Aquí hay reglas simples para definir una función en Python.

Sintaxis

def functionname( parameters ):
   "function_docstring"
   function_suite
   return [expression]

De forma predeterminada, los parámetros tienen un comportamiento posicional y debe informarlos en el mismo orden en que fueron definidos.

Ejemplo

La siguiente función toma una cadena como parámetro de entrada y la imprime en la pantalla estándar.

def printme( str ):
   "This prints a passed string into this function"
   print str
   return

Llamar a una Función

Definir una función solo le da un nombre, especifica los parámetros que se incluirán en la función y estructura los bloques de código.

Una vez finalizada la estructura básica de una función, puede ejecutarla llamándola desde otra función o directamente desde el indicador de Python. El siguiente es el ejemplo para llamar a la función printme() −

Demostración en vivo
#!/usr/bin/python

# Function definition is here
def printme( str ):
   "This prints a passed string into this function"
   print str
   return;

# Now you can call printme function
printme("I'm first call to user defined function!")
printme("Again second call to the same function")

Cuando se ejecuta el código anterior, produce el siguiente resultado −

I'm first call to user defined function!
Again second call to the same function

Pasar por referencia vs valor

Todos los parámetros (argumentos) en el lenguaje Python se pasan por referencia. Significa que si cambia a qué se refiere un parámetro dentro de una función, el cambio también se refleja en la función de llamada. Por ejemplo −

Demostración en vivo
#!/usr/bin/python

# Function definition is here
def changeme( mylist ):
   "This changes a passed list into this function"
   mylist.append([1,2,3,4]);
   print "Values inside the function: ", mylist
   return

# Now you can call changeme function
mylist = [10,20,30];
changeme( mylist );
print "Values outside the function: ", mylist

Aquí, mantenemos la referencia del objeto pasado y agregamos valores en el mismo objeto. Entonces, esto produciría el siguiente resultado −

Values inside the function:  [10, 20, 30, [1, 2, 3, 4]]
Values outside the function:  [10, 20, 30, [1, 2, 3, 4]]

Hay un ejemplo más donde el argumento se pasa por referencia y la referencia se sobrescribe dentro de la función llamada.

Demostración en vivo
#!/usr/bin/python

# Function definition is here
def changeme( mylist ):
   "This changes a passed list into this function"
   mylist = [1,2,3,4]; # This would assig new reference in mylist
   print "Values inside the function: ", mylist
   return

# Now you can call changeme function
mylist = [10,20,30];
changeme( mylist );
print "Values outside the function: ", mylist

El parámetro mylist es local a la función changeme. Cambiar mylist dentro de la función no afecta a mylist . La función no logra nada y finalmente esto produciría el siguiente resultado −

Values inside the function:  [1, 2, 3, 4]
Values outside the function:  [10, 20, 30]

Argumentos de función

Puede llamar a una función utilizando los siguientes tipos de argumentos formales −

Argumentos requeridos

Los argumentos requeridos son los argumentos pasados ​​a una función en el orden posicional correcto. Aquí, la cantidad de argumentos en la llamada a la función debe coincidir exactamente con la definición de la función.

Para llamar a la función printme() , definitivamente necesita pasar un argumento, de lo contrario, da un error de sintaxis de la siguiente manera −

Demostración en vivo
#!/usr/bin/python

# Function definition is here
def printme( str ):
   "This prints a passed string into this function"
   print str
   return;

# Now you can call printme function
printme()

Cuando se ejecuta el código anterior, produce el siguiente resultado −

Traceback (most recent call last):
   File "test.py", line 11, in <module>
      printme();
TypeError: printme() takes exactly 1 argument (0 given)

Argumentos de palabras clave

Los argumentos de palabras clave están relacionados con las llamadas a funciones. Cuando utiliza argumentos de palabras clave en una llamada de función, la persona que llama identifica los argumentos por el nombre del parámetro.

Esto le permite omitir argumentos o colocarlos fuera de orden porque el intérprete de Python puede usar las palabras clave proporcionadas para hacer coincidir los valores con los parámetros. También puede realizar llamadas de palabras clave a printme() funcionan de las siguientes maneras −

Demostración en vivo
#!/usr/bin/python

# Function definition is here
def printme( str ):
   "This prints a passed string into this function"
   print str
   return;

# Now you can call printme function
printme( str = "My string")

Cuando se ejecuta el código anterior, produce el siguiente resultado −

My string

El siguiente ejemplo da una imagen más clara. Tenga en cuenta que el orden de los parámetros no importa.

Demostración en vivo
#!/usr/bin/python

# Function definition is here
def printinfo( name, age ):
   "This prints a passed info into this function"
   print "Name: ", name
   print "Age ", age
   return;

# Now you can call printinfo function
printinfo( age=50, name="miki" )

Cuando se ejecuta el código anterior, produce el siguiente resultado −

Name:  miki
Age  50

Argumentos predeterminados

Un argumento predeterminado es un argumento que asume un valor predeterminado si no se proporciona un valor en la llamada de función para ese argumento. El siguiente ejemplo da una idea de los argumentos predeterminados, imprime la edad predeterminada si no se pasa −

Demostración en vivo
#!/usr/bin/python

# Function definition is here
def printinfo( name, age = 35 ):
   "This prints a passed info into this function"
   print "Name: ", name
   print "Age ", age
   return;

# Now you can call printinfo function
printinfo( age=50, name="miki" )
printinfo( name="miki" )

Cuando se ejecuta el código anterior, produce el siguiente resultado −

Name:  miki
Age  50
Name:  miki
Age  35

Argumentos de longitud variable

Es posible que deba procesar una función para obtener más argumentos de los que especificó al definir la función. Estos argumentos se denominan longitud variable argumentos y no se nombran en la definición de la función, a diferencia de los argumentos obligatorios y predeterminados.

La sintaxis para una función con argumentos variables que no son palabras clave es esta −

def functionname([formal_args,] *var_args_tuple ):
   "function_docstring"
   function_suite
   return [expression]

Se coloca un asterisco (*) antes del nombre de la variable que contiene los valores de todos los argumentos de variables que no son palabras clave. Esta tupla permanece vacía si no se especifican argumentos adicionales durante la llamada a la función. El siguiente es un ejemplo simple −

Demostración en vivo
#!/usr/bin/python

# Function definition is here
def printinfo( arg1, *vartuple ):
   "This prints a variable passed arguments"
   print "Output is: "
   print arg1
   for var in vartuple:
      print var
   return;

# Now you can call printinfo function
printinfo( 10 )
printinfo( 70, 60, 50 )

Cuando se ejecuta el código anterior, produce el siguiente resultado −

Output is:
10
Output is:
70
60
50

El Anónimo Funciones

Estas funciones se denominan anónimas porque no se declaran de la manera estándar mediante el def palabra clave. Puedes usar la lambda palabra clave para crear pequeñas funciones anónimas.

Sintaxis

La sintaxis de lambda funciones contiene solo una sola declaración, que es la siguiente −

lambda [arg1 [,arg2,.....argn]]:expression

El siguiente es el ejemplo para mostrar cómo lambda forma de función funciona −

Demostración en vivo
#!/usr/bin/python

# Function definition is here
sum = lambda arg1, arg2: arg1 + arg2;

# Now you can call sum as a function
print "Value of total : ", sum( 10, 20 )
print "Value of total : ", sum( 20, 20 )

Cuando se ejecuta el código anterior, produce el siguiente resultado −

Value of total :  30
Value of total :  40

El regreso Declaración

La instrucción return [expresión] sale de una función y, opcionalmente, devuelve una expresión a la persona que llama. Una declaración de devolución sin argumentos es lo mismo que devolver Ninguno.

Todos los ejemplos anteriores no devuelven ningún valor. Puede devolver un valor de una función de la siguiente manera −

Demostración en vivo
#!/usr/bin/python

# Function definition is here
def sum( arg1, arg2 ):
   # Add both the parameters and return them."
   total = arg1 + arg2
   print "Inside the function : ", total
   return total;

# Now you can call sum function
total = sum( 10, 20 );
print "Outside the function : ", total 

Cuando se ejecuta el código anterior, produce el siguiente resultado −

Inside the function :  30
Outside the function :  30

Alcance de las variables

Es posible que no se pueda acceder a todas las variables de un programa en todas las ubicaciones de ese programa. Esto depende de dónde haya declarado una variable.

El alcance de una variable determina la parte del programa donde puede acceder a un identificador particular. Hay dos ámbitos básicos de variables en Python −

Variables globales vs locales

Las variables que se definen dentro del cuerpo de una función tienen un alcance local y las definidas fuera tienen un alcance global.

Esto significa que solo se puede acceder a las variables locales dentro de la función en la que se declaran, mientras que todas las funciones pueden acceder a las variables globales en todo el cuerpo del programa. Cuando llama a una función, las variables declaradas dentro de ella se incluyen en el alcance. El siguiente es un ejemplo simple −

Demostración en vivo
#!/usr/bin/python

total = 0; # This is global variable.
# Function definition is here
def sum( arg1, arg2 ):
   # Add both the parameters and return them."
   total = arg1 + arg2; # Here total is local variable.
   print "Inside the function local total : ", total
   return total;

# Now you can call sum function
sum( 10, 20 );
print "Outside the function global total : ", total 

Cuando se ejecuta el código anterior, produce el siguiente resultado −

Inside the function local total :  30
Outside the function global total :  0

python

  1. Python Anónimo/Función Lambda
  2. Generadores de Python
  3. Cierres Python
  4. Decoradores de pitón
  5. 10 funciones populares en Stratasys Insight
  6. Funciones de C++ con ejemplos de programas
  7. Python String strip() Función con EJEMPLO
  8. Funciones Python Lambda con EJEMPLOS
  9. Función Python abs():Ejemplos de valores absolutos
  10. Función Python round() con EJEMPLOS
  11. Función Python map() con EJEMPLOS