(Python) Loops. Loop com contador - para


Laços

Imagine uma situação em que precisamos exibir a palavra "Olá" 10 vezes. O que devemos fazer?
Você pode pegar e escrever o comando 10 vezes print("Hello") print("Olá") print("Olá") print("Olá") print("Olá") print("Olá") print("Olá") print("Olá") print("Olá") print("Olá") print("Olá")
Mas e se você precisar não 10 vezes, mas 20, 30, 40 vezes? E se 200 vezes? Nesse caso, a cópia levará muito tempo. E se for necessário que o próprio usuário possa escolher quantas vezes precisa exibir alguma informação na tela? 

Uma construção especial nos ajudará a lidar com essa tarefa, que se chama loop.
 
Um loop - é uma construção algorítmica na qual uma determinada sequência de comandos é repetida várias vezes.< /div>
Na maioria das linguagens de programação, existem dois tipos de loops: um loop com uma variável (for) e um loop com uma condição (while)
Vamos começar nosso conhecimento dos ciclos do primeiro tipo.
 

Loop com uma variável ou com um número conhecido de passos (loop for)

Muitas vezes, sabemos o número de repetições de qualquer ação ou podemos calcular o número de repetições usando os dados que conhecemos. Algumas linguagens de programação têm um comando escrito em russo pelo comando
REPEAT (number_of_repetitions).

Neste caso, podemos especificar um número específico de repetições. 
É interessante ver como esse ciclo funciona no nível da máquina:
1. uma determinada célula de memória é alocada na memória e o número de repetições é gravado nela,
2. quando o programa executa o corpo do loop uma vez, o conteúdo desta célula (contador) é decrementado em um.
3. a execução do loop termina quando esta célula é zero.

Não existe tal construção em Python, mas existe um para.
 
É preciso lembrar!
A forma geral do operador de loop for é a seguinte: para <variável de contagem> em <valores da variável do contador>:     # corpo do loop
1. O nome da variável do contador pode ser qualquer coisa (mais frequentemente eles usam a letra i)
2. O corpo do loop é escrito com um deslocamento para a direita, em relação à linha com o cabeçalho do loop (for). O padrão PEP8 muda em 4 espaços.
 
Vamos ver exemplos de como você pode escrever a saída da palavra "Olá" 10 vezes.
 
Exemplo 1
for i in range(10): # for variables i mutable in range (in range)   # 0 a 10 (10 não está incluído) print("Olá") # imprime Olá A variável   é um contador de iterações concluídas (etapas) do loop. Neste caso, o loop é executado para i = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Isso é exatamente 10 vezes.
O mesmo programa pode ser escrito de forma diferente.
 
Exemplo 2
para i em [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]: print("Olá") No exemplo 2, listamos todos os valores da variável i para os quais precisamos fazer um loop. Com um grande número de valores, é mais conveniente usar a função integrada range().
A sequência de valores construída pela função range() é finita. O loop sempre terminará. 

Recursos do loop for

Como mudar o passo na sequência de valores e não começar do zero? A função  range(), por padrão, constrói uma sequência na qual cada próximo número é 1 maior que o anterior. Você pode usar a função intervalo em outra entrada.

A forma geral da entrada da função é a seguinte: range([start], stop[, step])
  • start: número inicial da sequência.
  • stop: gera números até, mas não incluindo, o número fornecido.
  • step: a diferença entre cada número na sequência (step)

Você tem que se lembrar!
  • Todos os parâmetros devem ser inteiros:
  • Cada um dos parâmetros pode ser positivo ou negativo.
  • range() (e Python em geral) é baseado no índice 0. Isso significa que a lista de índices começa em 0, não em 1.  O último inteiro gerado pela função  range() depende de stop mas não o incluirá. Por exemplo, range(0, 5) gera os inteiros 0, 1, 2, 3, 4, sem incluir 5.


Exemplo 1
para i no intervalo (10, 0, -1): imprimir(i*i) O programa exibe os quadrados dos números naturais de 10 a 1 em ordem decrescente
  • 10: o primeiro número da sequência.
  • 0: número final da sequência (não incluindo este número).
  • -1: passo


Exemplo 2
para i no intervalo (0, 101, 5): imprimir(i) O programa exibe todos os números de 0 a 100 em incrementos de 5
  • 0: o primeiro número da sequência.
  • 101: número final da sequência (não incluindo este número).
  • 5: passo

Repetir N vezes

Todos os programas com um loop for que escrevemos até agora não podem ser chamados de universais. Porque nós mesmos definimos o número de repetições do corpo do loop. 
Mas e se o número de repetições depender de algum outro valor? Por exemplo, o próprio usuário deseja definir o número de repetições do ciclo.
O que fazer neste caso?
Tudo é muito simples. Em vez de valores iniciais e finais numéricos, podemos usar quaisquer variáveis ​​que possam ser calculadas ou definidas pelo usuário.

Por exemplo, precisamos exibir os quadrados dos números de 1 a N, onde o valor da variável N é inserido no teclado por o usuário.
O programa ficará assim: N = int(input()) # digita N do teclado for i in range(1, N+1): # loop: for all i from 1 to N  - variável i # assumirá sequencialmente valores de 1 a N   print("quadrado", i, "=", i*i)  # imprime o quadrado de um número Ao entrar no loop, a instrução de atribuição i = 1 é executada e, em seguida, a variável i é incrementada em um a cada etapa (i += 1). O loop é executado enquanto a condição i <= N for verdadeira. No corpo do loop, a única instrução de saída imprime o próprio número e seu quadrado na tela de acordo com o formato especificado.
Para elevar ao quadrado ou outros expoentes baixos, é melhor usar a multiplicação.

Execute o programa e veja o resultado de seu trabalho com diferentes valores da variável N.