{"id":365,"date":"2024-11-07T18:45:45","date_gmt":"2024-11-07T18:45:45","guid":{"rendered":"https:\/\/equipomedios.com\/blog\/?p=365"},"modified":"2024-10-18T18:47:17","modified_gmt":"2024-10-18T18:47:17","slug":"bucle-for-python","status":"publish","type":"post","link":"https:\/\/equipomedios.com\/blog\/bucle-for-python\/","title":{"rendered":"Bucle for | Python"},"content":{"rendered":"<h1>Bucle for<\/h1>\n<p>La sentencia\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">for<\/span><\/code>\u00a0en Python difiere un poco de lo que uno puede estar acostumbrado en lenguajes como C o Pascal. En lugar de siempre iterar sobre una progresi\u00f3n aritm\u00e9tica de n\u00fameros (como en Pascal) o darle al usuario la posibilidad de definir tanto el paso de la iteraci\u00f3n como la condici\u00f3n de fin (como en C), la sentencia\u00a0<cite>for<\/cite>\u00a0de Python itera sobre los \u00edtems de cualquier secuencia (una lista o una cadenas de caracteres), en el orden que aparecen en la secuencia.<\/p>\n<div id=\"tipos-de-bucle-for\" class=\"section\">\n<h2>Tipos de Bucle \u201cfor\u201d<\/h2>\n<p>A continuaci\u00f3n, se presentan algunos ejemplos del uso del bucle\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">for<\/span><\/code>:<\/p>\n<div id=\"bucle-for-con-listas\" class=\"section\">\n<h3>Bucle \u201cfor\u201d con Listas<\/h3>\n<p>A continuaci\u00f3n, se presenta un ejemplo del uso del bucle\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">for<\/span><\/code>\u00a0con tipos de estructuras de datos\u00a0<span class=\"std std-ref\">listas<\/span>:<\/p>\n<div class=\"highlight-python notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"n\">animales<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[<\/span><span class=\"s1\">'gato'<\/span><span class=\"p\">,<\/span> <span class=\"s1\">'perro'<\/span><span class=\"p\">,<\/span> <span class=\"s1\">'serpiente'<\/span><span class=\"p\">]<\/span>\r\n<span class=\"k\">for<\/span> <span class=\"n\">animal<\/span> <span class=\"ow\">in<\/span> <span class=\"n\">animales<\/span><span class=\"p\">:<\/span>\r\n    <span class=\"nb\">print<\/span> <span class=\"p\">(<\/span><span class=\"s2\">\"El animal es: <\/span><span class=\"si\">{0}<\/span><span class=\"s2\">, tama\u00f1o de palabra es: <\/span><span class=\"si\">{1}<\/span><span class=\"s2\">\"<\/span><span class=\"o\">.<\/span><span class=\"n\">format<\/span><span class=\"p\">(<\/span>\r\n        <span class=\"n\">animal<\/span><span class=\"p\">,<\/span> <span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"n\">animal<\/span><span class=\"p\">)))<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"bucle-for-con-listas-y-funcion-range\" class=\"section\">\n<h3>Bucle \u201cfor\u201d con Listas y funci\u00f3n \u201crange\u201d<\/h3>\n<p>A continuaci\u00f3n, se presenta un ejemplo del uso del bucle\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">for<\/span><\/code>\u00a0con tipos de estructuras de datos\u00a0<span class=\"std std-ref\">listas<\/span>\u00a0con la funci\u00f3n\u00a0<span class=\"std std-ref\">range()<\/span>\u00a0y la funci\u00f3n\u00a0<span class=\"std std-ref\">len()<\/span>:<\/p>\n<div class=\"highlight-python notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"n\">oracion<\/span> <span class=\"o\">=<\/span> <span class=\"s1\">'Mary entiende muy bien Python'<\/span>\r\n<span class=\"n\">frases<\/span> <span class=\"o\">=<\/span> <span class=\"n\">oracion<\/span><span class=\"o\">.<\/span><span class=\"n\">split<\/span><span class=\"p\">()<\/span> <span class=\"c1\"># convierte a una lista cada palabra<\/span>\r\n<span class=\"nb\">print<\/span> <span class=\"p\">(<\/span><span class=\"s2\">\"La oraci\u00f3n analizada es:\"<\/span><span class=\"p\">,<\/span> <span class=\"n\">oracion<\/span><span class=\"p\">,<\/span> <span class=\"s2\">\".<\/span><span class=\"se\">\\n<\/span><span class=\"s2\">\"<\/span><span class=\"p\">)<\/span>\r\n<span class=\"k\">for<\/span> <span class=\"n\">palabra<\/span> <span class=\"ow\">in<\/span> <span class=\"nb\">range<\/span><span class=\"p\">(<\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"n\">frases<\/span><span class=\"p\">)):<\/span>\r\n    <span class=\"nb\">print<\/span> <span class=\"p\">(<\/span><span class=\"s2\">\"Palabra: <\/span><span class=\"si\">{0}<\/span><span class=\"s2\">, en la frase su posici\u00f3n es: <\/span><span class=\"si\">{1}<\/span><span class=\"s2\">\"<\/span><span class=\"o\">.<\/span><span class=\"n\">format<\/span><span class=\"p\">(<\/span>\r\n        <span class=\"n\">frases<\/span><span class=\"p\">[<\/span><span class=\"n\">palabra<\/span><span class=\"p\">],<\/span> <span class=\"n\">palabra<\/span><span class=\"p\">))<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<p>Si se necesita iterar sobre una secuencia de n\u00fameros. Genera una lista conteniendo progresiones aritm\u00e9ticos, por ejemplo, como se hace en el fragmento de c\u00f3digo fuente anterior.<\/p>\n<\/div>\n<div id=\"bucle-for-con-tuplas\" class=\"section\">\n<h3>Bucle \u201cfor\u201d con Tuplas<\/h3>\n<p>A continuaci\u00f3n, se presenta un ejemplo del uso del bucle\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">for<\/span><\/code>\u00a0con tipos de estructuras de datos\u00a0<span class=\"std std-ref\">Tuplas<\/span>:<\/p>\n<div class=\"highlight-python notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"n\">conexion_bd<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">\"127.0.0.1\"<\/span><span class=\"p\">,<\/span><span class=\"s2\">\"root\"<\/span><span class=\"p\">,<\/span><span class=\"s2\">\"123456\"<\/span><span class=\"p\">,<\/span><span class=\"s2\">\"nomina\"<\/span>\r\n<span class=\"k\">for<\/span> <span class=\"n\">parametro<\/span> <span class=\"ow\">in<\/span> <span class=\"n\">conexion_bd<\/span><span class=\"p\">:<\/span>\r\n    <span class=\"nb\">print<\/span> <span class=\"p\">(<\/span><span class=\"n\">parametro<\/span><span class=\"p\">)<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<p>El ejemplo anterior itera una\u00a0<span class=\"std std-ref\">tupla<\/span>\u00a0de par\u00e1metros.<\/p>\n<\/div>\n<div id=\"bucle-for-con-diccionarios\" class=\"section\">\n<h3>Bucle \u201cfor\u201d con Diccionarios<\/h3>\n<p>A continuaci\u00f3n, se presenta un ejemplo del uso del bucle\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">for<\/span><\/code>\u00a0con tipos de estructuras de datos\u00a0<span class=\"std std-ref\">diccionarios<\/span>:<\/p>\n<div class=\"highlight-python notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"n\">datos_basicos<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{<\/span>\r\n    <span class=\"s2\">\"nombres\"<\/span><span class=\"p\">:<\/span><span class=\"s2\">\"Leonardo Jose\"<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"s2\">\"apellidos\"<\/span><span class=\"p\">:<\/span><span class=\"s2\">\"Caballero Garcia\"<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"s2\">\"cedula\"<\/span><span class=\"p\">:<\/span><span class=\"s2\">\"26938401\"<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"s2\">\"fecha_nacimiento\"<\/span><span class=\"p\">:<\/span><span class=\"s2\">\"03\/12\/1980\"<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"s2\">\"lugar_nacimiento\"<\/span><span class=\"p\">:<\/span><span class=\"s2\">\"Maracaibo, Zulia, Venezuela\"<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"s2\">\"nacionalidad\"<\/span><span class=\"p\">:<\/span><span class=\"s2\">\"Venezolana\"<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"s2\">\"estado_civil\"<\/span><span class=\"p\">:<\/span><span class=\"s2\">\"Soltero\"<\/span>\r\n<span class=\"p\">}<\/span>\r\n<span class=\"n\">clave<\/span> <span class=\"o\">=<\/span> <span class=\"n\">datos_basicos<\/span><span class=\"o\">.<\/span><span class=\"n\">keys<\/span><span class=\"p\">()<\/span>\r\n<span class=\"n\">valor<\/span> <span class=\"o\">=<\/span> <span class=\"n\">datos_basicos<\/span><span class=\"o\">.<\/span><span class=\"n\">values<\/span><span class=\"p\">()<\/span>\r\n<span class=\"n\">cantidad_datos<\/span> <span class=\"o\">=<\/span> <span class=\"n\">datos_basicos<\/span><span class=\"o\">.<\/span><span class=\"n\">items<\/span><span class=\"p\">()<\/span>\r\n\r\n<span class=\"k\">for<\/span> <span class=\"n\">clave<\/span><span class=\"p\">,<\/span> <span class=\"n\">valor<\/span> <span class=\"ow\">in<\/span> <span class=\"n\">cantidad_datos<\/span><span class=\"p\">:<\/span>\r\n    <span class=\"nb\">print<\/span> <span class=\"p\">(<\/span><span class=\"n\">clave<\/span> <span class=\"o\">+<\/span> <span class=\"s2\">\": \"<\/span> <span class=\"o\">+<\/span> <span class=\"n\">valor<\/span><span class=\"p\">)<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<p>El ejemplo anterior itera un\u00a0<span class=\"std std-ref\">diccionario<\/span>\u00a0con datos b\u00e1sicos de una persona.<\/p>\n<\/div>\n<div id=\"bucle-for-con-else\" class=\"section\">\n<h3>Bucle \u201cfor\u201d con \u201celse\u201d<\/h3>\n<p>Al igual que la sentencia\u00a0<a class=\"reference internal\" href=\"https:\/\/entrenamiento-python-basico.readthedocs.io\/es\/2.7\/leccion4\/condicional_if.html#python-condi-if\"><span class=\"std std-ref\">if<\/span><\/a>\u00a0y el bucle\u00a0<span class=\"std std-ref\">while<\/span>, la estructura\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">for<\/span><\/code>\u00a0tambi\u00e9n puede combinarse con una sentencia\u00a0<span class=\"std std-ref\">else<\/span>.<\/p>\n<p>El nombre de la sentencia\u00a0<span class=\"std std-ref\">else<\/span>\u00a0es equivocada, ya que el bloque\u00a0<span class=\"std std-ref\">else<\/span>\u00a0se ejecutar\u00e1 en todos los casos, es decir, cuando la expresi\u00f3n condicional del bucle\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">for<\/span><\/code>\u00a0sea\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">False<\/span><\/code>, (a comparaci\u00f3n de la\u00a0<span class=\"std std-ref\">sentencia if<\/span>).<\/p>\n<div class=\"highlight-python notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"n\">db_connection<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">\"127.0.0.1\"<\/span><span class=\"p\">,<\/span><span class=\"s2\">\"5432\"<\/span><span class=\"p\">,<\/span><span class=\"s2\">\"root\"<\/span><span class=\"p\">,<\/span><span class=\"s2\">\"nomina\"<\/span>\r\n<span class=\"k\">for<\/span> <span class=\"n\">parametro<\/span> <span class=\"ow\">in<\/span> <span class=\"n\">db_connection<\/span><span class=\"p\">:<\/span>\r\n    <span class=\"nb\">print<\/span> <span class=\"p\">(<\/span><span class=\"n\">parametro<\/span><span class=\"p\">)<\/span>\r\n<span class=\"k\">else<\/span><span class=\"p\">:<\/span>\r\n    <span class=\"nb\">print<\/span> <span class=\"p\">(<\/span><span class=\"s2\">\"\"\"El comando PostgreSQL es: <\/span>\r\n<span class=\"s2\">$ psql -h <\/span><span class=\"si\">{server}<\/span><span class=\"s2\"> -p <\/span><span class=\"si\">{port}<\/span><span class=\"s2\"> -U <\/span><span class=\"si\">{user}<\/span><span class=\"s2\"> -d <\/span><span class=\"si\">{db_name}<\/span><span class=\"s2\">\"\"\"<\/span><span class=\"o\">.<\/span><span class=\"n\">format<\/span><span class=\"p\">(<\/span>\r\n        <span class=\"n\">server<\/span><span class=\"o\">=<\/span><span class=\"n\">db_connection<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">],<\/span> <span class=\"n\">port<\/span><span class=\"o\">=<\/span><span class=\"n\">db_connection<\/span><span class=\"p\">[<\/span><span class=\"mi\">1<\/span><span class=\"p\">],<\/span> \r\n        <span class=\"n\">user<\/span><span class=\"o\">=<\/span><span class=\"n\">db_connection<\/span><span class=\"p\">[<\/span><span class=\"mi\">2<\/span><span class=\"p\">],<\/span> <span class=\"n\">db_name<\/span><span class=\"o\">=<\/span><span class=\"n\">db_connection<\/span><span class=\"p\">[<\/span><span class=\"mi\">3<\/span><span class=\"p\">]))<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<p>La sentencia\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">else<\/span><\/code>\u00a0tiene la ventaja de mantener el mismo nombre y la misma sintaxis que en las dem\u00e1s estructuras de control.<\/p>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Bucle for La sentencia\u00a0for\u00a0en Python difiere un poco de lo que uno puede estar acostumbrado en lenguajes como C o Pascal. En lugar de siempre iterar sobre una progresi\u00f3n aritm\u00e9tica de n\u00fameros (como en Pascal) o darle al usuario la posibilidad de definir tanto el paso de la iteraci\u00f3n como la condici\u00f3n de fin (como [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":331,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false},"version":2}},"categories":[39,40],"tags":[],"class_list":["post-365","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-programacion","category-python"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/equipomedios.com\/blog\/wp-content\/uploads\/2024\/08\/python-logo-master-v3-TM.png?fit=601%2C203&ssl=1","jetpack_sharing_enabled":true,"jetpack-related-posts":[],"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/equipomedios.com\/blog\/wp-json\/wp\/v2\/posts\/365","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/equipomedios.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/equipomedios.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/equipomedios.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/equipomedios.com\/blog\/wp-json\/wp\/v2\/comments?post=365"}],"version-history":[{"count":1,"href":"https:\/\/equipomedios.com\/blog\/wp-json\/wp\/v2\/posts\/365\/revisions"}],"predecessor-version":[{"id":366,"href":"https:\/\/equipomedios.com\/blog\/wp-json\/wp\/v2\/posts\/365\/revisions\/366"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/equipomedios.com\/blog\/wp-json\/wp\/v2\/media\/331"}],"wp:attachment":[{"href":"https:\/\/equipomedios.com\/blog\/wp-json\/wp\/v2\/media?parent=365"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/equipomedios.com\/blog\/wp-json\/wp\/v2\/categories?post=365"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/equipomedios.com\/blog\/wp-json\/wp\/v2\/tags?post=365"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}