{"id":363,"date":"2024-11-05T18:44:12","date_gmt":"2024-11-05T18:44:12","guid":{"rendered":"https:\/\/equipomedios.com\/blog\/?p=363"},"modified":"2024-10-18T18:45:30","modified_gmt":"2024-10-18T18:45:30","slug":"bucle-while-python","status":"publish","type":"post","link":"https:\/\/equipomedios.com\/blog\/bucle-while-python\/","title":{"rendered":"Bucle while | Python"},"content":{"rendered":"<h1>Bucle while<\/h1>\n<p>En Python tiene una palabra reservada llamada\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">while<\/span><\/code>\u00a0que nos permite ejecutar ciclos, o bien secuencias peri\u00f3dicas que nos permiten ejecutar c\u00f3digo m\u00faltiples veces.<\/p>\n<p>El ciclo\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">while<\/span><\/code>\u00a0nos permite realizar m\u00faltiples iteraciones bas\u00e1ndonos en el resultado de una expresi\u00f3n l\u00f3gica que puede tener como resultado un valor\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">True<\/span><\/code>\u00a0o\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">False<\/span><\/code>.<\/p>\n<div id=\"tipos-de-bucle-while\" class=\"section\">\n<h2>Tipos de Bucle \u201cwhile\u201d<\/h2>\n<p>A continuaci\u00f3n, se presentan algunos ejemplos del uso del bucle\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">while<\/span><\/code>:<\/p>\n<div id=\"bucle-while-controlado-por-conteo\" class=\"section\">\n<h3>Bucle \u201cwhile\u201d controlado por Conteo<\/h3>\n<p>A continuaci\u00f3n, se presenta un ejemplo del uso del bucle\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">while<\/span><\/code>\u00a0controlado por conteo:<\/p>\n<div class=\"highlight-python notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"n\">suma<\/span><span class=\"p\">,<\/span> <span class=\"n\">numero<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">0<\/span><span class=\"p\">,<\/span> <span class=\"mi\">1<\/span>\r\n\r\n<span class=\"k\">while<\/span> <span class=\"n\">numero<\/span> <span class=\"o\">&lt;=<\/span> <span class=\"mi\">10<\/span><span class=\"p\">:<\/span>\r\n    <span class=\"n\">suma<\/span> <span class=\"o\">=<\/span> <span class=\"n\">numero<\/span> <span class=\"o\">+<\/span> <span class=\"n\">suma<\/span>\r\n    <span class=\"n\">numero<\/span> <span class=\"o\">=<\/span> <span class=\"n\">numero<\/span> <span class=\"o\">+<\/span> <span class=\"mi\">1<\/span>\r\n<span class=\"nb\">print<\/span> <span class=\"p\">(<\/span><span class=\"s2\">\"La suma es \"<\/span> <span class=\"o\">+<\/span> <span class=\"nb\">str<\/span><span class=\"p\">(<\/span><span class=\"n\">suma<\/span><span class=\"p\">))<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<p>En este ejemplo tiene un contador con un valor inicial de cero, cada iteraci\u00f3n del\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">while<\/span><\/code>\u00a0manipula esta variable de manera que incremente su valor en 1, por lo que despu\u00e9s de su primera iteraci\u00f3n el contador tendr\u00e1 un valor de 1, luego 2, y as\u00ed sucesivamente.<\/p>\n<p>Eventualmente cuando el contador llegue a tener un valor de 10, la condici\u00f3n del ciclo\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">numero<\/span>\u00a0<span class=\"pre\">&lt;=<\/span>\u00a0<span class=\"pre\">10<\/span><\/code>\u00a0sera\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">False<\/span><\/code>, por lo que el ciclo terminar\u00e1 arrojando el siguiente resultado.<\/p>\n<\/div>\n<div id=\"bucle-while-controlado-por-evento\" class=\"section\">\n<h3>Bucle \u201cwhile\u201d controlado por Evento<\/h3>\n<p>A continuaci\u00f3n, se presenta un ejemplo del uso del bucle\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">while<\/span><\/code>\u00a0controlado por Evento:<\/p>\n<div class=\"highlight-python notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"n\">promedio<\/span><span class=\"p\">,<\/span> <span class=\"n\">total<\/span><span class=\"p\">,<\/span> <span class=\"n\">contar<\/span> <span class=\"o\">=<\/span> <span class=\"mf\">0.0<\/span><span class=\"p\">,<\/span> <span class=\"mi\">0<\/span><span class=\"p\">,<\/span> <span class=\"mi\">0<\/span>\r\n\r\n<span class=\"nb\">print<\/span> <span class=\"p\">(<\/span><span class=\"s2\">\"Introduzca la nota de un estudiante (-1 para salir): \"<\/span><span class=\"p\">)<\/span>\r\n<span class=\"n\">grado<\/span> <span class=\"o\">=<\/span> <span class=\"nb\">int<\/span><span class=\"p\">(<\/span><span class=\"nb\">input<\/span><span class=\"p\">())<\/span>\r\n<span class=\"k\">while<\/span> <span class=\"n\">grado<\/span> <span class=\"o\">!=<\/span> <span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"p\">:<\/span>\r\n    <span class=\"n\">total<\/span> <span class=\"o\">=<\/span> <span class=\"n\">total<\/span> <span class=\"o\">+<\/span> <span class=\"n\">grado<\/span>\r\n    <span class=\"n\">contar<\/span> <span class=\"o\">=<\/span> <span class=\"n\">contar<\/span> <span class=\"o\">+<\/span> <span class=\"mi\">1<\/span>\r\n    <span class=\"nb\">print<\/span> <span class=\"p\">(<\/span><span class=\"s2\">\"Introduzca la nota de un estudiante (-1 para salir): \"<\/span><span class=\"p\">)<\/span>\r\n    <span class=\"n\">grado<\/span> <span class=\"o\">=<\/span> <span class=\"nb\">int<\/span><span class=\"p\">(<\/span><span class=\"nb\">input<\/span><span class=\"p\">())<\/span>\r\n<span class=\"n\">promedio<\/span> <span class=\"o\">=<\/span> <span class=\"n\">total<\/span> <span class=\"o\">\/<\/span> <span class=\"n\">contar<\/span>\r\n<span class=\"nb\">print<\/span> <span class=\"p\">(<\/span><span class=\"s2\">\"Promedio de notas del grado escolar es: \"<\/span> <span class=\"o\">+<\/span> <span class=\"nb\">str<\/span><span class=\"p\">(<\/span><span class=\"n\">promedio<\/span><span class=\"p\">))<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<p>En este casi el evento que se dispara cuando el usuario ingresa el valor\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">-1<\/span><\/code>, causando que el bucle\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">while<\/span><\/code>\u00a0se interrumpo o no se inicie.<\/p>\n<\/div>\n<div id=\"bucle-while-con-else\" class=\"section\">\n<h3>Bucle \u201cwhile\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-sent-if\"><span class=\"std std-ref\">if<\/span><\/a>, la estructura\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">while<\/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<a class=\"reference internal\" href=\"https:\/\/entrenamiento-python-basico.readthedocs.io\/es\/2.7\/leccion4\/condicional_if.html#python-sent-else\"><span class=\"std std-ref\">else<\/span><\/a>\u00a0es equivocada, ya que el bloque\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">else<\/span><\/code>\u00a0se ejecutar\u00e1 en todos los casos, es decir, cuando la expresi\u00f3n condicional del\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">while<\/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\">promedio<\/span><span class=\"p\">,<\/span> <span class=\"n\">total<\/span><span class=\"p\">,<\/span> <span class=\"n\">contar<\/span> <span class=\"o\">=<\/span> <span class=\"mf\">0.0<\/span><span class=\"p\">,<\/span> <span class=\"mi\">0<\/span><span class=\"p\">,<\/span> <span class=\"mi\">0<\/span>\r\n<span class=\"n\">mensaje<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">\"Introduzca la nota de un estudiante (-1 para salir): \"<\/span>\r\n\r\n<span class=\"n\">grado<\/span> <span class=\"o\">=<\/span> <span class=\"nb\">int<\/span><span class=\"p\">(<\/span><span class=\"nb\">input<\/span><span class=\"p\">(<\/span><span class=\"n\">mensaje<\/span><span class=\"p\">))<\/span>\r\n<span class=\"k\">while<\/span> <span class=\"n\">grado<\/span> <span class=\"o\">!=<\/span> <span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"p\">:<\/span>\r\n    <span class=\"n\">total<\/span> <span class=\"o\">=<\/span> <span class=\"n\">total<\/span> <span class=\"o\">+<\/span> <span class=\"n\">grado<\/span>\r\n    <span class=\"n\">contar<\/span> <span class=\"o\">+=<\/span> <span class=\"mi\">1<\/span>\r\n    <span class=\"n\">grado<\/span> <span class=\"o\">=<\/span> <span class=\"nb\">int<\/span><span class=\"p\">(<\/span><span class=\"nb\">input<\/span><span class=\"p\">(<\/span><span class=\"n\">mensaje<\/span><span class=\"p\">))<\/span>\r\n<span class=\"k\">else<\/span><span class=\"p\">:<\/span>\r\n    <span class=\"n\">promedio<\/span> <span class=\"o\">=<\/span> <span class=\"n\">total<\/span> <span class=\"o\">\/<\/span> <span class=\"n\">contar<\/span>\r\n    <span class=\"nb\">print<\/span> <span class=\"p\">(<\/span><span class=\"s2\">\"Promedio de notas del grado escolar: \"<\/span> <span class=\"o\">+<\/span> <span class=\"nb\">str<\/span><span class=\"p\">(<\/span><span class=\"n\">promedio<\/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<div id=\"sentencias-utilitarias\" class=\"section\">\n<h2>Sentencias utilitarias<\/h2>\n<p>A continuaci\u00f3n, se presentan algunos ejemplos del uso de sentencias utilitarias usadas en el bucle\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">while<\/span><\/code>:<\/p>\n<div id=\"sentencia-break\" class=\"section\"><span id=\"python-sent-break\"><\/span><\/p>\n<h3>Sentencia break<\/h3>\n<p>A continuaci\u00f3n, se presenta un ejemplo del uso del bucle\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">while<\/span><\/code>\u00a0controlado la sentencia\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">break<\/span><\/code>:<\/p>\n<div class=\"highlight-python notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"n\">variable<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">10<\/span>\r\n\r\n<span class=\"k\">while<\/span> <span class=\"n\">variable<\/span> <span class=\"o\">&gt;<\/span> <span class=\"mi\">0<\/span><span class=\"p\">:<\/span>\r\n    <span class=\"nb\">print<\/span> <span class=\"p\">(<\/span><span class=\"s2\">\"Actual valor de variable:\"<\/span><span class=\"p\">,<\/span> <span class=\"n\">variable<\/span><span class=\"p\">)<\/span>\r\n    <span class=\"n\">variable<\/span> <span class=\"o\">=<\/span> <span class=\"n\">variable<\/span> <span class=\"o\">-<\/span><span class=\"mi\">1<\/span>\r\n    <span class=\"k\">if<\/span> <span class=\"n\">variable<\/span> <span class=\"o\">==<\/span> <span class=\"mi\">5<\/span><span class=\"p\">:<\/span>\r\n        <span class=\"k\">break<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<p>Adicionalmente existe una forma alternativa de interrumpir o cortar los ciclos utilizando la palabra reservada\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">break<\/span><\/code>.<\/p>\n<p>Esta nos permite salir del ciclo incluso si la expresi\u00f3n evaluada en\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">while<\/span><\/code>\u00a0(o en otro ciclo como\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">for<\/span><\/code>) permanece siendo\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">True<\/span><\/code>. Para comprender mejor use el mismo ejemplo anterior pero se interrumpe el ciclo usando la sentencia\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">break<\/span><\/code>.<\/p>\n<\/div>\n<div id=\"sentencia-continue\" class=\"section\"><span id=\"python-sent-continue\"><\/span><\/p>\n<h3>Sentencia continue<\/h3>\n<p>A continuaci\u00f3n, se presenta un ejemplo del uso del bucle\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">while<\/span><\/code>\u00a0controlado la sentencia\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">continue<\/span><\/code>:<\/p>\n<div class=\"highlight-python notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"n\">variable<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">10<\/span>\r\n\r\n<span class=\"k\">while<\/span> <span class=\"n\">variable<\/span> <span class=\"o\">&gt;<\/span> <span class=\"mi\">0<\/span><span class=\"p\">:<\/span>              \r\n   <span class=\"n\">variable<\/span> <span class=\"o\">=<\/span> <span class=\"n\">variable<\/span> <span class=\"o\">-<\/span><span class=\"mi\">1<\/span>\r\n   <span class=\"k\">if<\/span> <span class=\"n\">variable<\/span> <span class=\"o\">==<\/span> <span class=\"mi\">5<\/span><span class=\"p\">:<\/span>\r\n      <span class=\"k\">continue<\/span>\r\n   <span class=\"nb\">print<\/span> <span class=\"p\">(<\/span><span class=\"s2\">\"Actual valor de variable:\"<\/span><span class=\"p\">,<\/span> <span class=\"n\">variable<\/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\">continue<\/span><\/code>\u00a0hace que pase de nuevo al principio del bucle aunque no se haya terminado de ejecutar el ciclo anterior.<\/p>\n<\/div>\n<\/div>\n<div id=\"ejemplos\" class=\"section\">\n<h2>Ejemplos<\/h2>\n<div id=\"sucesion-de-fibonacci\" class=\"section\">\n<h3>Sucesi\u00f3n de Fibonacci<\/h3>\n<p>Ejemplo de la\u00a0Sucesi\u00f3n de Fibonacci\u00a0con bucle\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">while<\/span><\/code>:<\/p>\n<div class=\"highlight-python notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"n\">a<\/span><span class=\"p\">,<\/span> <span class=\"n\">b<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">0<\/span><span class=\"p\">,<\/span> <span class=\"mi\">1<\/span>\r\n<span class=\"k\">while<\/span> <span class=\"n\">b<\/span> <span class=\"o\">&lt;<\/span> <span class=\"mi\">100<\/span><span class=\"p\">:<\/span>\r\n    <span class=\"nb\">print<\/span> <span class=\"p\">(<\/span><span class=\"n\">b<\/span><span class=\"p\">,)<\/span>\r\n    <span class=\"n\">a<\/span><span class=\"p\">,<\/span> <span class=\"n\">b<\/span> <span class=\"o\">=<\/span> <span class=\"n\">b<\/span><span class=\"p\">,<\/span> <span class=\"n\">a<\/span> <span class=\"o\">+<\/span> <span class=\"n\">b<\/span><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Bucle while En Python tiene una palabra reservada llamada\u00a0while\u00a0que nos permite ejecutar ciclos, o bien secuencias peri\u00f3dicas que nos permiten ejecutar c\u00f3digo m\u00faltiples veces. El ciclo\u00a0while\u00a0nos permite realizar m\u00faltiples iteraciones bas\u00e1ndonos en el resultado de una expresi\u00f3n l\u00f3gica que puede tener como resultado un valor\u00a0True\u00a0o\u00a0False. Tipos de Bucle \u201cwhile\u201d A continuaci\u00f3n, se presentan algunos ejemplos [&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-363","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\/363","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=363"}],"version-history":[{"count":1,"href":"https:\/\/equipomedios.com\/blog\/wp-json\/wp\/v2\/posts\/363\/revisions"}],"predecessor-version":[{"id":364,"href":"https:\/\/equipomedios.com\/blog\/wp-json\/wp\/v2\/posts\/363\/revisions\/364"}],"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=363"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/equipomedios.com\/blog\/wp-json\/wp\/v2\/categories?post=363"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/equipomedios.com\/blog\/wp-json\/wp\/v2\/tags?post=363"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}