Fiz o codigo assim so que o resultado da um loop infinito.
Fiz o codigo assim so que o resultado da um loop infinito.
O que está causando o loop infinito no seu código é a posição da linha livro -= 1.
Por que isso está acontecendo?
livro -= 1 está fora do bloco de código que é repetido pelo while. Isso significa que o valor de livro nunca é diminuído dentro do loop, fazendo com que a condição livro > 0 sempre seja verdadeira, resultando em um loop infinito.Como corrigir:
Para corrigir esse problema, precisamos mover a linha livro -= 1 para dentro do bloco do while:
livro = 5
while livro > 0:
print(f'Compra realizada \n resta: {livro} livros')
livro -= 1 # Diminuir a quantidade de livros a cada iteração
print('estoque esgotado')
Explicando a correção:
Dentro do loop: Ao colocar livro -= 1 dentro do loop, a cada iteração, o valor de livro será decrementado em 1, simulando a venda de um livro.
Condição de parada: A condição while livro > 0 garantirá que o loop continue enquanto houver livros em estoque. Quando livro chegar a 0, o loop será encerrado.
Espero ter ajudado.