¿Cuál es la mejor manera de hacer esto en Python?
for (v = n / 2 - 1; v >= 0; v--)
De hecho, primero probé con Google, pero por lo que puedo ver, la única solución sería usar el while
.
La forma de hacerlo es con xrange()
:
for v in xrange(n // 2 - 1, -1, -1):
(O, en Python 3.x, con range()
lugar de xrange()
.) //
es división de pisos, lo que garantiza que el resultado sea un número entero.
Yo haría esto:
for i in reversed(range(n // 2)): # Your code pass
Es un poco más claro que esto es una secuencia inversa, cuál es el límite inferior y cuál es el límite superior.
for v in range(n//2, -1, -1)
Sin embargo, en el 90% de los casos en los que habría usado un bucle for
en C / Java / C # / VB, lo que realmente desea es una comprensión de lista :
listOfStuff = [doSomethingWith(v) for v in range(n//2, -1, -1)]
for v in xrange(n/2 - 1, 0, -1): #your code here
Donde v y n son int
s o tratados como int
s. Esto significa que la división será una división entera, es decir, 1/2 == 0 is True
.
Nota: Esto es para Python 2.x.