Pergunta sobre "for in range():"

Pergunta sobre "for in range():"

por José Coelho de Pina -
Número de respostas: 5

Ois,

Qual o resultado do trecho de código a seguir?

Python 3.6.1 (default, Mar 22 2017, 06:17:05) 
[GCC 6.3.0 20170321] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> n = 10
>>> for i in range(10):
...     print(i)
...     i = n
... 
Em resposta à José Coelho de Pina

Re: Pergunta sobre "for in range():"

por Yuri Vargas Guedes -
Em resposta à Yuri Vargas Guedes

Re: Pergunta sobre "for in range():"

por Carlos Hitoshi Morimoto -

mas por que o for não para quando o i recebe n?

Em resposta à Carlos Hitoshi Morimoto

Re: Pergunta sobre "for in range():"

por Pedro T. R. Pinheiro -
Em resposta à Pedro T. R. Pinheiro

Re: Pergunta sobre "for in range():"

por João Henrique Luciano -

A pergunta do prof. Hitoshi  remete ao fato de que esse loop "for i in range( n )" seria, em tese, o equivalente em Java (ou C/C++) a "for (int i = 0; i < n; i++)". Se eles são equivalentes, nessa sintaxe de Java/C/C++, ao fazer a atribuição "i = n" no final do loop, logo na primeira iteração o programa já sairia do loop, fazendo com que o resultado printado na tela seja:

0

 

ao invés de

0

1

2

3

4

5

6

7

8

9

 

 

Assim sendo, por que em Python, usando essa forma de iteração ("for i in rangeNão") o loop não pára depois da primeira iteração também?

 

 

Em resposta à José Coelho de Pina

Re: Pergunta sobre "for in range():"

por Cindy Evellyn de Araujo Silva -

Ao que me parece, a cada iteração o i recebe o valor de cada passo independentemente se você mudar o nome da variável. O for tem um número pré-determinado de loops e ele o segue número até o fim, exceto se você der um break com uma condição de parada, como "if i == n: break"*.

Codelens com as iterações: https://goo.gl/BPzvNa

Codelens com o break: https://goo.gl/z4vs3S

 

 

* vi esse negócio todo no Wikipedia (https://en.wikipedia.org/wiki/Control_flow#Loops).