1
resposta

implementação da variável que controla o for

for x in range(1,5):
    print(x)
    x = 10

Por que que quando eu rodo isso a saída é 1,2,3,4 e não apenas 1 ????

1 resposta

Oi Gabriel, tudo bem ?

Isto acontece porque quando chamamos a função range ela irá nos gerar uma sequência que deve ser iterada dentro daquele intervalo, e esta sequência é imutável. No caso do seu código, ela irá gerar uma sequência de 1 a 4, sendo assim, nada que você faça dentro deste loop irá alterar esta sequência, pois, como dito, a mesma é imutável.

Quando queremos alterar um valor dinamicamente dentro de um loop é interessante que trabalhemos com o laço while, pois ele não tem esta restrição. Por exemplo:

x = 1
while(x < 5):
    print(x)
    x = 10
    x+=1

Mas é importante ressaltar que podemos parar um loop a qualquer momento usando o break, então, no caso do seu código, poderíamos fazer:

for x in range(1,5):
    print(x)
    x = 10
    break

Pegou a ideia?

Qualquer dúvida estou a disposição. Espero ter ajudado. Bons estudos!!!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software