Solución:
Sí, hacen cosas completamente diferentes. pass
simplemente no hace nada, mientras continue
continúa con la siguiente iteración del ciclo. En su ejemplo, la diferencia se haría evidente si agregara otra declaración después de la if
: Después de ejecutar pass
, esta declaración adicional sería ejecutada. Después 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 al bucle a comenzar en la siguiente iteración mientras pass
significa “no hay código para ejecutar aquí” y continuará por el resto o el cuerpo del bucle.
Ejecute estos y vea 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 insignificante ya que el flujo volvería a la parte superior del bucle de todos modos.