Вы находитесь на странице: 1из 11

{

"nbformat": 4,

"nbformat_minor": 0,

"metadata": {

"kernelspec": {

"display_name": "Python 3",

"language": "python",

"name": "python3"

},

"language_info": {

"codemirror_mode": {

"name": "ipython",

"version": 3

},

"file_extension": ".py",

"mimetype": "text/x-python",

"name": "python",

"nbconvert_exporter": "python",

"pygments_lexer": "ipython3",

"version": "3.8.3"

},

"colab": {

"name": "Sesion_11_Funciones.ipynb",

"provenance": []

},

"cells": [

"cell_type": "markdown",
"metadata": {

"id": "FcnWdulLOmb3"

},

"source": [

"# Fundamentos de Programación con Python\n",

"\n",

"Estos Notebooks fueron creados por profesores y diseñadores de contenido de la


Universidad del Norte, en Barranquilla - Colombia.\n",

"\n",

"Todos estos materiales cuentan con una licencia <b>Creative Commons</b> de libre uso con
atribución.\n",

"\n",

"## Funciones\n",

"\n",

"La verdad es que hemos venido trabajando con funciones desde el comienzo en los retos
diarios. En Python, definimos una función con la siguiente estructura\n",

"\n",

" def funcion(parametros):\n",

"\n",

"\n",

"Veamos una implementación simple. "

},

"cell_type": "code",

"metadata": {

"id": "-qsP12_jOmb4",

"outputId": "2288ef47-137e-444a-91cc-1ccd2f192f39"

},

"source": [
"def suma(a,b):\n",

" \n",

" print(a+b)\n",

"\n",

"suma(3,4)"

],

"execution_count": null,

"outputs": [

"output_type": "stream",

"text": [

"7\n"

],

"name": "stdout"

},

"cell_type": "markdown",

"metadata": {

"id": "kufldfYjOmb_"

},

"source": [

"Como vemos aquí la función suma recibe dos parámetros a y b. E imprime la suma de estos
valores. \n",

"\n",

"Recordemos que en el caso particular de Python, el tipo de dato de las variables no necesita
ser pre-definido y puede cambiar durante la ejecución. Por ejemplo, usando la misma definición, si
enviamos los valores como cadenas de caracteres esta sería la ejecución."

]
},

"cell_type": "code",

"metadata": {

"id": "b_EYakXMOmcA",

"outputId": "e5c89a53-de2e-4d94-edbb-fda30ad45799"

},

"source": [

"def suma(a,b):\n",

" \n",

" print(a+b)\n",

"\n",

"suma(\"3\",\"4\")"

],

"execution_count": null,

"outputs": [

"output_type": "stream",

"text": [

"34\n"

],

"name": "stdout"

},

"cell_type": "markdown",

"metadata": {

"id": "F88nInp8OmcF"
},

"source": [

"En este caso, la función suma(a,b) no retorna ningún valor. \n",

"\n",

"Vamos ahora a realizar definir dos funciones; una función que retorne un valor al final de la
ejecución."

},

"cell_type": "code",

"metadata": {

"id": "hEJcNdvZOmcF",

"outputId": "24360d68-d863-4ada-bbaf-eea8cd1917e5"

},

"source": [

"def suma(a,b): \n",

" return a+b\n",

"\n",

"def main():\n",

" resultado = suma(3,4)\n",

" print(resultado)\n",

"\n",

"main()"

],

"execution_count": null,

"outputs": [

"output_type": "stream",

"text": [
"7\n"

],

"name": "stdout"

},

"cell_type": "markdown",

"metadata": {

"id": "DkIrtU2FOmcK"

},

"source": [

"Como vemos, en Python tampoco es necesario definir previo a la ejecución el tipo de dato a
retornar. En este caso, la variable resultado recibe el valor retornado por suma(a,b).\n",

"\n",

"1. En qué casos puede ser más indicado retornar un valor específico?\n",

"2. En qué casos no sería necesario retornar ningún valor?\n",

"\n",

"Analicemos adicionalmente el llamado entre funciones y la ejecución del programa.\n",

"1. Por qué se ejecuta main primero?\n",

"\n",

"\n",

"Como ya hemos venido trabajando con funciones, vamos a utilizar este espacio para reforzar
los conocimientos adquiridos hasta el momento mientras incluímos el uso de funciones.\n",

"\n",

"### Actividad 1\n",

"Usted es cajero en un supermercado de su ciudad. Su trabajo es imprimir cada uno de los


productos de su cliente, su precio y calcular el total a pagar.\n",

"\n",

"Diseñe un programa con las siguiente características:\n",


"1. Que tenga una función principal que solicite al usuario nombre y precio de cada
producto.\n",

"2. Una variable total que vaya sumando el precio de los artículos\n",

"3. Una función adicional llamada imprimaProducto(nombre, precio) que reciba el nombre y
el precio de cada producto y los imprima.\n",

"4. Que después de cada artículo le pregunte al usuario si tiene o no más artículos a ingresar.
Si no tiene, el programa debe detenerse."

},

"cell_type": "code",

"metadata": {

"id": "fT62CiQPOmcL",

"outputId": "fa9c749b-ea7a-4ea3-acdb-0529518c742e",

"colab": {

"base_uri": "https://localhost:8080/",

"height": 170

},

"source": [

"\n",

"x=input(\"Ingrese nombre del producto: \")\n",

"y=int(input(\"Ingrese el valor de su producto: \"))\n",

"def imprimaProducto (x,y):\n",

" print(x,y)\n",

"\n",

"suma=0\n",

"while True:\n",

" suma=suma+y\n",

" imprimaProducto(x,y)\n",
" z=input(\"Desea agregar mas articulos?\")\n",

" if z == \"No\" or z== \"no\":\n",

" break\n",

" x=input(\"Ingrese nombre del producto: \")\n",

" y=int(input(\"Ingrese el valor de su producto: \"))\n",

"print(\"Total a pagar\",suma) \n",

"\n",

"\n",

" "

],

"execution_count": 14,

"outputs": [

"output_type": "stream",

"text": [

"Ingrese nombre del producto: a\n",

"Ingrese el valor de su producto: 100\n",

"a 100\n",

"Desea agregar mas articulos?Si\n",

"Ingrese nombre del producto: b\n",

"Ingrese el valor de su producto: 400\n",

"b 400\n",

"Desea agregar mas articulos?No\n",

"Total a pagar 500\n"

],

"name": "stdout"

},
{

"cell_type": "markdown",

"metadata": {

"id": "nTfISS9YOmcQ"

},

"source": [

"### Actividad 2\n",

" \n",

"Escribamos una función numAleatorio() que retorne un número aleatorio entre 100 y 130,
excepto los números 110, 115, 120 y \n",

"\n",

"Adicionalmente, una función principal que imprima diez números aleatorios (retornados por
la función numAleatorio()) alternando par, impar, comenzando por par."

},

"cell_type": "code",

"metadata": {

"id": "7eM-qAxrOmcQ",

"outputId": "44e2cf4d-c88f-485c-a001-0c7607f413c1",

"colab": {

"base_uri": "https://localhost:8080/",

"height": 187

},

"source": [

"import random\n",

"def numAleatorio():\n",

" while True:\n",

" x=random.randint(100,121)\n",
" if x!=110 and x!=115 and x!=120:\n",

" break\n",

" return x\n",

"def ppal ():\n",

" for x in range (10):\n",

" print(numAleatorio())\n",

"\n",

"ppal() \n"

],

"execution_count": 26,

"outputs": [

"output_type": "stream",

"text": [

"109\n",

"108\n",

"118\n",

"100\n",

"113\n",

"107\n",

"102\n",

"108\n",

"103\n",

"102\n"

],

"name": "stdout"

}
]

Вам также может понравиться