Saltar navegación

UT7 - Funciones, parámetros y ámbitos de las variables - Contenido educativo

Ajuste de pantalla

El ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:

Subido el 16 de marzo de 2026 por Fernando M.

8 visualizaciones

Descargar la transcripción

Ahora vamos a continuar con funciones, ¿vale? Su definición, parámetros y retorno. Bien, para definir una función, recuerdo en C que era obligatorio poner el tipo de elemento que devolvía, ¿vale? Y si había parámetros, que no tiene por qué haberlos siempre, pero si los había, era obligatorio definir el tipo de parámetros que recibían, ¿vale? Eso era obligatorio. 00:00:01
Y también era importante hacer una declaración antes de definir la propia función, ¿vale? Antes de definirla, ¿ok? En Python no es necesario ninguna de estas cosas, ¿vale? Para nosotros crear una función simplemente vamos a poner def, ¿vale? Pero eso no es el tipo, ¿vale? Simplemente es la definición de la función. 00:00:26
Y dentro de los parámetros vamos a poner las variables que queremos utilizar, pero no vamos a poner de qué tipo son, ¿vale? 00:00:48
Porque ya sabéis que el tipado en Python es dinámico, ¿vale? 00:00:56
Bien, sí que es importante, como no vamos a poner qué devuelve y qué recibe, sí que es importante utilizar estos comentarios, ¿vale? 00:01:02
Que ya veis que aparecen entre tres comillas dobles, ¿vale? 00:01:09
En el que expliquemos lo que hace la función y los argumentos o los parámetros que recibe, ¿vale? 00:01:12
Para luego, cuando leamos, sepamos qué está haciendo, ¿vale? 00:01:18
Y también, por supuesto, lo que devuelve, ¿ok? 00:01:21
Bueno, pues aquí veis que esta función recibe una potencia recibida, recibe una potencia de ruido, ¿vale? 00:01:24
Y en dBm, ¿vale? 00:01:29
Y lo que hace es que calcula la SNR, ¿vale? 00:01:32
Que se calcula como la diferencia entre las dos. 00:01:35
Y eso es lo que devuelve, ¿vale? 00:01:38
Y lo va a devolver siempre y cuando la potencia del ruido sea diferente de 0, ¿vale? 00:01:39
Si es diferente de 0, pues nos va a devolver que no hay SNR, ¿vale? 00:01:43
Bien, veis que la definición es muy sencilla, mucho más rápida que definir en Python, en C, perdón, y el uso, sí que esto es destacable, ¿vale? El uso se hace exactamente igual. Fijaros, ¿vale? Solo que aquí no hay que definir el tipo de dato de SNR, pero se usa exactamente igual. 00:01:48
Entonces, podemos tener funciones que dentro de sí mismas utilicen estructuras, ¿vale? Esto ya lo hemos visto, sobra, no voy a perder mucho el tiempo en esto, ¿vale? Es decir, aquí tenemos una estructura condicional, aquí tenemos una estructura de un bucle for, ¿vale? Bueno, y podemos trabajar con ellas con listas, con lo que sea, ¿vale? 00:02:07
Y el uso, pues ya sabéis, aquí por ejemplo, fijaros, estoy definiendo una lista que dentro tiene un diccionario o tres diccionarios y lo que hace es que llama a esa función analizarRed. 00:02:29
Y con lo que me devuelve, luego hago un bucle que recorro para imprimir los valores. 00:02:44
Y aquí veis ese ejemplo, la salida de ese uso de las funciones. 00:02:50
No me voy a entretener, prefiero que vosotros lo busquéis, analicéis el código, porque no puedo estar analizando todos los códigos que voy presentando. 00:02:54
Ejemplos, perdón. 00:03:02
En cuanto al uso de parámetros en Python, sí que aquí me quiero parar, porque hay diferencias, sutiles diferencias respecto de C. 00:03:05
Y el uso de valores por defecto o valores opcionales dentro de una función. 00:03:15
Fijaros, yo defino aquí una función que he llamado estadísticas y esa función estadística pues recibe como parámetro una variable mediciones que va a ser una lista, ¿vale? 00:03:24
Es decir, lo que va a hacer es analizar una lista y luego va a tener dos parámetros opcionales, umbral que por defecto vale menos 75 y verbose que por defecto vale false, ¿vale? 00:03:34
Entonces, si veis, esto lo que va a hacer es una función que simplemente va a coger las mediciones que estén por encima de un umbral, ¿vale? Y si hemos activado el verbose, si el verbose es true, va a imprimir algunos parámetros de información, en este caso el número de mediciones totales y el número de elementos válidos totales y finalmente nos va a devolver una estadística que es la media, ¿vale? Simplemente eso. 00:03:46
Pero fijaros que aquí está lo importante. Es su uso de valores por defecto. Yo a la función estadística voy a poder llamarla de tres formas. La voy a poder llamarla solo con los datos, con los datos y el umbral, con los datos y un verbose diferente. Es decir, estos son por si yo quiero cambiar los valores por defecto. 00:04:13
¿Vale? O puedo hacer una cuarta opción que aquí no aparece y es que sería utilizar datos y poner un umbral diferente y un verbose diferente. ¿Vale? 00:04:33
¿Esto qué potencia nos da o qué versatilidad nos da? Pues que haya parámetros que no sea obligatorio ponerlo. En este caso, la función estadística, obligatorio, obligatorio, es simplemente la lista de valores de RSSI. 00:04:42
El resto es completamente opcional, ¿vale? Luego vamos a encontrar que es importante que los primeros elementos que aparezcan en la función sean los obligatorios, ¿vale? Los elementos obligatorios. 00:04:55
Y luego los opcionales, ¿vale? Si lo hacemos al revés nos va a dar un error, ¿vale? Y es importante que sepáis que nunca vamos a poder pasar una lista como valor por defecto, ¿vale? Es decir, como valor que aparezca corchete, abre corchete, cierra corchete. 00:05:10
En el caso de que queramos utilizar una lista, ¿vale? Como valor de parámetro, lo haremos pasando non, ¿vale? Ese será el valor por defecto que pasemos, ¿vale? Y ya está, el orden de los parámetros opcionales, como aparece aquí, no importa, ¿vale? Porque como nosotros vamos a poner el nombre de la variable, lo vamos a poner exactamente igual, ¿vale? No podemos cambiar, tenemos que poner el parámetro exactamente igual, ¿vale? Pues pondremos verbos igual a true, ¿vale? Y umbral, pues el valor que queramos. 00:05:26
Y luego, otra potencia más que nos permite Python es devolver varios valores, no devolver uno solo. 00:05:55
Recordad que en C poníamos return y solo poníamos el elemento que queríamos devolver, 00:06:04
ahora poniendo coma podemos devolver varios. 00:06:09
Y esa devolución de varios al final lo que se convierte en una tupla, 00:06:11
en una tupla que va a devolver varios elementos. 00:06:15
Y cuando nosotros hagamos uso de esa función, fijaros, aquí hago uso de la función, 00:06:18
cada uno de los valores de la tupla 00:06:23
se van a asignar en un sitio u otro 00:06:25
pues entonces el 311,0 se asignará en MED 00:06:27
el 510 se asignará en MX 00:06:32
el 95 en MN 00:06:34
el 1,64 en PK 00:06:35
y así se irán asignando 00:06:37
y si yo hay valores que no me interesan 00:06:39
guardarlos porque por lo que sea 00:06:42
no vaya a hacer uso de ellos en ese momento 00:06:44
puedo poner una barra baja 00:06:46
y eso sería como ignorar 00:06:48
la devolución de esos valores 00:06:51
No habría ningún problema. Entonces, así no creo unas variables que me puedan consumir en un momento dado memoria. 00:06:52
Y, por último, esta parte de funciones, el ámbito de las variables. 00:07:02
Ámbito, ya recordáis, lo que habíamos visto en C eran variables locales y variables globales. 00:07:07
Bueno, pues aquí seguimos teniendo el mismo concepto. El mismo concepto de variable global, que estaría definido en la parte de inicio del código. 00:07:14
una variable local que solo va a ser accesible dentro de la función analizar, ¿vale? 00:07:22
Pero yo voy a poder acceder a un blar como es el global, la voy a poder acceder tanto aquí, ¿vale? 00:07:28
Y si yo quiero escribir en esa variable pondré antes global. 00:07:34
Y una vez que haya escrito global podré sobreescribir su valor, ¿vale? 00:07:38
Y luego también está la posibilidad de modificar una variable local dentro de otro método. ¿Cómo? Pues para eso tendríamos que definir un método, en este caso interna, dentro de externa. 00:07:42
Y así tendríamos lo que se llama un enclosing, ¿vale? Y es que podríamos acceder a una variable que sea local. Y si nosotros quisiéramos modificar esa variable, pues simplemente antes de eso pondríamos non-local, ¿vale? Para que deje de ser local a la función externa y también podemos acceder desde dentro de ella, ¿vale? 00:08:00
Y eso es todo. Aquí os he dejado cosas que tener cuidado de mal diseño para trabajar con variables locales y variables globales, ¿vale? Por lo general tenemos que intentar evitar trabajar con variables globales porque nos pueden dar problemas o puede ser que sobrescribamos elementos que no nos interese sobrescribir, ¿vale? 00:08:19
Es mejor en un momento dado trabajar con variables locales en funciones y devolver esos valores, ¿vale? 00:08:42
Ya está. 00:08:48
Valoración:
  • 1
  • 2
  • 3
  • 4
  • 5
Eres el primero. Inicia sesión para valorar el vídeo.
Materias:
Programación
Niveles educativos:
▼ Mostrar / ocultar niveles
  • Formación Profesional
    • Ciclo formativo de grado superior
      • Primer Curso
Autor/es:
Fernando Martínez Martí
Subido por:
Fernando M.
Licencia:
Reconocimiento - No comercial - Compartir igual
Visualizaciones:
8
Fecha:
16 de marzo de 2026 - 13:14
Visibilidad:
Clave
Centro:
IES PACIFICO
Duración:
08′ 52″
Relación de aspecto:
1.78:1
Resolución:
1280x720 píxeles
Tamaño:
23.07 MBytes

Del mismo autor…

Ver más del mismo autor

Comentarios

Para publicar comentarios debes entrar con tu nombre de usuario de EducaMadrid.

Comentarios

Este vídeo todavía no tiene comentarios. Sé el primero en comentar.



EducaMadrid, Plataforma Educativa de la Comunidad de Madrid

Plataforma Educativa EducaMadrid