



Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Los mejores documentos en venta realizados por estudiantes que han terminado sus estudios
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Descubre las mejores universidades de tu país según los usuarios de Docsity
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Una práctica de la materia de introducción a la programación, en la que se presenta la introducción a las funciones en python. Se explica cómo crear una función, cómo pasar argumentos a una función y cómo devolver un valor desde una función. Se incluyen ejemplos de cómo utilizar funciones en python.
Tipo: Diapositivas
1 / 7
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!
Versión del 2 de agosto de 2021
Una función es un conjunto encapsulado de sentencias que se agrupan bajo un nombre deter- minado. Una función permite usar una misma sección de código repetidas veces sólo invocando su nombre. Sin embargo, las funciones tienen un propósito aún más importante. En el desarrollo de un gran proyecto de software las funciones permiten a los programadores dividir el código en pequeñas unidades para poder trabajar independientemente. Crear una nueva función brinda una oportunidad de dar un nombre a un grupo de sentencias. Las funciones pueden simplicar un programa al esconder un cómputo complejo detrás de un comando simple, y usando una frase en castellano en lugar de código complicado. Crear una nueva función puede hacer un programa más corto al eliminar código repetitivo. Podemos inventar (casi) cualquier nombre que queramos para nuestra función, al igual que lo hacemos con las variables. La lista de parámetros especica que información hay que proveer, si es que la hay, para poder usar (o llamar) la nueva función. Las escribimos de esta forma: d e f NOMBRE( LISTA DE PARAMETROS ) : SENTENCIAS
Se puede incluir cualquier número de sentencias dentro de la función, pero todas deben escribirse con sangría a partir del margen izquierdo. Al igual que un for o un while. Las primeras dos funciones que vamos a escribir no tienen parámetros, por lo que la sintaxis se ve así:
d e f mostrarGuion ( ) : p r i n t ( "-" , end="" ) Algunas de las funciones preincorporadas que hemos usado tienen parámetros, que son valores que se le proveen para que puedan hacer su trabajo. Por ejemplo, si queremos encontrar el seno de un número, tenemos que indicar de qué número. Por ello, sin toma un valor como parámetro. Para imprimir una cadena, hay que proveer la cadena, y es por eso que print toma una cadena como parámetro. Algunas funciones toman más de un parámetro, como math.pow, la cuál toma dos números, la base y el exponente, y devuelve el resultado de elevar la base a la potencia indicada por el exponente. Cuando denamos nuestras propias funciones, la lista de parámetros indica cuántos paráme- tros utiliza. Por ejemplo:
d e f imprimirDosVeces ( unaCadena ) : p r i n t ( unaCadena ) p r i n t ( unaCadena )
Esta función toma un sólo parámetro, llamado unaCadena. Cualquiera sea ese parámetro (y en este punto no tenemos idea cuál es), es impreso en pantalla dos veces. Para llamar esta función, tenemos que proveer una cadena. Por ejemplo, podríamos tener un programa como este:
imprimirDosVeces ( "No me hagas decirlo dos veces !" )
La cadena que proporcionamos se denomina argumento, y decimos que el argumento es pasado a la función. Alternativamente, si tuviéramos una cadena almacenada en una variable, podríamos usarla como un argumento en vez de lo anterior:
argumento = " Nunca digas nunca ." imprimirDosVeces ( argumento )
El nombre de la variable que pasamos como argumento no tiene nada que ver con el nombre del parámetro.
Pueden ser el mismo o pueden ser diferentes, pero es importante darse cuenta que no son la misma cosa, simplemente sucede que tienen el mismo valor. Una variable local a en una función no existe en las otras funciones del programa, y no está relacionada con las variables del mismo nombre declaradas en otras funciones. Las variables locales son creadas cuando se invoca la función y desaparecen cuando la función termina. La funciones están aisladas del resto del programa: ninguna variable local sobrevive cuando la función termina. Debido a este hecho se dice que las funciones son segmentos aislados y encapsulados de código. La forma mas directa para obtener valores de una función es usar la instrucción return. El valor que la función devolverá se especica con la instrucción: return expresion, donde expresion puede ser cualquier expresión válida en Python, por ejemplo, y − (x + 7)/ 3 o x == 2 ∗ y. La expresión también puede ser simplemente una variable o un valor constante. La instrucción return se puede escribir en cualquier parte dentro de la función, no solamente al nal de la misma. Sin embargo, esta instrucción siempre indica la terminación de la función y regresa el control al proceso invocante. Una función devuelve un valor al ser llamada, como si el nombre de la función fuera una variable que contiene un valor. Una función en computación se considera pura si siempre que se la llame con parámetros adecuados retorna algún valor y nunca tiene efectos colaterales (como imprimir cosas en la pantalla). En Introducción a la Programación nos interesa crear principalmente funciones puras. En computación (y nosotros también de ahora en adelante) diremos llamar una función cada vez que usamos una función. En Python, si queremos denir nuestra propia función, lo hacemos de esta forma: d e f NOMBRE( LISTA DE PARAMETROS ) : SENTENCIAS
Ejercicio 3 F
a) Escribir una función que reciba como parámetro una cadena y la muestre en pantalla 3 veces. b) Guardar esta denición de función en un archivo. c) Hacer un programa que le pida al usuario una cadena y que la muestre en pantalla 3 veces utilizando la función denida anteriormente.
Ejercicio 4 F
a) Escribir una función que reciba dos números reales como parámetros y retorne su promedio. b) Hacer un programa que pida al usuario dos números reales y muestre por pantalla el resultado de llamar a la función del primer inciso. c) Idem de los dos anteriores pero con tres números. Escribir la función en el mismo archivo donde se escribió la del item a.
Ejercicio 5 F
Denir una función que devuelva el valor absoluto de un número. (Hacerlo sin utilizar la función abs)
Ejercicio 6 F
a) Escribir una función con el siguiente encabezado: def exclamar(unaCadena): que retorne la misma cadena entre símbolos de exclamación (½!) b) Escribir una función con el siguiente encabezado: def gritar(unaCadena): que retorne la misma cadena entre 3 símbolos de exclamación (½½½!!!) c) De no haberlo hecho en el punto anterior, escribir de nuevo la función gritar utili- zando solo la función exclamar. Nota: gritar(Ouch) deberá devolver la cadena ½½½Ouch!!! Ayuda: Recordar que + utilizado entre cadenas las concatena.
Ejercicio 7 F
a) Escribir una función que se llame elevarAlCubo que tome un número y retorne el valor de ese número al cubo. b) Guardar el ejercicio anterior en un archivo llamado funcionCubo.py c) Correr el siguiente código en un archivo nuevo y chequear que los resultados sean correctos: print(0, al cubo:, elevarAlCubo(0)) print(1, al cubo:, elevarAlCubo(1)) print(2, al cubo:, elevarAlCubo(2)) print(3, al cubo:, elevarAlCubo(3)) print(4, al cubo:, elevarAlCubo(4)) print(5, al cubo:, elevarAlCubo(5)) print(6, al cubo:, elevarAlCubo(6)) print(-1, al cubo:, elevarAlCubo(-1)) print(-2, al cubo:, elevarAlCubo(-2)) print(-3, al cubo:, elevarAlCubo(-3)) print(-4, al cubo:, elevarAlCubo(-4)) print(-5, al cubo:, elevarAlCubo(-5))
Ejercicio 8 F
a) Escribir una función que tome un parámetro de tipo entero y devuelva la cantidad de divisores positivos de ese número. b) Escribir una función que tome un parámetro de tipo entero y devuelva el valor True si se la llama con un número primo y False en caso contrario. c) ¾Cuál es el número primo más grande que encontraste? d) Hacer una función (no pura) que reciba un entero e imprima sus factores primos. Por ejemplo para a = 20 la función debe mostrar 2 y 5. Nota: Los números primos son aquellos cuyos únicos divisores positivos son ellos mismos y el 1.
Ejercicio 9
a) Hacer una función que reciba dos enteros y retorne el mayor. b) Hacer una función que reciba tres enteros y retorne el mayor.
Ejercicio 10
Hacer una función potencia, que reciba dos enteros a y b y retorne ab.
Ejercicio 17 F
Escribir una función (y probarla en un programa) para cada una de las siguientes descripciones:
a) una función que se llame tieneRepetidas que tome una cadena como parámetro y devuelva True si esa cadena tiene alguna letra que aparece más de una vez y False en caso contrario. b) una función que se llame aparece que tome dos parámetros, una letra y una cadena, y devuelva True si la letra aparece en la cadena y False en caso contrario. c) una función que se llame dameRepetida que tome una cadena como parámetro y retorne la primer letra que aparece repetida en la cadena d) una función que se llame quitarRepeticiones que tome dos parámetros, una cadena y una letra, y devuelva otra cadena igual a la anterior pero sin las repeticiones de esa letra. Por ejemplo, un programa que llame a la función así: quitarRepeticiones(mate cocido, c), deberá retornar la cadena mate coido.
Ejercicio 18 F
Se desea automatizar el cálculo de la tarifa telefónica para una lista de clientes. La empresa informa que cada llamado tiene un costo por conexión más un costo por el tiempo consumido en segundos. Se cuenta con las siguientes funciones ya implementadas. ObtenerCantidadLlamados(nroCliente): retorna la cantidad de llamados para un cliente. ObtenerTiempoPorLlamada(nroCliente, nroLlamada): retorna la cantidad de segundos de un llamado de un cliente. ObtenerCostoPorLlamada(): retorna el costo jo por cada llamada. ObtenerCostoPorTiempo(seg): retorna el costo de una llamada que dura seg segundos. Realizar un programa que indique el monto de la factura para cada cliente.