Por que não posso modificar a variável de loop 'for' em Python?
Uma coisa que um programador precisa aprender é que existem muitas ferramentas diferentes que realizam tarefas semelhantes, mas de maneiras diferentes. Neste caso o seu objetivo e o método que você está usando são't completamente compatível. Existe provavelmente uma maneira de forçar o código a fazer o que você quer em um loop, mas existem melhores métodos de loop para realizar a sua tarefa.
Parece que o que você está procurando é um loop que começa em zero e conta até 10 por 2s. Você está correto, o intervalo está basicamente criando uma lista de todos os números entre 0 e 10 (não inclusivo). Isto significa que se você fosse imprimir a lista gerada por intervalo(0, 10) você teria [0, 1, 2, 3, 4, 5, 6, 7, 7, 8, 9]. O que você está fazendo é passar pela lista um item de cada vez e armazenar temporariamente esse valor em uma variável chamada x.
Para o primeiro passo através do loop X = 0. Então você imprime isso para a tela. Então você define x = x + 2 agora x = 2. Então você pula de volta para o topo do laço. Você ainda não chegou ao fim da lista, então você cria uma variável chamada x e armazena 1 nela. Isso sobrescreve a mudança que você fez ao fazer x = x + 2. Então quando você imprime x você recebe um valor que você'não está esperando. Isto é o que é conhecido como um bug/erro lógico. Seu código usa a sintaxe correta mas lhe dá um resultado inesperado.
A função range tem um argumento opcional que você poderia facilmente usar para fazer seu código agir como esperado. O argumento opcional permite que você dê os passos de tamanho que quiser enquanto conta do número inicial ao número final. Para usar isso você poderia digitar range(0, 15, 5)
Se você fosse imprimir essa lista você'obteria [0, 5, 10] a razão pela qual você não't vê 15 é porque o ponto de parada é't incluído na lista. Se mudássemos para o intervalo de impressão(0,16,5) obteríamos [0, 5, 10, 15].
Dado o seu novo conhecimento você deveria ser capaz de modificar o seu for loop para fazer o que você quer. Uma tarefa similar também poderia ser realizada com um loop while. Como em quase todas as coisas de programação, há mais de uma resposta para o seu problema. Parte da batalha é escolher a ferramenta correta para a tarefa em questão. No final das contas eu acho que um loop while é mais adequado para a sua tarefa.
Artigos semelhantes
- Como retornar um nome de variável em Python (por exemplo, b = 3, eu quero imprimir b como str)
- Como chamar uma variável de outra função em Python
- Como obter um valor de variável de uma classe para outra classe em Python
- Na Unidade 3d, como posso decidir que variável devo manter como Pública, Protegida ou Interna?