terminar - ¿Hay una diferencia entre `continue` y` pass` en un ciclo for en python?
sintaxis del ciclo while en python (9)
¿Hay alguna diferencia significativa entre las dos palabras clave de python 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
Debo estar al tanto?
Considéralo de esta manera:
Pase: ¡ Python funciona puramente con sangría! No hay llaves vacías, a diferencia de otros idiomas.
Entonces, si no quiere hacer nada en caso de que una condición sea cierta, no hay otra opción que pasar.
Continuar: esto es útil solo en caso de bucles. En el caso, para un rango de valores, no desea ejecutar las declaraciones restantes del ciclo después de que esa condición sea verdadera para ese pase en particular, entonces deberá usar continuar.
En esos ejemplos, no. Si la declaración no es la última en el ciclo, entonces tienen efectos muy diferentes.
En su ejemplo, no habrá diferencia, ya que ambas declaraciones aparecen al final del ciclo. pass
es simplemente un marcador de posición, en el sentido de que no hace nada ( pasa la ejecución a la siguiente instrucción). continue
, por otro lado, tiene un propósito definido: le dice al ciclo que continúe como si acabara de reiniciarse.
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
Hay una diferencia entre ellos,
continue
omite la iteración actual del ciclo y ejecuta la siguiente iteración.
pass
no hace nada Es un marcador de posición de declaración vacío.
Prefiero darte un ejemplo, que aclarará esto más 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
Sí, hacen cosas completamente diferentes. pass
simplemente no hace nada, mientras continue
continúa con la siguiente iteración de bucle. En su ejemplo, la diferencia se pondría de manifiesto si agregara otra declaración después de if
: Después de ejecutar el pass
, se ejecutaría esta declaración adicional. 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
realidad omite el resto de la iteración actual del ciclo (volviendo al principio). Pass
es una declaración en blanco que no hace nada.
Ver los documentos de Python
Sí, hay una diferencia. continue
obliga al ciclo a comenzar en la siguiente iteración, mientras que pass
significa "no hay código para ejecutar aquí" y continuará por el resto o el cuerpo del ciclo.
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 ciclo. pass
continuará procesando.
si el pase está en el extremo del bucle, la diferencia es insignificante, ya que el flujo volvería a la parte superior del bucle de todos modos.
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."
El resultado es
>>> This statement is from pass.
Nuevamente, ejecute 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 continue vuelve a la parte superior del ciclo para procesar con el siguiente cálculo.