From 43451aa8270792f8cb7813c00f496b980e84b203 Mon Sep 17 00:00:00 2001 From: Blanca Date: Wed, 10 Oct 2018 15:42:07 +0200 Subject: [PATCH] =?UTF-8?q?Curiosidades=20pit=C3=B3nicas?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../curiosidades_pitonicas-checkpoint.ipynb | 146 ++++++++++++++++++ curiosidades_pitonicas.ipynb | 146 ++++++++++++++++++ 2 files changed, 292 insertions(+) create mode 100644 .ipynb_checkpoints/curiosidades_pitonicas-checkpoint.ipynb create mode 100644 curiosidades_pitonicas.ipynb diff --git a/.ipynb_checkpoints/curiosidades_pitonicas-checkpoint.ipynb b/.ipynb_checkpoints/curiosidades_pitonicas-checkpoint.ipynb new file mode 100644 index 0000000..64d9926 --- /dev/null +++ b/.ipynb_checkpoints/curiosidades_pitonicas-checkpoint.ipynb @@ -0,0 +1,146 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Funciones lambda, listas por compresión, decoradores y otras curiosidades pitónicas\n", + "Python es un lenguaje precioso, o por lo menos así me lo parece a mí, por tanto procedo a contarte aspectos, funciones y otras cosilla que a mí me llaman la función.\n", + "\n", + "## Funciones lambda \n", + "Las funciones lammbda son funciones anónimas, es decir no se declaran con un nombre, su sintáxis es: `lambda : ` \n", + "Un ejemplo sencillo podría ser:\n" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "4" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "cuadrado = lambda a: a*a\n", + "cuadrado(2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Por su sencillez se suelen utilizar como argumentso en funciones más simples como `map` o `filter`, antes de ejemplificar, para ver mejor su utilidad introduciré el concepto de listas por comprensión. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Listas por compresión \n", + "La creación de listas por compresión, refleja el concepto matemático de definir un conjunto, en este caso lista, a partir de una defición. Dando lugar a definiciones elegantes y rápidas:" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Lista por compresión: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]\n", + "Esta preciosa lista [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] es resultado de la anterior\n", + "Los números impares son: [1, 3, 5, 7, 9]\n" + ] + }, + { + "data": { + "text/plain": [ + "[(0, 3), (0, 5), (1, 3), (1, 5), (2, 3), (2, 5)]" + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "print( \"Lista por compresión: \" ,[ i for i in range(10)] )\n", + "l = list( map(lambda x : x*x ,range(10) ))\n", + "print( f\"Esta preciosa lista { l } es resultado de la anterior\")\n", + "print( f\"Los números impares son: { list( filter( lambda x: x%2 , range(10)) )}\")\n", + "[ (x,y) for x in range(3) for y in range(3,7,2)] #productos cartesianos" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Espero que haya estado usted fino y haya notado el uso del \"nuevo\" format en el print de python :D" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Decoradores\n", + "Los decoradores son funciones que modifican el comportarmiento de las funciones sobre las que se aplican. Esto se ve mejor con un ejemplo:" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Se están sumando 1 y 2\n" + ] + } + ], + "source": [ + "def sumandos(f):\n", + " def nueva_funcion(a,b):\n", + " print(f'Se están sumando {a} y {b}')\n", + " f(a,b)\n", + " return nueva_funcion\n", + "@sumandos\n", + "def suma(a,b):\n", + " return a+b\n", + "suma(1,2)\n" + ] + } + ], + "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.6.5" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/curiosidades_pitonicas.ipynb b/curiosidades_pitonicas.ipynb new file mode 100644 index 0000000..64d9926 --- /dev/null +++ b/curiosidades_pitonicas.ipynb @@ -0,0 +1,146 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Funciones lambda, listas por compresión, decoradores y otras curiosidades pitónicas\n", + "Python es un lenguaje precioso, o por lo menos así me lo parece a mí, por tanto procedo a contarte aspectos, funciones y otras cosilla que a mí me llaman la función.\n", + "\n", + "## Funciones lambda \n", + "Las funciones lammbda son funciones anónimas, es decir no se declaran con un nombre, su sintáxis es: `lambda : ` \n", + "Un ejemplo sencillo podría ser:\n" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "4" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "cuadrado = lambda a: a*a\n", + "cuadrado(2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Por su sencillez se suelen utilizar como argumentso en funciones más simples como `map` o `filter`, antes de ejemplificar, para ver mejor su utilidad introduciré el concepto de listas por comprensión. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Listas por compresión \n", + "La creación de listas por compresión, refleja el concepto matemático de definir un conjunto, en este caso lista, a partir de una defición. Dando lugar a definiciones elegantes y rápidas:" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Lista por compresión: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]\n", + "Esta preciosa lista [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] es resultado de la anterior\n", + "Los números impares son: [1, 3, 5, 7, 9]\n" + ] + }, + { + "data": { + "text/plain": [ + "[(0, 3), (0, 5), (1, 3), (1, 5), (2, 3), (2, 5)]" + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "print( \"Lista por compresión: \" ,[ i for i in range(10)] )\n", + "l = list( map(lambda x : x*x ,range(10) ))\n", + "print( f\"Esta preciosa lista { l } es resultado de la anterior\")\n", + "print( f\"Los números impares son: { list( filter( lambda x: x%2 , range(10)) )}\")\n", + "[ (x,y) for x in range(3) for y in range(3,7,2)] #productos cartesianos" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Espero que haya estado usted fino y haya notado el uso del \"nuevo\" format en el print de python :D" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Decoradores\n", + "Los decoradores son funciones que modifican el comportarmiento de las funciones sobre las que se aplican. Esto se ve mejor con un ejemplo:" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Se están sumando 1 y 2\n" + ] + } + ], + "source": [ + "def sumandos(f):\n", + " def nueva_funcion(a,b):\n", + " print(f'Se están sumando {a} y {b}')\n", + " f(a,b)\n", + " return nueva_funcion\n", + "@sumandos\n", + "def suma(a,b):\n", + " return a+b\n", + "suma(1,2)\n" + ] + } + ], + "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.6.5" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +}