(Python) Bucles. Bucle con contador - para


Bucles

Imagine una situación en la que necesitamos mostrar la palabra "Hola" 10 veces. ¿Qué debemos hacer?
Puedes tomar y escribir el comando 10 veces print("Hola") imprimir("Hola") imprimir("Hola") imprimir("Hola") imprimir("Hola") imprimir("Hola") imprimir("Hola") imprimir("Hola") imprimir("Hola") imprimir("Hola") imprimir("Hola")
Pero, ¿y si no necesita 10 veces, sino 20, 30, 40 veces? ¿Y si 200 veces? En este caso, la copia llevará mucho tiempo. ¿Y si es necesario que el propio usuario pueda elegir cuántas veces necesita mostrar alguna información en pantalla? 

Una construcción especial nos ayudará a hacer frente a esta tarea,  que se llama bucle.
 
Un bucle: es una construcción algorítmica en la que una determinada secuencia de comandos se repite varias veces.< /div>
En la mayoría de los lenguajes de programación, hay dos tipos de bucles: un bucle con una variable (for) y un bucle con una condición (while)
Comencemos nuestro conocimiento de los ciclos desde el primer tipo.
 

Bucle con una variable, o con un número conocido de pasos (bucle for)

A menudo sucede que conocemos el número de repeticiones de cualquier acción, o podemos calcular el número de repeticiones utilizando los datos que conocemos. Algunos lenguajes de programación tienen un comando que está escrito en ruso por el comando
REPETIR (número_de_repeticiones).

En este caso, podemos especificar un número específico de repeticiones. 
Es interesante ver cómo funciona este ciclo a nivel de máquina:
1. una determinada celda de memoria se asigna en la memoria y se escribe en ella el número de repeticiones,
2. cuando el programa ejecuta el cuerpo del bucle una vez, el contenido de esta celda (contador) se reduce en uno.
3. La ejecución del ciclo finaliza cuando esta celda es cero.

No existe tal construcción en Python, pero hay un for.
 
¡Necesito recordar!
La forma general del operador de bucle for es la siguiente: para <variable de recuento> en <valores de la variable contador>:     # cuerpo del bucle
1. El nombre de la variable de contador puede ser cualquier cosa (más a menudo usan la letra  i)
2. El cuerpo del ciclo se escribe con un desplazamiento a la derecha, en relación con la línea con el encabezado del ciclo (for). El estándar PEP8 se desplaza 4 espacios.
 
Veamos ejemplos de cómo puedes escribir la salida de la palabra "Hello" 10 veces.
 
Ejemplo 1
for i in range(10): # for variable i mutable in range (en rango)   # 0 a 10 (10 no está incluido) print("Hola") # imprimir Hola La variable   es un contador de iteraciones completadas (pasos) del bucle. En este caso, el ciclo se ejecuta para i = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Eso es exactamente 10 veces.
El mismo programa se puede escribir de forma diferente.
 
Ejemplo 2
para i en [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]: imprimir("Hola") En el ejemplo 2, enumeramos todos los valores de la variable i para los que necesitamos hacer un bucle. Con una gran cantidad de valores, es más conveniente usar la función integrada range().
La secuencia de valores construida por la función  range() es finita. El bucle siempre terminará. 

Características del bucle for

¿Cómo cambiar el paso en la secuencia de valores y no empezar de cero? La función  range(), por defecto, crea una secuencia en la que cada número siguiente es 1 mayor que el anterior. Puede utilizar la función rango en otra entrada.

La forma general de la entrada de función es la siguiente: rango([inicio], parada[, paso])
  • start: número de inicio de la secuencia.
  • stop: genera números hasta el número dado pero sin incluirlo.
  • paso: la diferencia entre cada número en la secuencia (paso)

¡Tienes que recordar!
  • Todos los parámetros deben ser números enteros:
  • Cada uno de los parámetros puede ser positivo o negativo.
  • range() (y Python en general) se basa en el índice 0. Esto significa que la lista de índices comienza en 0, no en 1.  El último entero generado por la función  range() depende de stop pero no lo incluirá. Por ejemplo, range(0, 5) genera los números enteros 0, 1, 2, 3, 4, sin incluir el 5.


Ejemplo 1
para i en rango (10, 0, -1): imprimir (i * i) El programa muestra los cuadrados de los números naturales del 10 al 1 en orden descendente
  • 10: el primer número de la secuencia.
  • 0: número final de la secuencia (sin incluir este número).
  • -1: paso


Ejemplo 2
para i en rango (0, 101, 5): imprimir (yo) El programa muestra todos los números del 0 al 100 en incrementos de 5
  • 0: el primer número de la secuencia.
  • 101: número final de la secuencia (sin incluir este número).
  • 5: paso

Repetir N veces

Todos los programas con un bucle for que hemos escrito hasta ahora no pueden llamarse universales. Porque nosotros mismos establecemos el número de repeticiones del cuerpo del loop. 
Pero, ¿y si el número de repeticiones depende de algún otro valor? Por ejemplo, el propio usuario quiere establecer el número de repeticiones del ciclo.
¿Qué hacer en este caso?
Todo es muy simple. En lugar de valores numéricos de inicio y fin, podemos usar cualquier variable que el usuario pueda calcular o establecer.

Por ejemplo, necesitamos mostrar los cuadrados de los números desde 1 a N, donde el valor de la variable N se ingresa desde el teclado mediante el usuario.
El programa se verá así: N = int(input()) # ingresa N desde el teclado for i in range(1, N+1): # loop: for all i from 1 to N  - variable i # tomará secuencialmente valores de 1 a N   print("cuadrado", i, "=", i*i)  # imprime el cuadrado de un número Al ingresar al bucle, se ejecuta la declaración de asignación i = 1, y luego la variable i se incrementa en uno con cada paso (i += 1). El bucle se ejecuta mientras la condición i <= N es verdadera. En el cuerpo del bucle, la única declaración de salida imprime el número en sí y su cuadrado en la pantalla según el formato especificado.
Para elevar al cuadrado u otros exponentes bajos, es mejor usar la multiplicación.

Ejecute el programa y vea el resultado de su trabajo con diferentes valores de la variable N.