bucle while en Python. Como funciona, exemplos de uso

Os bucles son unha das principais ferramentas de calquera lingua. Hai dous bucles básicos en Python, un dos cales é while. Consideralo, e tamén para unha mellor comprensión da imaxe, un máis. De feito, en comparación con algo semellante, é moito máis fácil entender calquera material, non si?

O concepto de ciclo

Un bucle é necesario cando unha determinada acción debe realizarse varias veces. Isto é moi simplista, porque en realidade o abano de aplicacións dos ciclos é moito máis amplo. Hai dous tipos principais de bucles en Python: for e while. O máis popular é para.

Ademais de accións específicas, podes recorrer diferentes pezas de código ata un determinado punto. Isto pode ser un certo número de veces, ou sempre que unha determinada condición sexa verdade.

Antes de comezar a comprender os tipos de bucles e mentres, en particular, aínda temos que entender o que é a iteración. Esta é unha repetición dunha acción ou secuencia de accións durante o ciclo actual dentro da execución da aplicación actual.

Ciclo Para

O noso bucle For non é un contador, como en moitos outros idiomas. A súa tarefa é enumerar unha determinada secuencia de valores. Que significa isto? Digamos que temos unha lista de elementos. En primeiro lugar, o bucle toma o primeiro, segundo, terceiro, etc.

A vantaxe deste bucle en Python é que non precisa determinar o índice do elemento para saber cando saír do bucle. Todo farase automaticamente.

>>> spisok = [10, 40, 20, 30]

>>> para o elemento en spisok:

… imprimir(elemento + 2)

...

12

42

22

32

No noso exemplo, usamos a variable elemento despois do comando for. En xeral, o nome pode ser calquera cousa. Por exemplo, unha designación popular é i. E con cada iteración, esta variable será asignada a un obxecto específico da lista, que chamamos a palabra adecuada.

No noso caso, a lista é unha secuencia de números 10,40,20,30. En cada iteración, o valor correspondente aparece na variable. Por exemplo, en canto comeza o bucle, a variable elemento asígnase o valor 10. Na seguinte iteración, o dez convértese no número 40, a terceira vez no número 20 e, finalmente, na última iteración do bucle, convértese en 30.

O sinal de fin do ciclo é o final dos elementos da lista.

Se necesitas o bucle para realizar unha enumeración clásica de valores, como noutras linguaxes de programación, debes crear unha lista cunha secuencia de números naturais ata o valor que necesitemos.

>>> spisok = [1,2,3,4,5]

Ou use a función len(), para determinar a lonxitude da lista. Pero neste caso é mellor usar un bucle mentres, porque non hai necesidade de utilizar unha variable.

Se necesitas cambiar a secuencia de valores da lista, fai un bucle para e aquí vén ao rescate. Para iso, en cada iteración, a cada elemento da lista débese asignar un valor axeitado.

Bucle While

A diferenza do ciclo para, que simplemente itera sobre os valores da secuencia, o bucle mentres ten máis usos. O nome deste tipo de ciclos tradúcese como "aínda". É dicir, "ata".

Este é un bucle universal que se atopa en todas as linguaxes de programación. E nalgúns aspectos parécese a un operador condicional teixo, que realiza unha comprobación para ver se se cumpre unha determinada condición. Só en contraste co operador condicional, mentres realiza a comprobación en cada iteración, non só unha vez. E só se a condición é falsa, o bucle remata e execútase o comando que o segue. En palabras sinxelas, se xa non vale a situación na que traballa.

Se debuxamos un ciclo mentres simplista, isto faise usando tal esquema.bucle while en Python. Como funciona, exemplos de uso

A rama principal do programa (que se executa fóra do bucle) represéntase nesta figura con rectángulos azuis. A turquesa representa o corpo do ciclo. Á súa vez, un rombo é unha condición que se verifica en cada iteración.

Ciclo mentres pode dar lugar a dúas excepcións:

  1. Se ao comezo do bucle a expresión lóxica non devolve verdadeira, entón simplemente non comeza, tendo completado antes da execución. En xeral, esta situación é normal, porque en determinadas circunstancias, a aplicación pode non prever a presenza de expresións no corpo do bucle.
  2. Se a expresión é sempre verdadeira, isto pode levar a un bucle. É dicir, ao desprazamento interminable do ciclo. Polo tanto, en tales programas, sempre debería haber unha instrución de saída do bucle ou programa. Non obstante, esta situación producirase se o programa foi capaz de determinar a verdade ou a falsidade dunha determinada condición. Se non conseguiu facelo, devólvese un erro ao finalizar o programa. Ou pode xestionar o erro e, se ocorre, executarase certo código.

Pode haber unha gran cantidade de opcións sobre como xestionar un erro. Por exemplo, o programa pode pedirlle ao usuario que introduza os datos correctamente. Entón, se unha persoa indicou un número negativo onde só pode ser positivo, ou introduciu letras onde só deberían estar números, o programa pode dicir sobre iso.

Exemplos de bucles While

Aquí tes un exemplo de código que xestiona un erro neste caso.

n = input ("Introduza un número enteiro: ") 

mentres que tipo(n) != int:

    Tentar:

        n = int(n)

    excepto ValueError:

        print("Entrada incorrecta!")

        n = input ("Introduza un número enteiro: ") 

se n % 2 == 0:

    imprimir ("Aínda")

senón:

    imprimir ("Impar")

Teña en conta que Python usa dous puntos para declarar construcións de código complexas.

No código anterior, definimos como unha condición que debemos comprobar se o número é un número enteiro. Se si, devólvese false. Se non, entón é certo.

Na segunda parte do código, onde se utiliza o operador if, usamos o operador % para atopar o resto despois da operación de división. O seguinte paso é comprobar se o número é par. Se non, entón o resto é un neste caso. En consecuencia, o número é impar. 

En termos sinxelos, o código anterior comproba primeiro se a cadea introducida polo usuario é un número. En caso afirmativo, faise unha segunda comprobación para ver se queda un resto da división por dous. Pero o segundo bloque non se executará ata que o valor introducido polo usuario sexa numérico.

É dicir, o bucle executarase regularmente ata que se produza a condición. Nesta situación, funciona así. 

É dicir, pódese ir do contrario: realizar un bucle dunha determinada acción ata que o evento se faga falso.

Análise de código

Agora vexamos con máis detalle como funciona este código. Para iso, analizarémolo paso a paso.

  1. En primeiro lugar, o usuario introduce unha cadea, que é aceptada pola variable n. 
  2. Usando un bucle mentres compróbase o tipo desta variable. Na primeira entrada, non é igual int. Polo tanto, como resultado da proba, compróbase que esta condición é certa. Polo tanto, introdúcese o corpo do bucle.
  3. Coa axuda dun operador intentar estamos tentando converter unha cadea nun número. Se se fai isto, non se produce ningún erro. En consecuencia, non é necesario procesala. Polo tanto, o intérprete volve ao principio do bucle e, segundo os resultados da comprobación, resulta que se converteu nun número enteiro. Entón, imos ao paso 7
  4. Se a conversión non foi exitosa, xógase un ValueError. Neste caso, o fluxo do programa envíase ao manejador except.
  5. O usuario introduce un novo valor, que se asigna á variable n.
  6. O intérprete volve ao paso 2 e verifica de novo. Se é un valor enteiro, vai ao paso 7. Se non, a conversión téntase de novo segundo o paso 3.
  7. Coa axuda dun operador if Determina se hai resto despois de dividir un número por 2. 
  8. Se non, devólvese o texto "par".
  9. Se non, devólvese o texto "impar".

Considere agora un exemplo deste tipo. Tenta determinar cantas veces pasará este ciclo?

Total = 100 

i = 0

mentres i < 5:

    n = int(entrada())

    total = total — n

    i = i + 1 

imprimir ("Restante", total)

A resposta correcta é 5. Inicialmente, o valor da variable i – cero. O intérprete comproba se a variable é igual i 4 ou menos. Se si, devólvese o valor. certo, e o bucle execútase en consecuencia. O valor increméntase nun.

Despois da primeira iteración, o valor da variable pasa a ser 1. Realízase unha comprobación e o programa entende que este número volve ser inferior a 5. En consecuencia, o corpo do bucle execútase por segunda vez. Dado que os pasos son similares, o valor tamén increméntase nun e a variable agora é igual a 2.

Este valor tamén é inferior a cinco. Despois execútase o bucle unha terceira vez, engádese á variable i 1 e asígnaselle o valor 3. Este é de novo menos de cinco. E así chega á sexta iteración do bucle, na que o valor da variable i é igual a 5 (a fin de contas, orixinalmente era cero, polo que recordamos). En consecuencia, esta condición non pasa a proba e o bucle termina automaticamente e lévase a cabo a transición ao seguinte paso, que está fóra del (ou a terminación do programa, se non se proporcionan os seguintes pasos).

O ciclo tamén pode ocorrer en sentido contrario. Aquí tes un exemplo de código onde, con cada iteración posterior, un se resta ao valor actual da variable. 

Total = 100 

mentres que total > 0:

    n = int(entrada())

    total = total — n 

print ("Recurso esgotado")

Tenta adiviñar o que fai este programa! Imaxina iso nunha variable total gárdase información sobre o recurso do programa. Cada vez que o intérprete comproba se o recurso existe. Se non, móstrase o texto "Recurso esgotado" e o programa péchase. E con cada iteración do bucle, o recurso diminúe no número que especifique o usuario.

E agora os deberes. Proba a cambiar o código anterior para que a variable non poida ser físicamente negativa. 

4 Comentarios

  1. si code ahaan usoo gudbi

Deixe unha resposta