Existe alguma diferença significativa entre as duas palavras continue
- chave python epass
como nos exemplos
for element in some_list:
if not element:
pass
e
for element in some_list:
if not element:
continue
Eu deveria estar ciente?
while True:; pass # Busy-wait for keyboard interrupt (Ctrl+C)
nos documentos python me confundiram do jeito que eu não achei tempo claro que se comporta de maneira equivalente a continuar nesse caso ou se pretendia algo mais. A primeira frase "A declaração de aprovação não faz nada". caracteriza todas as respostas à minha pergunta, mas de alguma forma isso não chamou minha atenção.Respostas:
Sim, eles fazem coisas completamente diferentes.
pass
simplesmente não faz nada, enquantocontinue
continua com a próxima iteração do loop. No seu exemplo, a diferença se tornaria aparente se você adicionasse outra instrução após oif
: Após a execuçãopass
, essa instrução adicional seria executada. Depoiscontinue
, não.fonte
pass
palavra - chave não faz nada, ela só é útil quando você precisa sintaticamente de um conjunto recuado, mas não quer fazer nada. Um exemplo comum é se você deseja ignorar alguma exceção, você usaexcept SomeException: pass
. Existem muitos outros casos de uso também. Você não precisaria estritamente de uma palavra-chave para isso, pois você poderia usar qualquer outra declaração que não faça nada (por exemplo,0
é uma declaração perfeitamente válida que não tem efeito), mas ter uma palavra-chave para isso permite que você seja mais explícito sobre não querer fazer nada.pass
?Sim, há uma diferença.
continue
força o loop a iniciar na próxima iteração, enquantopass
significa "não há código para executar aqui" e continuará pelo restante ou pelo corpo do loop.Execute estes e veja a diferença:
fonte
continue
pulará de volta para o topo do loop.pass
continuará o processamento.se a aprovação estiver no final do loop, a diferença será insignificante, pois o fluxo retornaria ao topo do loop de qualquer maneira.
fonte
No seu exemplo, não haverá diferença, pois as duas instruções aparecem no final do loop.
pass
é simplesmente um espaço reservado, na medida em que não faz nada ( passa a execução para a próxima instrução).continue
, por outro lado, tem um objetivo definido: diz ao loop para continuar como se tivesse acabado de reiniciar.é muito diferente de
fonte
Há uma diferença entre eles,
continue
ignora a iteração atual do loop e executa a próxima iteração.pass
faz nada. É um espaço reservado para declaração vazio.Prefiro dar um exemplo, que esclarecerá isso melhor.
fonte
Sim, há uma diferença.
Continue
realmente pula o restante da iteração atual do loop (retornando ao início).Pass
é uma declaração em branco que não faz nada.Veja os documentos python
fonte
Nesses exemplos, não. Se a declaração não for a última do loop, eles terão efeitos muito diferentes.
fonte
Diferença entre passar e continuar em um loop for:
Então, por que passar em python?
Se você deseja criar uma classe, método ou bloco vazio.
Exemplos:
sem 'pass' nos exemplos acima lançará IndentationError.
fonte
A saída é
Novamente, vamos executar o mesmo código com pequenas alterações.
A saída é -
O passe não faz nada. A computação não é afetada. Mas continue volta ao topo do loop para prosseguir com o próximo cálculo.
fonte
Considere desta maneira:
Passe: Python funciona puramente em recuo! Não há chaves vazias, ao contrário de outros idiomas.
Portanto, se você não quiser fazer nada, caso uma condição seja verdadeira, não há outra opção senão passar.
Continuar: Isso é útil apenas em caso de loops. Caso, para um intervalo de valores, você não queira executar as instruções restantes do loop depois que a condição for verdadeira para essa passagem específica, será necessário usar continue.
fonte
pass
se a instrução forTrue
e execute a operação, se estiverFalse
. Isso permite uma varredura eficiente de listas multiuso.pass
pode ser usado em cenários quando você precisa de algumas funções, classes ou loops vazios para futuras implementações e não há necessidade de executar qualquer código.continue
é usado em cenários em que não quando alguma condição se encontra dentro de um loop e você precisa pular a iteração atual e passar para a próxima.fonte