{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Sentencias" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Como alternativa solo tenemos el if" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "entre 2 y 3\n" ] } ], "source": [ "a = 3\n", "if a > 3:\n", " print('mayor que 3')\n", "elif a<2:\n", " print('menor que 2')\n", "else:\n", " print('entre 2 y 3')\n", " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Para bucles tenemos el for, que itera sobre cualquier tipo que sea una secuencia" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0\n", "1\n", "2\n", "3\n", "4\n" ] } ], "source": [ "for i in range(5):\n", " print(i)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "pepe\n", "3.14\n", "1\n", "2\n", "(1, 2)\n" ] } ], "source": [ "a = ['pepe', 3.14, 1, 2, (1,2)]\n", "for i in a:\n", " print(i)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Ciertas funciones nos permiten hacer cosas interesantes sobre las listas, por ejemplo generar una lista de pares con las posiciones y valores de la secuencia (*enumerate*) o fusionar listas para recorrerlas a la vez (*zip*)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0 - pepe\n", "1 - 3.14\n", "2 - 1\n", "3 - 2\n", "4 - (1, 2)\n", "0 5 0\n", "1 6 2\n", "2 7 4\n", "3 8 6\n", "4 9 8\n" ] } ], "source": [ "for i,j in enumerate(a):\n", " print (i,'-', j)\n", "print\n", "for i,j,k in zip(range(5), range(5,10), range(0,10,2)):\n", " print (i,j,k)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Podemos recorrer cualquier estructura iterable" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "3\n", "2\n", "1\n" ] } ], "source": [ "a = {'pepe': 3, 'juan': 2, 'maria': 1}\n", "for i in a:\n", " print (a[i])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Podemos usar funciones de los tipos para poder hacer los recorridos" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "3\n", "2\n", "1\n" ] } ], "source": [ "for i in a.keys():\n", " print (a[i])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Y manipularlas para poder realizar el recorrido como queramos, por ejemplo los diccionarios no ordenan sus claves, pero podemos ordenarlas nosotros para hacer el recorrido" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2\n", "1\n", "3\n" ] } ], "source": [ "for i in sorted(a.keys()):\n", " print (a[i])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Aparte del for tenemos tambien el while" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1\n", "2\n", "3\n", "4\n", "5\n" ] } ], "source": [ "a = 0\n", "while a < 5:\n", " a += 1\n", " print (a)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "El for tambien se puede usar para generar listas (en python se llama list comprehensions) y suele ser mas eficiente que usar directamente un bucle" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[4, 16, 36, 64]" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a = [i**2 for i in range(2,10,2)]\n", "a" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Podemos utilizar otras sentencias para modificar el resultado" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[4, 16, 36, 64]" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a = [i**2 for i in range(2,10) if i % 2 == 0]\n", "a" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "TambiƩn las podemos anidar" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a = [(i,j) for i in range(3) for j in range(3)]\n", "a" ] } ], "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.6" }, "latex_envs": { "LaTeX_envs_menu_present": true, "autoclose": false, "autocomplete": true, "bibliofile": "biblio.bib", "cite_by": "apalike", "current_citInitial": 1, "eqLabelWithNumbers": true, "eqNumInitial": 1, "hotkeys": { "equation": "Ctrl-E", "itemize": "Ctrl-I" }, "labels_anchors": false, "latex_user_defs": false, "report_style_numbering": false, "user_envs_cfg": false }, "toc": { "nav_menu": {}, "number_sections": true, "sideBar": true, "skip_h1_title": false, "toc_cell": false, "toc_position": {}, "toc_section_display": "block", "toc_window_display": false } }, "nbformat": 4, "nbformat_minor": 1 }