¿Hay alguna diferencia entre `continue` y` pass` en un bucle for en python?

¿Hay alguna diferencia significativa entre las dos palabras clave de python que continue y pass como en los ejemplos?

 for element in some_list: if not element: pass 

y

 for element in some_list: if not element: continue 

Debería estar al tanto de?

Sí, hacen cosas completamente diferentes. pass simplemente no hace nada, mientras que continue continúa con la siguiente iteración de bucle. En su ejemplo, la diferencia se haría evidente si agrega otra statement después de if : Después de ejecutar el pass , se ejecutará esta nueva instrucción. Después de continue , no lo haría.

 >>> a = [0, 1, 2] >>> for element in a: ... if not element: ... pass ... print element ... 0 1 2 >>> for element in a: ... if not element: ... continue ... print element ... 1 2 

Sí, hay una diferencia. continue obliga a que el bucle comience en la siguiente iteración, mientras que pass significa “no hay código para ejecutar aquí” y continuará durante el rest o el cuerpo del bucle.

Ejecutar estos y ver la diferencia:

 for element in some_list: if not element: pass print 1 # will print after pass for element in some_list: if not element: continue print 1 # will not print after continue 

continue saltará de nuevo a la parte superior del bucle. pass continuará procesando.

Si el paso está al final del bucle, la diferencia es despreciable, ya que el flujo volverá a la parte superior del bucle de todos modos.

En su ejemplo, no habrá diferencia, ya que ambas declaraciones aparecen al final del bucle. pass es simplemente un marcador de posición, ya que no hace nada ( pasa la ejecución a la siguiente statement). continue , por otro lado, tiene un propósito definido: le dice al ciclo que continúe como si se hubiera reiniciado.

 for element in some_list: if not element: pass print element 

es muy diferente de

 for element in some_list: if not element: continue print element 

Sí, hay una diferencia. Continue realidad omite el rest de la iteración actual del bucle (volviendo al principio). Pass es una statement en blanco que no hace nada.

Ver los documentos de Python.

En esos ejemplos, no. Si la statement no es la última en el bucle, entonces tienen efectos muy diferentes.

Hay una diferencia entre ellos,
continue omite la iteración actual del bucle y ejecuta la siguiente iteración.
pass no hace nada Es un marcador de posición de statement vacío.
Preferiría darles un ejemplo, que aclarará esto mejor.

 >>> for element in some_list: ... if element == 1: ... print "Pass executed" ... pass ... print element ... 0 Pass executed 1 2 >>> for element in some_list: ... if element == 1: ... print "Continue executed" ... continue ... print element ... 0 Continue executed 2 
 x = [1,2,3,4] for i in x: if i==2: pass #Pass actually does nothing. It continues to execute statements below it. print "This statement is from pass." for i in x: if i==2: continue #Continue gets back to top of the loop.And statements below continue are executed. print "This statement is from continue." 

La salida es

 >>> This statement is from pass. 

De nuevo, deja correr el mismo código con cambios menores.

 x = [1,2,3,4] for i in x: if i==2: pass #Pass actually does nothing. It continues to execute statements below it. print "This statement is from pass." for i in x: if i==2: continue #Continue gets back to top of the loop.And statements below continue are executed. print "This statement is from continue." 

La salida es –

 >>> This statement is from pass. This statement is from pass. This statement is from pass. This statement is from pass. This statement is from continue. This statement is from continue. This statement is from continue. 

El pase no hace nada. La computación no se ve afectada. Pero continuar vuelve a la parte superior del bucle para proceder con el siguiente cálculo.

Considérelo de esta manera:

Pase: Python trabaja puramente en sangría! No hay llaves vacías, a diferencia de otros idiomas.

Entonces, si no quieres hacer nada en caso de que una condición sea verdadera, no hay otra opción que pasar.

Continuar: Esto es útil solo en caso de bucles. En el caso de que, para un rango de valores, no quiera ejecutar las declaraciones restantes del bucle una vez que esa condición sea verdadera para esa pasada en particular, entonces tendrá que usar continuar.