laços aninhados (nested loops)

1. laços aninhados (nested loops)

LINER DE SOUZA SANTOS
linersantos

(usa Ubuntu)

Enviado em 21/01/2022 - 18:08h

Ola.
Estou precisando fazer um codigo que usa laços aninhados (um dentro do outro) mas esta dando erro. Escrevi da seguinte forma:
x = 0
y = 0
while(x<1):
while(y<1):
print(x,y)
y+= 0.1
x+= 0.1


e a saida está assim:
0 0
0 0.1
0 0.2
0 0.3
0 0.4
0 0.5
0 0.6
0 0.7
0 0.8
0 0.9
Nao sei porque o x nao esta mudando de valor. Eram pra aparecer 100 elementos e soh aparecem 10.


  


2. Re: laços aninhados (nested loops)

leandro peçanha scardua
leandropscardua

(usa Ubuntu)

Enviado em 21/01/2022 - 21:37h

vc precisa zerar a variável yno início do 1o loop
x = 0
y = 0
while(x<1):
y=0 // <----------
while(y<1):
print(x,y)
y+= 0.1
x+= 0.1


3. Re: laços aninhados (nested loops)

Lisandro Guerra
Lisandro

(usa Linux Mint)

Enviado em 24/01/2022 - 19:36h

Primeiro o x só vai mudar quando o y chegar no fim do ciclo e aí teria que reiniciar, mas naõ vai imprimir pois teu print está dentro do laço interno que vaõ doda mais depois que o valor de y é > 1.
Vou te dar uma sugestão.
Vai neste site e cola teu código lá:
https://pythontutor.com/visualize.html#mode=edit
Tu vais poder acompanhar linha a linha a execução e os valores das variáveis e verás que o valor de x aumenta, mas não aparece, pois o valor de y já ultrapassou 1 e o print não é executado.

Se ali no teu programa tu repetir o print no fim dele, vai conseguir ver o valor final das variáveis e constatar o que estou falando.


Abraço


4. Re: laços aninhados (nested loops)

joao lucas
liso1201

(usa Outra)

Enviado em 16/03/2022 - 11:16h

veja bem, vamos rodar o seu programa comentando ele:

x = 0
y = 0
while(x<1):
while(y<1):
print(x,y)
y+= 0.1
x+= 0.1

X e Y recebem zero. agora entramos no laço, se x<1, entra no OUTRO laço,e neste laço ocorrem os prints sem alteração do X, apenas do Y, dado que y = 1 saimos do laço aninhado ao primeiro e agora inicia-se o incremento do X, MAS, não há instrução de implimi-lo na tela, entao o CPU esta cumprindo oque voce pediu mas nao esta printando na tela. Eu não sei exatamente ao certo a sequencia que voce deseja criar, mas a conclusão é, tente reajustar e adicionar a função Print().