pos_ocupada: como guardar um resultado booleano dentro de um laço?

pos_ocupada: como guardar um resultado booleano dentro de um laço?

por André Fantin -
Número de respostas: 1

Bom Dia,

Enquanto escrevia a função pos_ocupada, fiquei preso em um laço. À cada iteração desse laço, dada a verificação de uma condição, o programa retorna True. O problema é que eu preciso que o laço continue sendo percorrido mesmo que o resultado na iteração anterior seja True. Como eu faria isso?

André 

Em resposta à André Fantin

Re: pos_ocupada: como guardar um resultado booleano dentro de um laço?

por Marcelo Queiroz -

Oi, André!

Provavelmente o problema esteja em você "retornar" alguma coisa antes de realmente ter acabado de fazer tudo o que você precisava. Como exemplo, considere o código abaixo. Ele percorre todos os números entre 1 e n, e devolve True se são encontrados apenas 2 divisores inteiros (1 e n), False caso contrário. Ao invés de "retornar" dentro do laço, apenas o valor parcial do contador de divisores é atualizado:

def primo ( n ):
    conta_divisores = 0
    candidato=1
    while candidato<=n:
        if n%candidato == 0:
            conta_divisores = conta_divisores+1
        candidato = candidato+1
    return conta_divisores==2

Veja se é algo desse tipo que você precisaria fazer, talvez com um indicador de passagem booleano.

Marcelo