Tutorial "Pythonizate: Fundamentos de Programación” – Funciones Parte II

in #spanish6 years ago (edited)

Pythonizate "Aprendiendo a programar"

Este tutorial está siendo elaborado para enseñarte a programar en Python desde cero hasta un nivel intermedio – avanzado. Al momento de finalizarlo serás capaz de crear software sencillo aplicando los conceptos aprendidos e incluso crear su propia interfaz gráfica.


Índice

Contenido
Post
Introducción
Tutorial "Pythonizate: Aprendiendo a Programar" - Introducción
Instalación de entorno de desarrollo y primeros programas
"Pythonizate: Aprendiendo a Programar" - Instalación de entorno de desarrollo y primeros programas
Números, Operadores y Tipos de Datos
Tutorial "Pythonizate: Fundamentos de Programación” – Números, Operadores y Tipos de Datos.
Listas, Tuplas, Diccionario y Entrada por Teclado
Tutorial "Pythonizate: Fundamentos de Programación” - Listas, Tuplas, Diccionario y Entrada por Teclado
Estructura de Control Condicional
Tutorial "Pythonizate: Fundamentos de Programación” – Estructuras de Control Condicionales
Estructura de Control Iterativo
Tutorial "Pythonizate: Fundamentos de Programación” – Estructuras de Control Iterativas
Control de Bucles
Tutorial "Pythonizate: Fundamentos de Programación” – Control de Bucles
Funciones Parte I
Tutorial "Pythonizate: Fundamentos de Programación” – Funciones Parte I

¡Hola mis queridos entusiastas de la programación! En el post del día de hoy vamos a seguir aprendiendo sobre las funciones, terminaremos de hablar sobre los tipos de argumentos, el alcance de las variables y las funciones anónimas.

Para llamar a una función se pueden usar distintos tipos de argumentos, como:

  • Argumentos requeridos
  • Argumentos de palabra clave
  • Argumentos predeterminados
  • Argumentos de longitud variable.

En el post anterior definimos el uso de los argumentos de longitud variables, en este post explicaremos el uso de los otros tres tipos de argumentos.

Argumentos requeridos

Este tipo de argumentos también los explicamos anteriormente, pero nunca le dimos una definición concreta. Los argumentos requeridos son los argumentos pasados a una función en el orden posicional correcto. Aquí, el número de argumentos en la llamada a la función debe coincidir exactamente con la definición de la función.

Por ejemplo:
Input

def imprime(hola ):
   print("Imprime la cadena str",hola)
   return;

imprime()

Output

Traceback (most recent call last):
  File "prueba.py", line 6, in <module>
    imprime()
TypeError: imprime() missing 1 required positional argument: 'hola'

El programa nos lanza un error diciendo "El argumento posicional hola es requerido en imprime()"

Le asignamos el argumento y volvemos a correr el programa.

Input

def imprime(hola):
   print("Imprime la cadena hola: ",hola)
   
   return;
hola="Hola steemians"
imprime(hola)

Output

Imprime la cadena hola:  Hola steemians

Descargue este ejemplo

Nos imprime correctamente el argumento deseado.

Argumentos de palabra clave

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

Por ejemplo:

Input

def imprime(hola):
   print("Imprime la cadena hola: ",hola)
   return;

imprime(hola = "Probando a steemit")

Output

Imprime la cadena hola:  Probando a steemit

Descargue este ejemplo

Esto permite saltar 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.

Argumentos predeterminados

Los argumentos predeterminados son los que asumen un valor predeterminado si no se proporciona un valor en la llamada a la función para ese argumento.

Por ejemplo:

Input

def imprime( usuario, reputacion = 35 ):
   print ("Usuario: ", usuario)
   print ("Reputacion ", reputacion)
   return;

imprime( reputacion=49, usuario="vidayaventura" )
imprime( usuario="vidayaventura" )

Output

Usuario:  vidayaventura
Reputacion  49
Usuario:  vidayaventura
Reputacion  35

Descargue este ejemplo

El siguiente ejemplo nos da una imagen más clara sobre el uso de los argumentos de palabra clave y los argumentos predeterminados.


Alcance de las variables

Existe la posibilidad de que no se pueda tener acceso a todas las variables de un programa en todas las ubicaciones de ese programa. Esto depende de dónde hayamos declarado la variable.

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

  • Variables Globales
  • Variables Locales

Las variables que definimos dentro del bloque de código de una función tienen un alcance local, es decir, solo se puede acceder a las variables locales dentro de la función en la que se declaran. Las variables globales se definen fuera de las funciones, es decir, se pueden acceder a través del cuerpo del programa por todas las funciones.

Por ejemplo:
Input

total = 7; #Esta es una variables Global

def suma( arg1, arg2 ):
   
   total = arg1 + arg2; #arg1 y arg2 son variables locales
   print ("Total dentro de la funcion local: ", total)
   return total;

suma( 10, 20 );
print ("Total fuera de la funcion local : ", total )

Output

Total dentro de la funcion local:  30
Total fuera de la funcion local :  7

Descargue este ejemplo

En este ejemplo la variable global es total, es decir, tenemos acceso a ella dentro y fuera de la función suma, mientras que arg1 y arg2 son variables de la función suma, los invito a llamar a las variables locales fuera de la función suma para que comprendan mejor su uso.


Las funciones anónimas

Estas funciones se llaman anónimas porque no se declaran de manera estándar utilizando la palabra clave def . Para una función anónima se usa la palabra clave lambda para crear pequeñas funciones anónimas.

  • La función Lambda puede tomar cualquier cantidad de argumentos, pero devuelve solo un valor en forma de expresión. No puede contener comandos o expresiones múltiples.

  • Las funciones anónimas no pueden ser una llamada directa a imprimir porque Lambda requiere una expresión.

  • Las funciones de Lambda tienen su propio espacio de nombres local y no pueden acceder a variables que no sean las de su lista de parámetros ni las del espacio de nombres global.

La estructura de una función Lambda es la siguiente:

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

Veamos un ejemplo para una mejor comprensión:

Input

suma= lambda arg1, arg2, arg3: arg1 + arg2 * arg3; # Variables Locales:Expresion

print ("La suma total es : ", suma(10, 10, 30))
print ("La suma total es : ", suma( 50, 20, 100))

Output

La suma total es :  310
La suma total es :  2050

Descargue este ejemplo

En la función lambda primero declaramos las variables locales y luego de los dos puntos la expresión, no es tan complicado, sin embargo, debemos tener en cuenta que son funciones mínimas, de una línea.


!Esto fue todo por hoy, nos vemos en el próximo post, donde realizaremos y explicaremos algunos programas prácticos!

Ya estamos a punto de terminar la parte básica del Tutorial Pythonizate, así que en el próximo post dejare un ejercicio desafió que tendrá recompensa de 1 SBD!
Si tienen alguna duda o consulta no duden en dejarla en los comentarios. ¡Éxitos!

"El ser humano es inteligente por naturaleza, la tecnología es solo un complemento"

Gracias por permitirme robar unos pocos minutos de tu vida. Me despido por los momentos mis lectores, que tengan un excelente día, tarde o noche.
╭════════════╮
Sígueme en mi Blog
╰════════════╯

GIF

Sort:  

¡Su post ha sido votado en nombre del Equipo de Curación dropahead!

Gracias por seguir las reglas

ADVERTENCIA: El Equipo de Curación dropahead no necesariamente comparte las opiniones expresadas en este artículo. Sin embargo, creemos que el esfuerzo y/o contribución del autor merece una mejor recompensa y visibilidad.

Ayudenos a darle mayores recompensas:

¡Vote este comentario!
¡Vote y dele Resteem a los últimos Reportes de Curación de dropahead!
Únase al Trail de Curación dropahead
¡Para maximizar sus recompensas de curación!
Vote por dropahead Witness con SteemConnect
Active el Voto Proxy de dropahead witness
con SteemConnect
Done STEEM POWER a @dropahead
12.5SP, 25SP, 50SP, 100SP, 250SP, 500SP, 1000SP
Haciendo lo anterior tendremos más Steem Power (SP) ¡Para poder brindarle mayores recompensas la próxima vez!

Noticias de dropahead: Como retribuir al Proyecto dropahead en 15 segundos o menos

Control de calidad del Equipo de Curación dropahead

De acuerdo a nuestros estándares de calidad(1), su publicación ha alcanzado una calificación de 87%.

Bien dijo Gabriel García Marquez: "Se aprende a escribir escribiendo" ¡Siga esforzandose, pronto alcanzará la excelencia!


(1) Estándares de calidad de dropahead Witness:

- Relación gráfica al texto (Elección de imágenes de acuerdo al texto)
- Orden y Coherencia
- Estilo y autenticidad (Toque personal, lógica, complejidad, lo que hace que sea interesante y fácil de entender para el lector)
- Fuente de las imágenes y su licencia de uso

Read my profile if want me to resteem your post to over 72,500 followers. @a-a-a

Excelente artículo de programación amigo, aprendiendo y refrescando, gracias, contenido de calidad

¡Hola @franzo! Gracias por tomarte el tiempo de leer el post del tutorial, te invito a que estés atento al siguiente post donde estaré explicando varios ejercicios y dejare un ejercicios desafió con una recompensa de 1 SBD.

Chamo... tus post son demasiado brutales. Voy a recargar un pelo de VP para pasar luego por acá y darle con todo jajaja. SIgue así, nos enseñas muchísimo.

¡Gracias @miguelvargas! Me alegra que mis post sean de tu agrado, te invito a que estés pendiente de mi siguiente post donde dejare un ejercicio desafió con una recompensa de 1 SBD

Congratulations! This post has been upvoted from the communal account, @minnowsupport, by andrealbm from the Minnow Support Project. It's a witness project run by aggroed, ausbitbank, teamsteem, theprophet0, someguy123, neoxian, followbtcnews, and netuoso. The goal is to help Steemit grow by supporting Minnows. Please find us at the Peace, Abundance, and Liberty Network (PALnet) Discord Channel. It's a completely public and open space to all members of the Steemit community who voluntarily choose to be there.

If you would like to delegate to the Minnow Support Project you can do so by clicking on the following links: 50SP, 100SP, 250SP, 500SP, 1000SP, 5000SP.
Be sure to leave at least 50SP undelegated on your account.