Fuente: https://tinyurl.com/26z4bgv6
NOTA 1 de PPI: el recurso original esta en Ingles, se ha traducido con ayuda de la aplicación para traducir paginas web; por esta razón existe la posibilidad de que la sintaxis del texto no sea la mas precisa en algunos fragmentos.
8.3. El while Statement
La siguiente La figura muestra el flujo de control.
Aquí hay una nueva versión del programa de suma que usa una declaración de tiempo.
>> """ Return the sum of 1+2+3 ... n """
>> theSum = 0
>> aNumber = 1
>> while aNumber <= aBound:
>> theSum = theSum + aNumber
>> aNumber = aNumber + 1
>> return theSum
>>print(sumTo(4))
>>print(sumTo(1000))
Casi puedes leer el while declaración como si fuera en lenguaje natural. Significa,
mientras aNumber es menor o igual a aBound, continúa ejecutando el cuerpo del bucle. Dentro
El cuerpo, cada vez, actualiza theSum Usando el patrón de acumulador y el incremento aNumber. Después del cuerpo del bucle, volvemos a la condición del while y reevalúarlo. Cuando aNumber se vuelve mayor que aBound, la condición falla y el flujo de control continúa al return declaración.
El mismo programa en Codelens le permitirá observar el flujo de ejecución.
Nota 2. PPI: La evaluación del programa anterior en Colab obtiene:>>>10 >>>500500Para el parámetro aBound = 4 ocurre lo siguiente:
- Primera iteración:
- Segunda iteración:
aNumber = 2; theSum=1; MIENTRAS aNumber(2)<= aBound(4) entonces:
theSum = theSum + aNumber = 1 + 2 =3
aNumber = aNumber +1 = 2 +1 = 3
- Tercera iteración:
- Cuarta iteración:
- Quinta iteración:
Retomando la lectura original:
Más formalmente, aquí está el flujo de ejecución para un while declaración:
Evaluar la condición, cediendo
FalseoTrue.Si la condición es
False, salga delwhiledeclaración y continuar ejecución en la siguiente declaración.Si la condición es
True, ejecute cada una de las declaraciones en el cuerpo y Luego regrese al paso 1.
El cuerpo consta de todas las declaraciones debajo del encabezado con la misma sangría.
Este tipo de flujo se llama bucle porque el tercer paso vuelve a girar
a la cima. Observe que si la condición es False la primera vez a través del
bucle, las declaraciones dentro del bucle nunca se ejecutan.
Advertencia:
Aunque Python's while está muy cerca del inglés "while",
Hay una diferencia importante: en inglés "mientras x, do y",
Por lo general, asumimos que inmediatamente después de que X se vuelve falso, nos detenemos
hay no una parada inmediata: después del
Prueba inicial, cualquier prueba siguiente viene solo después de la ejecución de
el Todo cuerpo, incluso si la condición se vuelve falsa en el medio del cuerpo del bucle.
El cuerpo del bucle debe cambiar el valor de una o más variables para que
Finalmente la condición se convierte en False y el bucle termina. De lo contrario el
Loop se repetirá para siempre. Esto se llama un bucle infinito .
Un interminable
La fuente de diversión para los informáticos es la observación de que el
Instrucciones escritas en la parte posterior de la botella de champú (espuma, enjuague, repite) crean un bucle infinito.
En el caso que se muestra arriba, podemos probar que el bucle termina porque
saber que el valor de aBound es finito, y podemos ver que el valor de aNumber
incrementos cada vez a través del bucle, por lo que eventualmente tendrá que exceder aBound. En
Otros casos, no es tan fácil saberlo.
Nota
Introducción de la declaración Mientras que nos hace pensar en los tipos de iteración que hemos visto. El for
La declaración siempre iterará a través de una secuencia de valores
como la lista de nombres para la parte o la lista de números creados por
range. Como sabemos que iterará una vez para cada valor en la colección, a menudo se dice que un for el bucle crea un
iteración definitiva porque definitivamente sabemos cuántas veces vamos a iterar.
De otro lado, el while La declaración depende de una condición que deba evaluar False en orden
para que el bucle termine. Dado que no necesariamente sabemos cuándo sucederá esto, crea lo que
Llame a la iteración indefinida .
La iteración indefinida simplemente significa que no sabemos cuántas
veces repetiremos, pero eventualmente la condición que controla la
iteración fallará y la iteración se detendrá. (A menos que tengamos un
bucle infinito que, por supuesto, sea un problema).
Lo que notará aquí es que el while el bucle es más trabajo para
Usted - el programador - que el equivalente for bucle. Al usar un while
bucle debe controlar la variable de bucle usted mismo. Le das un valor inicial, prueba
Para su finalización, y luego asegúrese de cambiar algo en el cuerpo para que el bucle
termine.
Entonces, ¿por qué tener dos tipos de bucle si for ¿Parece más fácil? La siguiente sección, tortugas para caminar al azar , muestra una iteración indefinida donde
Necesitamos la potencia adicional que obtenemos del while bucle.
Nota de PPI: si esta interesado en el tema de la aplicación de while para el ejercicio
del caminar de las tortugas te invitamos a ingresar al enlace: https://tinyurl.com/2c5qa6r6

No hay comentarios.:
Publicar un comentario