{"id":2134,"date":"2020-06-23T09:07:09","date_gmt":"2020-06-23T14:07:09","guid":{"rendered":"https:\/\/naps.com.mx\/blog\/?p=2134"},"modified":"2020-06-29T14:27:35","modified_gmt":"2020-06-29T19:27:35","slug":"ejemplos-explicados-de-ciclos-while-en-python","status":"publish","type":"post","link":"https:\/\/naps.com.mx\/blog\/ejemplos-explicados-de-ciclos-while-en-python\/","title":{"rendered":"Ejemplos explicados de ciclos While en Python"},"content":{"rendered":"<p>Analiza los siguientes ejemplos explicados de ciclos While en Python. Se explica el uso de continue y break, y c\u00f3mo utilizar ciclos While para trabajar con listas en Python.<\/p>\n<p><!--more--><\/p>\n<div id=\"attachment_2141\" style=\"width: 1034px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2020\/06\/portada.001.jpeg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-2141\" class=\"size-full wp-image-2141\" src=\"https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2020\/06\/portada.001.jpeg\" alt=\"Aprende con ejemplos explicados de ciclos while en Python\" width=\"1024\" height=\"768\" srcset=\"https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2020\/06\/portada.001.jpeg 1024w, https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2020\/06\/portada.001-300x225.jpeg 300w, https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2020\/06\/portada.001-768x576.jpeg 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><p id=\"caption-attachment-2141\" class=\"wp-caption-text\">Aprende con ejemplos explicados de ciclos while en Python<\/p><\/div>\n<p>\u00c9ste art\u00edculo cuenta con explicaci\u00f3n en video. Cons\u00faltalo aqu\u00ed:\u00a0<a href=\"https:\/\/youtu.be\/akiAof1cnk8\" target=\"_blank\" rel=\"noopener\">https:\/\/youtu.be\/akiAof1cnk8<\/a><\/p>\n<p>Un ciclos While permite repetir una serie de instrucciones una cantidad determinada o indeterminada de veces.\u00a0Una ciclo while realiza un conjunto de instrucciones mientras una condici\u00f3n sea cierta (sea diferente de 0). Cuando la instrucci\u00f3n es 0 (o falso) se suspende la ejecuci\u00f3n del ciclo.<\/p>\n<h2>Cuando deseamos iterar un n\u00famero determinado de veces<\/h2>\n<p><strong>Ejemplo<\/strong>: Imprimir los n\u00fameros del 1 al 10<\/p>\n<pre class=\"lang:python decode:true \">i=0\r\nwhile i&lt;10:    \r\n    i+=1\r\n    print (i)<\/pre>\n<p><strong>Explicaci\u00f3n<\/strong>: La variable i contiene un dato num\u00e9rico que inicia en 0. El ciclo while \u00a0contiene una condici\u00f3n (i &lt; 10) que es evaluada (\u00bftrue o false?), mientras el resultado sea True ejecutar\u00e1 todas las lineas indentadas debajo de while. \u00c9stas l\u00edneas incrementan la variable i en 1 (i+=1), lo que eventualmente la llevar\u00e1 a valer 10 lo que har\u00e1 que abandone el ciclo.<\/p>\n<h2>Uso de continue y break en ciclos while en Python<\/h2>\n<p>Continue y break son dos instrucciones que cambian el comportamiento del ciclo.<\/p>\n<p>Continue detiene la ejecuci\u00f3n de la iteraci\u00f3n (vuelta) actual y pasa a la siguiente.<\/p>\n<p>Break detiene la ejecuci\u00f3n de la iteraci\u00f3n actual y de todas las dem\u00e1s (rompe el ciclo). Por ejemplo:<\/p>\n<pre class=\"lang:python decode:true\">i=0\r\nwhile i&lt;10:\r\n    i+=1\r\n    if i==7:\r\n        continue\r\n    print(i)\r\n\r\n<\/pre>\n<p>En el ejemplo anterior vemos dos ciclos, parecidos al anterior ya explicado. Hay un momento en el que se compara si i==7, y luego ocurre un continue. Es decir, cuando el valor sea 7, termina la iteraci\u00f3n actual (ya no ejecuta print(i)) y pasa a la siguiente iteraci\u00f3n (i+=1).<\/p>\n<h2>Ciclo infinito en Python<\/h2>\n<pre class=\"lang:python decode:true \">i =0\r\nwhile True:\r\n    i+=1\r\n    print(i)\r\n    if i==13:\r\n        break<\/pre>\n<p>En el ejemplo anterior se crea un ciclo infinito (while True). Con esto indicamos que el ciclo siempre se ejecuta pues while nunca obtiene un Falso. (<a href=\"https:\/\/books.google.com.mx\/books?id=3huyDwAAQBAJ&amp;lpg=PT128&amp;dq=ciclo%20infinito%20en%20python&amp;pg=PT128#v=onepage&amp;q=ciclo%20infinito%20en%20python&amp;f=false\" target=\"_blank\" rel=\"noopener\">Tudor, 2019<\/a>) \u00bfC\u00f3mo se sale del ciclo? Cuando i==13 se ejecuta la instrucci\u00f3n break. Eso termina la ejecuci\u00f3n de todo el ciclo.<\/p>\n<h2>Ejemplos explicados de ciclos while en Python<\/h2>\n<p>Considere el siguiente problema:<\/p>\n<p><em>Escriba un programa que acepte una secuencia de lineas\u00a0e imprima todas las lineas convertidas en mayusculas.\u00a0Deje una l\u00ednea en blanco para indicar que ha finalizado la entrada de lineas.\u00a0<\/em><\/p>\n<p><em>Por ejemplo, si la entrada es:<\/em><br \/>\n<em>De tal palo tal astilla<\/em><br \/>\n<em>En casa de herrero, azadon de palo<\/em><br \/>\n<em>A todo marrano le llega su noche buena<\/em><\/p>\n<p><em>Entonces la salida ser\u00eda:<\/em><br \/>\n<em>DE TAL PALO TAL ASTILLA<\/em><br \/>\n<em>EN CASA DE HERRERO, AZADON DE PALO<\/em><br \/>\n<em>A TODO MARRANO LE LLEGA SU NOCHE BUENA<\/em><\/p>\n<p><strong>An\u00e1lisis<\/strong>: Vamos a utilizar un ciclo infinito, pues no sabemos cu\u00e1ntas l\u00edneas de texto va a introducir el usuario. Adem\u00e1s, debemos saber cu\u00e1ndo introdujo una l\u00ednea en blanco para de esa forma salir del ciclo usando break. Todas las l\u00edneas debemos guardarlas en una lista y convertirlas a may\u00fasculas.<\/p>\n<p><strong>Soluci\u00f3n<\/strong>:<\/p>\n<pre class=\"lang:python decode:true\">lineas = []\r\nprint (\"Escriba algunas lineas. Deje en blanco para finalizar: \")\r\nwhile True:\r\n    s = input()\r\n    if s:\r\n        lineas.append(s.upper())\r\n    else:\r\n        break;\r\n\r\nfor refran in lineas:\r\n    print (refran)<\/pre>\n<p><strong>Explicaci\u00f3n<\/strong>: Creamos una \u00a0lista vac\u00eda (lineas=[ ]), y damos una instrucci\u00f3n al usuario (print(\u00abescriba algunas l\u00edneas\u00bb)). Usamos un ciclo infinito (while True) y recibimos datos del usuario guard\u00e1ndolos en s (s = input()). Comparamos si s tiene algo (if s), en tal caso, a\u00f1adimos (.<a href=\"https:\/\/naps.com.mx\/blog\/listas-en-python\/\">append<\/a>) el dato escrito por el usuario convertido a may\u00fascula (<a href=\"https:\/\/naps.com.mx\/blog\/impresion-de-cadenas-en-python\/\">s.upper<\/a>()) a la lista (lineas). Si s no tiene nada (else), usamos break para salir del ciclo. Fuera del ciclo while hacemos un <a href=\"https:\/\/naps.com.mx\/blog\/uso-de-for-en-python-usando-listas\/\">for<\/a> para recorrer toda la lista (lineas) imprimiendo cada dato guardado en ella.<\/p>\n<h3>Veamos otro problema:<\/h3>\n<p><em>Escriba un programa que administre una cuenta bancaria, usando una bit\u00e1cora de operaciones.<\/em><br \/>\n<em>La bit\u00e1cora de operaciones tiene la siguiente forma:<\/em><br \/>\n<em>D 100<\/em><br \/>\n<em>R 50<\/em><\/p>\n<p><em>D 100 significa que deposit\u00f3 100 pesos<\/em><br \/>\n<em>R 50 significa que retir\u00f3 50 pesos<\/em><\/p>\n<p><em>Ejemplo de una entrada:<\/em><br \/>\n<em>D 200<\/em><br \/>\n<em>D 200<\/em><br \/>\n<em>R 100<\/em><br \/>\n<em>D 50<\/em><br \/>\n<em>Introducir una linea vacia indica que ha finalizado la bitacora.<\/em><br \/>\n<em>La salida de \u00e9ste programa ser\u00eda:<\/em><br \/>\n<em>350<\/em><\/p>\n<p><strong>An\u00e1lisis<\/strong>: Vamos a utilizar un ciclo infinito pues no sabemos cu\u00e1ntas l\u00edneas tendr\u00e1 la bit\u00e1cora. Debemos detectar cuando introduzca una l\u00ednea en blanco. Cada linea hay que separar la primera letra del valor num\u00e9rico. Si la letra es \u00abD\u00bb, sumar a saldo el valor num\u00e9rico. Si la letra es \u00abR\u00bb, restar a saldo el valor num\u00e9rico.<\/p>\n<p><strong>Soluci\u00f3n<\/strong>:<\/p>\n<pre class=\"lang:python decode:true \">saldo = 0\r\nprint (\"Escriba la bitacora de operaciones: \")\r\nwhile True:\r\n    s = input()\r\n    if not s:\r\n        break\r\n    datos = s.split(\" \")\r\n    operacion = datos[0]\r\n    monto = int(datos[1])\r\n    if operacion==\"D\":\r\n        saldo+=monto\r\n    elif operacion==\"R\":\r\n        saldo-=monto\r\n    else:\r\n        pass\r\nprint (saldo)<\/pre>\n<p><strong>Explicaci\u00f3n<\/strong>: La variable que deseamos calcular es saldo, por lo que la iniciamos en cero (saldo = 0). Enviamos un mensaje al usuario (print (\u00abEscriba la bit\u00e1cora\u00bb)) e iniciamos un ciclo infinito (while True). Dentro del ciclo, leemos datos del usuario (s = input) y lo guardamos en s. Verificamos si s est\u00e1 vac\u00eda (if not s) en tal caso haremos break, lo que nos sacar\u00e1 inmediatamente del ciclo. Por lo contrario, contin\u00faa la ejecuci\u00f3n, haciendo separando la letra de los n\u00fameros, considerando que hay un espacio en blanco entre ellos (datos = <a href=\"https:\/\/naps.com.mx\/blog\/ejemplos-de-for-en-python-usando-listas-split\/\">s.split<\/a>(\u00bb \u00ab). Ahora tenemos en datos dos valores, el primero lo guardamos en la variable operacion (operacion = datos[0]) y el segundo en monto ya convertido a entero (monto = <a href=\"https:\/\/naps.com.mx\/blog\/conversion-de-cadenas-en-python-y-uso-de-format\/\">int(datos [1]<\/a>). Comparamos si el valor de operacion es D (if operacion == \u00abD\u00bb), en tal caso sumamos el valor de monto a saldo. Hacemos lo mismo pero restando si la operaci\u00f3n es \u00abR\u00bb. Fuera del ciclo imprimimos saldo.<\/p>\n<p>Espero que \u00e9stos ejemplos explicados de ciclos while te permitan comprender \u00e9sta instrucci\u00f3n en Python.<\/p>\n<p>Puedes ver \u00e9sta misma explicaci\u00f3n en video, con la ejecuci\u00f3n de los programas. Te lo dejo aqu\u00ed:<\/p>\n<p><iframe loading=\"lazy\" width=\"1280\" height=\"545\" src=\"https:\/\/www.youtube.com\/embed\/akiAof1cnk8\" frameborder=\"0\" allow=\"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen=\"allowfullscreen\"><\/iframe><\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Analiza los siguientes ejemplos explicados de ciclos While en Python. Se explica el uso de continue y break, y c\u00f3mo utilizar ciclos While para trabajar con listas en Python.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"amp_status":"","footnotes":""},"categories":[301,188],"tags":[287,286,297],"class_list":["post-2134","post","type-post","status-publish","format-standard","hentry","category-curso-python-analisis-datos","category-programacion-basica","tag-curso-python","tag-ejercicios-python","tag-while"],"_links":{"self":[{"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/posts\/2134","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/comments?post=2134"}],"version-history":[{"count":9,"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/posts\/2134\/revisions"}],"predecessor-version":[{"id":2148,"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/posts\/2134\/revisions\/2148"}],"wp:attachment":[{"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/media?parent=2134"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/categories?post=2134"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/tags?post=2134"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}